hikari wayland compositor (https://hikari.acmelabs.space)

#8Complete freeze of hikari

Good evening. I noticed the following issue, which results in a total unresponsive hikari. Nothing is possible anymore. Even switching to another TTY isn't possible. Culprit: nextcloud-client I have waybar running with the tray module and if I open the context menu of the nextcloud-client and move the pointer to "Last Changes", which would result in a new submenu, hikari freezes. Not the whole system, as music still plays fine and normal shutdown via power button is possible. Sadly the messages to stdout don't reveal a thing. So is there another way in getting debug information? Or helping in solving this.

System: Linux based distro hikari 2.0.0 nextcloud-client 2.6.4 (build with qt 5.14.x, got updated to 5.15.0 (cannot tell if the freeze happened before or not) if it is a cause of a missing rebuild it still shouldn't take hikari with it?)

And thank you for this nice floating compositor :) If I may, now for something completly different: How can I set view options for CLI programs? Or what is the id, which gets mentioned in the manual?

Issue Bundle
  • Hi thanks for reporting,

    I've just pushed some patches to the repo that fix a couple of issues with X (and possibly some Wayland issues as well). You could try those or wait for 2.0.1 next week. I'm not using next cloud. Is it enough to just start the client (without setting up a server) to provoke the bug?

    Let's keep the issue on topic. If you have additional questions you can just post them on the mailing list or even better join our matrix channel :) There we can have a more lengthy discussion on the questions you have if you want :)

  • Also: could you ssh into your machine and check if hikari starts spinning in a loop? You could try and check if top shows 100% CPU usage for hikari. I don't think something like this happened before but the field of window management is full of surprises :D

  • Thanks for the fast respone :) As long as nextcloud isn't connected the failure doesn't happen. But if it is connected it will fail for "Last Activities/Last Changes" (didn't check the official translation) and "Apps", as I now found out. And yes, after ssh'ing into the machine, when it happens hikari runs at 100% CPU and it needs to be killed with SIGKILL. Will try to use the latest development snapshot, but need to take a look at darcs first, as I'm more of a git user :D

    Fair enough with staying on topic. Not so sure about Matrix currently (IRC ftw ;P), but will take a look at the Mailing list. Because another question arose, regarding if it is normal, that hikari gets killed after I shut off the monitor (so disabling the video output?)

  • You can download the a snapshot of the repository via the "download zip" button. You don't need darcs for that.

    Could you maybe attach a debugger to the looping process and post a backtrace? This looks like we are ending up in a loop here and I'd like to know where this happens.

  • Created a debug build (at least I think so :D built at least with DEBUG). Didn't attach it to the process, rather ran it from the beginning. So loooong text incoming (and I'm not really sure if that helps. gdb reported an empty backtrace) https://gist.github.com/Narrat/a272a8ed7ac21e4df4491551ee52f438 If it wasn't the right steps I would request some guidance, so I can report the results you hoped for.

  • Running hikari as a nested process should probably be the better approach here. I'm not quite sure if the execution is different on Linux but I think your debugger is not attached to the right process (since hikari forks shortly after starting up). You can run hikari as a nested process just by running it inside of hikari (that way the debugger should also have the right process right away, because a nested compositor does not require to fork). Once you have hikari running you can redirect all input to the nested session using mode-enter-input-grab, use the same action to quit input grab mode once you have reproduced the bug. In this state you should get a more meaningful stack trace from the debugger since this is really what we are after.

  • Following these steps, it still kinda seems to fork the process. At least the backtrace is still empty.
    And if I attach to the main process after I reproduced the freeze the recovered backtrace only contains this:

    (gdb) backtrace full
    #0  0x0000564dad31cf81 in get_layer (layer_popup=0x60d0000ee210)
        at src/layer_shell.c:268
            current = 0x6120000e6e48
    #1  0x0000564dad31c998 in popup_unconstrain (layer_popup=0x60d0000ee210)
        at src/layer_shell.c:228
            layer = 0x7800000005
            output = 0x9d00000006
            box = {x = 808595506, y = 758525997, width = 1044944, height = 24784}
    #2  0x0000564dad31cf4e in init_popup
        (layer_popup=0x60d0000ee210, wlr_popup=0x60d0000ee140)
        at src/layer_shell.c:260
    #3  0x0000564dad31f8fe in init_popup_popup
        (layer_popup=0x60d0000ee210, parent=0x6120000e6e48, wlr_popup=0x60d0000ee140) at src/layer_shell.c:711
    #4  0x0000564dad31f34a in new_popup_popup_handler
        (listener=0x60d0000ff1e8, data=0x60d0000ee140) at src/layer_shell.c:609
            layer_popup = 0x60d0000ff1d0
            parent = 0x6120000e6e48
            wlr_popup = 0x60d0000ee140
            layer_popup_popup = 0x60d0000ee210
    #5  0x00007fda467ab3ae in  () at /usr/lib/libwlroots.so.5
    #6  0x00007fda4590ea8d in  () at /usr/lib/libffi.so.7
    #7  0x00007fda4590e01b in  () at /usr/lib/libffi.so.7
    #8  0x00007fda4625cf62 in  () at /usr/lib/libwayland-server.so.0
    #9  0x00007fda462592dc in  () at /usr/lib/libwayland-server.so.0
    #10 0x00007fda4625afaa in wl_event_loop_dispatch ()
        at /usr/lib/libwayland-server.so.0
    #11 0x00007fda462594e7 in wl_display_run () at /usr/lib/libwayland-server.so.0
    #12 0x0000564dad3310df in hikari_server_start
        (config_path=0x604000000750 "/home/omnius/.config/hikari/hikari.conf", autostart=0x604000000790 "\027") at src/server.c:861
    #13 0x0000564dad3214e1 in main (argc=1, argv=0x7fff594eca48) at main.c:211
            options = 
              {config_path = 0x604000000750 "/home/omnius/.config/hikari/hikari.conf", autostart = 0x604000000790 "\027"}
            __PRETTY_FUNCTION__ = "main"

    Continuing the process doesn't help either (in any of the test cases) because ctrl+c doesn't return to the gdb interface and is unresponsive :/

  • And attaching to every of the 11 child processes, which are mentioned by gdb, the only backtrace I get is:

    (gdb) backtrace full
    #0  0x00007fbe8053be32 in pthread_cond_wait@@GLIBC_2.3.2 ()
        at /usr/lib/../lib/libpthread.so.0
    #1  0x00007fbe7b46bdec in  () at /usr/lib/dri/radeonsi_dri.so
    #2  0x00007fbe7b46bcf8 in  () at /usr/lib/dri/radeonsi_dri.so
    #3  0x00007fbe80535422 in start_thread () at /usr/lib/../lib/libpthread.so.0
    #4  0x00007fbe8065ebf3 in clone () at /usr/lib/libc.so.6
  • The backtrace is actually exactly what I needed. I can what blocks, I'm just a bit puzzled why. The get_layer function we are stuck in tries to find the parent layer that belongs to a popup by traveling down the hierarchy. For some reason it seems that I never finds it. Did you compile hikari with clang or gcc?

  • GCC at work. GCC 10.1.0 to be exact.
    Out of curiosity I will try it clang and report back what happens.

  • Makes no difference if clang (10.0.0) is used.
    (Although I was a bit surprised, that the resulting binary differed that much in size. With gcc hikari is just 1,4mb and with clang 2,9mb)

  • The reason why I'm asking is the address sanitizer which clang brings can gcc do this as well now?

  • Did you by chance turn off the address sanitizer in the Makefile? If so you should turn it back on, do a make clean and build a fresh debug build.

  • GCC has the same options[0] in that regard. Or at least the same as it used in the Makefile.
    So, no, I didn't need to remove the -fsanitize=address from the DEBUG options for the debug build. Building via gcc and clang used the same options in that regard.
    ________
    [0] https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html

  • Okay I guess than I can be sure that this is not causes by some memory related bug but rather something funky in the layer hierarchy. One thing that we might try is some printf debugging (or if you are familiar with your debugger you could set a breakpoint in layer_shell.c in the get_layer function and print out how current changes over time.

    If you are not familiar with that you can just add a printf("CURRENT %p\n", current); to line 268 in layer_shell.c and send mre some of that output. It will probably be a repeating pattern so you don't need to send me the entire output.

  • (gdb) break src/layer_shell.c:268
    Breakpoint 1 at 0x14ef24: file src/layer_shell.c, line 268.
    (gdb) run
    Starting program: /home/omnius/Builds/Manuell/hikari/hikari 
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    [New Thread 0x7fffeafc9700 (LWP 2320)]
    [New Thread 0x7fffea687700 (LWP 2321)]
    [New Thread 0x7fffe9e86700 (LWP 2322)]
    [New Thread 0x7fffe9685700 (LWP 2323)]
    [New Thread 0x7fffe8e84700 (LWP 2324)]
    [New Thread 0x7fffe8683700 (LWP 2325)]
    [New Thread 0x7fffe7e82700 (LWP 2326)]
    [New Thread 0x7fffe7681700 (LWP 2327)]
    [New Thread 0x7fffe6e78700 (LWP 2328)]
    [New Thread 0x7fffe6661700 (LWP 2329)]
    [New Thread 0x7fffe5a4a700 (LWP 2330)]
    LAYER INIT 0x611000130780
    LAYER MAP 0x611000130780
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    LAYER INIT 0x611000159400
    LAYER MAP 0x611000159400
    LAYER UNMAP 0x611000159400
    LAYER DESTROY 0x611000159400
    VIEW INIT 0x61700004f380
    XWAYLAND NEW 0x61700004f380
    UNMANAGED XWAYLAND NEW 0x611000181540
    UNMANAGED XWAYLAND DESTROY 0x611000181540
    VIEW INIT 0x61700004f700
    XWAYLAND NEW 0x61700004f700
    UNMANAGED XWAYLAND NEW 0x611000181680
    UNMANAGED XWAYLAND DESTROY 0x611000181680
    VIEW INIT 0x61700004fa80
    XWAYLAND NEW 0x61700004fa80
    XWAYLAND DESTROY 0x61700004fa80
    DESTROY VIEW 0x61700004fa80
    XWAYLAND DESTROY 0x61700004f700
    DESTROY VIEW 0x61700004f700
    VIEW INIT 0x61700004fe00
    XWAYLAND NEW 0x61700004fe00
    VIEW INIT 0x617000050180
    XWAYLAND NEW 0x617000050180
    XWAYLAND CONFIGURE 0x61700004fe00 301 85
    XWAYLAND CONFIGURE 0x61700004fe00 301 85
    XWAYLAND MAP 0x61700004fe00
    SHOW 0x61700004fe00
    VIEW INIT 0x617000050f80
    XWAYLAND NEW 0x617000050f80
    XWAYLAND DESTROY 0x617000050f80
    DESTROY VIEW 0x617000050f80
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    HIDE 0x61700004fe00
    SHOW 0x61700004fe00
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    HIDE 0x61700004fe00
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    -----------------------------------------------------------
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fcdb0)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $1 = (struct hikari_layer_popup *) 0x60d0000fcdb0
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $2 = (struct hikari_layer_popup *) 0x60d0000fe610
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $3 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $4 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $5 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $6 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $7 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $8 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $9 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) finish
    Run till exit from #0  get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d0000fe610)
        at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $10 = (struct hikari_layer_popup *) 0x6120000e81c8
    (gdb) qu
    queue-signal  quit          
    (gdb) qu
    queue-signal  quit          
    (gdb) quit
    A debugging session is active.
    
    	Inferior 1 [process 2316] will be killed.
    
    Quit anyway? (y or n) y

    I hope that helps

  • That's very interesting… confusing, but interesting. Thanks!

  • Could you also give me the value of current->parent.type? Currently it looks like there is a popup that is its own parent, which causes the loop.

  • Sure, no problem. Here you go:

    (gdb) break src/layer_shell.c:268
    Breakpoint 1 at 0x14ef24: file src/layer_shell.c, line 268.
    (gdb) run
    Starting program: /home/omnius/Builds/Manuell/hikari/hikari 
    [Thread debugging using libthread_db enabled]
    Using host libthread_db library "/usr/lib/libthread_db.so.1".
    [New Thread 0x7fffeafc9700 (LWP 12976)]
    [New Thread 0x7fffea687700 (LWP 12977)]
    [New Thread 0x7fffe9e86700 (LWP 12978)]
    [New Thread 0x7fffe9685700 (LWP 12979)]
    [New Thread 0x7fffe8e84700 (LWP 12980)]
    [New Thread 0x7fffe8683700 (LWP 12981)]
    [New Thread 0x7fffe7e82700 (LWP 12982)]
    [New Thread 0x7fffe7681700 (LWP 12983)]
    [New Thread 0x7fffe6e78700 (LWP 12984)]
    [New Thread 0x7fffe6661700 (LWP 12985)]
    [New Thread 0x7fffe5a4a700 (LWP 12986)]
    LAYER INIT 0x61100011ac00
    LAYER MAP 0x61100011ac00
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    LAYER INIT 0x61100015c4c0
    LAYER MAP 0x61100015c4c0
    LAYER UNMAP 0x61100015c4c0
    LAYER DESTROY 0x61100015c4c0
    VIEW INIT 0x61700004f380
    XWAYLAND NEW 0x61700004f380
    UNMANAGED XWAYLAND NEW 0x611000180dc0
    UNMANAGED XWAYLAND DESTROY 0x611000180dc0
    VIEW INIT 0x61700004f700
    XWAYLAND NEW 0x61700004f700
    UNMANAGED XWAYLAND NEW 0x611000180f00
    UNMANAGED XWAYLAND DESTROY 0x611000180f00
    VIEW INIT 0x61700004fa80
    XWAYLAND NEW 0x61700004fa80
    XWAYLAND DESTROY 0x61700004fa80
    DESTROY VIEW 0x61700004fa80
    XWAYLAND DESTROY 0x61700004f700
    DESTROY VIEW 0x61700004f700
    VIEW INIT 0x61700004fe00
    XWAYLAND NEW 0x61700004fe00
    VIEW INIT 0x617000050180
    XWAYLAND NEW 0x617000050180
    XWAYLAND CONFIGURE 0x61700004fe00 301 85
    XWAYLAND CONFIGURE 0x61700004fe00 301 85
    XWAYLAND MAP 0x61700004fe00
    SHOW 0x61700004fe00
    VIEW INIT 0x617000050f80
    XWAYLAND NEW 0x617000050f80
    XWAYLAND DESTROY 0x617000050f80
    DESTROY VIEW 0x617000050f80
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    0x61700004fe00 
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud 0x61700004fe00 / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 (0x61700004fe00)
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    HIDE 0x61700004fe00
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud / 0x61700004fe00 
    ---------------------------------------------------------------------
    SHEETS WL-1 ((nil))
    ---------------------------------------------------------------------
    1 0x61700004fe00 
    ---------------------------------------------------------------------
    /////////////////////////////////////////////////////////////////////
    ---------------------------------------------------------------------
    VIEWS
    ---------------------------------------------------------------------
    
    ---------------------------------------------------------------------
    GROUPS
    ---------------------------------------------------------------------
    Nextcloud / 0x61700004fe00 
    -----------------------
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d000145040) at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $1 = (struct hikari_layer_popup *) 0x60d000145040
    (gdb) print current->parent.type
    $2 = HIKARI_LAYER_NODE_TYPE_LAYER
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d000146220) at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $3 = (struct hikari_layer_popup *) 0x60d000146220
    (gdb) print current->parent.type
    $4 = HIKARI_LAYER_NODE_TYPE_POPUP
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d000146220) at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $5 = (struct hikari_layer_popup *) 0x6120000e9fc8
    (gdb) print current->parent.type
    $6 = (unknown: 1331360)
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d000146220) at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $7 = (struct hikari_layer_popup *) 0x6120000e9fc8
    (gdb) print current->parent.type
    $8 = (unknown: 1331360)
    (gdb) c
    Continuing.
    
    Thread 1 "hikari" hit Breakpoint 1, get_layer (layer_popup=0x60d000146220) at src/layer_shell.c:268
    268	   switch (current->parent.type) {
    (gdb) print current
    $9 = (struct hikari_layer_popup *) 0x6120000e9fc8
    (gdb) print current->parent.type
    $10 = (unknown: 1331360)
    (gdb) quit
    A debugging session is active.
    
    	Inferior 1 [process 12972] will be killed.
    
    Quit anyway? (y or n) y
  • Thanks a lot, that was very insightful :) Could you darcs apply this patch bundle and give it another try?

  • Ah forgot that darcshubs patch bundle thing is pretty useless since we exchange patches on Matrix most of the time. Here a link to the bundle https://hikari.acmelabs.space/patches/fix-nested-popup-handling-for-layer_shell.dpatch

  • Nice :) I can tell, hikari with this patch applied doesn't freeze/loop forever anymore :)
    Thanks for fixing this.

    • status set to closed

    Thanks a lot for reporting this, would have probably taken me a lot longer to find this without your report and input. Cheers :D Going to stage this for 2.0.2