Skip to content
This repository has been archived by the owner on Nov 18, 2018. It is now read-only.

hawaii-session -m nested doesn't work #145

Open
n3rdopolis opened this issue Dec 1, 2015 · 15 comments
Open

hawaii-session -m nested doesn't work #145

n3rdopolis opened this issue Dec 1, 2015 · 15 comments
Assignees
Milestone

Comments

@n3rdopolis
Copy link
Contributor

I think it might be due to issues with greenisland not working on Weston's fullscreen-shell anymore, as manually calling the host Weston server, and calling hawaii on it results in a blank Weston screen, same as running
hawaii-sesion -m nested

Thanks

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@plfiorini plfiorini added the bug label Dec 1, 2015
@plfiorini
Copy link
Member

I will likely have time to take a look after I pushed the stuff I'm working on which requires doing some full screen shell work anyways.

@plfiorini
Copy link
Member

I'm implementing #119 these days so this will be fixed as well.
With the new API things are more neat and separated: the greenisland QPA gained a wayland device integration for fullscreen shell. No windowed mode yet and crashes with more than one output.

@plfiorini plfiorini self-assigned this Feb 15, 2016
@plfiorini plfiorini added this to the Version 0.8.0 milestone Feb 15, 2016
@n3rdopolis
Copy link
Contributor Author

I have tested this with the new hawaii and greenisland patches. It still seems like it doesn't display anything on a weston --shell=fullscreen-shell (or hawaii-session -m nested). unless I am missing an argument, or environment variable?

EDIT: Figured more things out,
hawaii -m -platform greenisland
...seems to hang I think in wl_connection_flush

@plfiorini
Copy link
Member

just tested: if I do hawaii-session -m nested on Xorg I can see a weston window with hawaii in it, if I do that on kms it doesn't work

@plfiorini
Copy link
Member

Of course I have tested this on Xorg all the time :(

@plfiorini
Copy link
Member

For the record when running hawaii-session -m nested it runs weston with fullscreen shell automatically but the hawaii process crashes.

@n3rdopolis
Copy link
Contributor Author

Thanks for looking into this. To answer your question you asked on IRC, I do support the framebuffer in my distro.
Since greenisland supports running on fullscreen-shell, and weston supports running on the Framebuffer, my waylandloginmanager script calls a weston supporting fullscreen shell on a TTY (using Weston's framebuffer backend if needed, and calling it with a different socket name to support multiple logins), and then tries to call Hawaii on that WAYLAND_DISPLAY.
Although, does greenisland support the framebuffer backend now?

@plfiorini
Copy link
Member

Framebuffer: it used to support it back in 2012 with the original eglfs that was quiet different from the version I have forked to become the greenisland QPA plugin. I had it running on VirtualBox patching Mesa to add a fbdev backend took from Mer. I'm not sure whether it is avalable officially nowadays.
Basically it was a mix of eglfs default path (without hardware specific hooks) and EGL_PLATFORM=fbdev. It's something that I haven't look in a lot of time because distros usually do not have framebuffer enaled and do not build Mesa with fbdev support but since you have framebuffer enaled it can be considered as plan B. Plan A is to get fullscreen shell support working again which is way faster than fbdev.

@plfiorini
Copy link
Member

As a reference: this might be related to this weston bug https://bugs.freedesktop.org/show_bug.cgi?id=93514

@plfiorini
Copy link
Member

The old _wl_fullscreen_shell has been replaced with zwp_fullscreen_shell_v1 from wayland-protocols but I can't test because my weston supports only the former.

Commit: 5727fde

@plfiorini
Copy link
Member

From IRC: now it shows something but crashes

http://pastebin.com/iEYgtDFT

@n3rdopolis
Copy link
Contributor Author

More stacktraces with WAYLAND_DEBUG=client

http://pastebin.com/JrdmDxed
http://pastebin.com/dYSkmLvT
http://pastebin.com/U05f6MHC

@plfiorini
Copy link
Member

Is this fixed with latest Weston?

@n3rdopolis
Copy link
Contributor Author

still getting a crash. the stack trace seems different though...
I'm going to try to export the file

@n3rdopolis
Copy link
Contributor Author

GNU gdb (Debian 7.10-1+b1) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i586-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from hawaii...done.
(gdb) rn��[Kun -platform gr��[Kreenisland -n
Starting program: /opt/bin/hawaii -platform greenisland -n
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
greenisland.qpa.deviceintegration: EGL device integration plugin lookup paths: /opt/lib/i386-linux-gnu/plugins /opt/plugins /opt/bin
greenisland.qpa.deviceintegration: Preferred EGL device integration based on the hardware configuration: "wayland"
[New Thread 0xb335cb40 (LWP 20545)]
[New Thread 0xb29ffb40 (LWP 20546)]
[New Thread 0xb21feb40 (LWP 20547)]
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
Error while mapping shared library sections:
/proc/20537/ns/mnt: Permission denied.
greenisland.qpa.deviceintegration: Using "wayland" EGL device integration
[2363548.109]  -> [email protected]_registry(new id wl_registry@2)
[2363548.156]  -> [email protected](new id wl_callback@3)
[2363548.187]  -> [email protected](new id wl_callback@4)
[2363548.482] [email protected]_id(3)
[2363548.513] [email protected]_id(4)
[2363548.518] [email protected](1, "wl_compositor", 4)
[2363548.586]  -> [email protected](1, "wl_compositor", 4, new id [unknown]@5)
[2363548.601] [email protected](2, "wl_subcompositor", 1)
[2363548.623] [email protected](3, "wl_scaler", 2)
[2363548.632] [email protected](4, "wp_presentation", 1)
[2363548.640] [email protected](5, "wl_data_device_manager", 3)
[2363548.649] [email protected](6, "wl_shm", 1)
[2363548.657] [email protected](7, "wl_seat", 5)
[2363548.691]  -> [email protected](7, "wl_seat", 5, new id [unknown]@6)
[2363548.718] [email protected](8, "wl_output", 2)
[2363548.743]  -> [email protected](8, "wl_output", 2, new id [unknown]@7)
[2363548.758] [email protected](9, "zwp_fullscreen_shell_v1", 1)
[2363548.776]  -> [email protected](9, "zwp_fullscreen_shell_v1", 1, new id [unknown]@8)
[New Thread 0xb17ffb40 (LWP 20548)]

Program received signal SIGSEGV, Segmentation fault.
0xb598cd62 in _int_free (av=0xb5ad1780 <main_arena>, 
    p=<optimized out>, have_lock=0) at malloc.c:3999
3999    malloc.c: No such file or directory.
(gdb) bt full
#0  0xb598cd62 in _int_free (av=0xb5ad1780 <main_arena>, 
    p=<optimized out>, have_lock=0) at malloc.c:3999
        size = 176
        fb = <optimized out>
        nextchunk = 0x80cf688
        nextsize = 128
        nextinuse = <optimized out>
        prevsize = <optimized out>
        bck = 0xb5ad17b8 <main_arena+56>
        fwd = 0xb5ad17b8 <main_arena+56>
        errstr = 0x0
        locked = <optimized out>
        __func__ = "_int_free"
#1  0xb555ba44 in wl_closure_destroy (closure=0x80cf5f0)
    at src/connection.c:1254
No locals.
#2  0xb55591e7 in dispatch_event (display=display@entry=0x80c7d30, 
    queue=0x80c7d9c) at src/wayland-client.c:1292
        closure = 0x80cf5f0
        proxy = 0x80c7770
        opcode = 0
        proxy_destroyed = <optimized out>
#3  0xb555a05f in dispatch_queue (queue=0x80c7d9c, display=0x80c7d30)
    at src/wayland-client.c:1434
        count = 10
#4  wl_display_dispatch_queue_pending (display=0x80c7d30, 
    queue=0x80c7d9c) at src/wayland-client.c:1676
No locals.
#5  0xb555a265 in wl_display_dispatch_queue (display=0x80c7d30, 
    queue=0x80c7d9c) at src/wayland-client.c:1652
        ret = <optimized out>
#6  0xb555a35a in wl_display_roundtrip_queue (display=0x80c7d30, 
    queue=0x80c7d9c) at src/wayland-client.c:1099
        callback = 0x80c6360
        done = 0
        ret = <optimized out>
#7  0xb555a39a in wl_display_roundtrip (display=0x80c7d30)
    at src/wayland-client.c:1128
No locals.
#8  0xb2b1527c in ?? ()
No symbol table info available.
#9  0xb2b44e4f in ?? ()
No symbol table info available.
#10 0xb73cce5b in GreenIsland::Platform::EglFSIntegration::initialize() () from /opt/lib/i386-linux-gnu/libGreenIslandPlatform.so.0
No symbol table info available.
#11 0xb627b9e5 in QGuiApplicationPrivate::eventDispatcherReady() ()
   from /opt/lib/libQt5Gui.so.5
No symbol table info available.
#12 0xb5f04218 in QCoreApplicationPrivate::init() ()
   from /opt/lib/libQt5Core.so.5
No symbol table info available.
#13 0xb627d1f3 in QGuiApplicationPrivate::init() ()
   from /opt/lib/libQt5Gui.so.5
No symbol table info available.
#14 0xb691868a in QApplicationPrivate::init() ()
   from /opt/lib/libQt5Widgets.so.5
No symbol table info available.
#15 0xb6918741 in QApplication::QApplication(int&, char**, int) ()
   from /opt/lib/libQt5Widgets.so.5
No symbol table info available.
#16 0x0804e5e8 in main (argc=2, argv=0xbffff144)
    at /srcbuild/hawaii-shell/compositor/main.cpp:85
        app = <incomplete type>
        parser = {d = 0xb7ff0710 <_dl_runtime_resolve+16>}
        socketOption = {d = {
            d = 0xb5e4ed5b <qRegisterResourceData(int, unsigned char const*, unsigned char const*, unsigned char const*)+11>}}
        nestedOption = {d = {d = 0x80aa8fc}}
        fakeScreenOption = {d = {
            d = 0xb594bb96 <__GI___cxa_atexit+6>}}
        nested = <optimized out>
        socket = {static null = {<No data fields>}, d = 0x80aa8fc}
        fakeScreenData = {static null = {<No data fields>}, 
          d = 0x804ecc8 <_GLOBAL__sub_I_qrc_hawaii.cpp(void)+72>}
        hawaii = <optimized out>
        urlAlreadySet = <optimized out>
(gdb) q
A debugging session is active.

    Inferior 1 [process 20537] will be killed.

Quit anyway? (y or n) y

@plfiorini plfiorini modified the milestones: Version 0.9.0, Version 0.8.0 Apr 27, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants