tudurom / windowchef

Window Chef is a stacking window manager that cooks windows with orders from the Waitron
https://tudorr.ro/software/windowchef/
ISC License
204 stars 14 forks source link

'waitron window_rev_cycle' crash report #62

Closed paoloschi closed 5 years ago

paoloschi commented 5 years ago
$ windowchef -v
windowchef v0.4.1-25-gc3c5f0b
Copyright (c) 2016-2017 Tudor Ioan Roman
Released under the ISC License

I am on VoidLinux; the graphical HW is the internal one of an Intel i5 processor with the distro packaged xf86-video-intel Xorg driver. I'm organizing my first windowchef-based configuration and I have very little SW installed in the system at the moment; I'm developing small bash scripts to customize the desktop to my liking (...) Running applications can be SpaceFM Terminator Palemoon Claws-Mail Geany (little more) while at starting session I launch sxhkd ruler clipnotify evtest synergy jgmenu and no panel bar. VoidLinux has windowchef in the repository but since yesterday I have compiled by myself enabling debugging and here I report 5 final parts of the logs happened in less than 12 hours.

Unfortunately I still have not managed to isolate a sequence of actions to make repeatable with ease the crash event. I'm only sure that it never happens with other waitron commands that window_rev_cycle, executed indifferently from a script or pressing 'alt+shift+Tab' but I can also run window_rev_cycle a large number of times consecutively and very quickly with success. The crash may occur at the first window_rev_cycle execution after a series of other waitron commands or after repeated executions of the same command that have previously been successful. From the logs I see that the error is always fatal IO error 11 preceded by X Event 33 (but event 33 occurs also many other times in the entire log without issues!) while out of 5 cases, 4 times it happened after 11 requests... but I am not a programmer: if this information is not enough, I will need precise instructions to provide more useful logs...

X Event 33
X Event 19
X Event 18
X Event 18
X Event 10
X Event 9
X Event 17
X Event 18
grabbed buttons on 0x01a00003
X Event 10
X Event 9
X Event 7
X Event 17
freeing 0x01c00003
X Event 17
X Event 17
X Event 17
X Event 17
X Event 10
X Event 9
X Event 22
X Event 0
X Event 7
X Event 33
The server closed the connection.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 11 requests (9 known processed) with 0 events remaining.
Gdk-Message: 11:40:26.905: terminator: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.

ruler: X server errored
[2019-05-06T11:40:26] FATAL: X display has unexpectedly disconnected
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
X Event 9
X Event 7
X Event 18
X Event 17
freeing 0x01800007
X Event 10
X Event 9
X Event 22
X Event 0
X Event 0
X Event 16
X Event 17
X Event 17
X Event 17
X Event 17
X Event 17
X Event 17
X Event 17
X Event 17
X Event 17
X Event 33
grabbed buttons on 0x01600003
IPC Command 0 with arguments 0 0 0
X Event 10
X Event 9
X Event 22
X Event 33
The server closed the connection.
ruler: X server errored
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 24 requests (24 known processed) with 0 events remaining.
[2019-05-06T14:09:34] FATAL: X display has unexpectedly disconnected
Can't open X display
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
X Event 18
X Event 17
freeing 0x02200003
X Event 10
X Event 9
X Event 22
X Event 0
X Event 0
X Event 17
X Event 17
X Event 10
X Event 16
X Event 16
X Event 22
X Event 19
X Event 16
X Event 19
X Event 18
X Event 17
X Event 9
X Event 17
X Event 18
X Event 17
X Event 33
The server closed the connection.
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 11 requests (9 known processed) with 0 events remaining.
ruler: X server errored
Gdk-Message: 20:41:15.119: terminator: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.

[2019-05-06T20:41:15] FATAL: X display has unexpectedly disconnected
Gdk-Message: 20:41:15.120: terminator: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.

wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
grabbed buttons on 0x01c00091
IPC Command 0 with arguments 0 0 780536992
X Event 10
X Event 9
X Event 22
X Event 33
grabbed buttons on 0x01800006
IPC Command 0 with arguments 0 0 4120239648
X Event 10
X Event 9
X Event 22
X Event 33
grabbed buttons on 0x00c00007
IPC Command 0 with arguments 0 0 2170850176
X Event 10
X Event 9
X Event 22
X Event 33
grabbed buttons on 0x01c00091
IPC Command 0 with arguments 0 0 1891832032
X Event 10
X Event 9
X Event 22
X Event 33
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 11 requests (9 known processed) with 0 events remaining.
ruler: X server errored
The server closed the connection.
Gdk-Message: 22:19:46.025: terminator: Fatal IO error 11 (Risorsa temporaneamente non disponibile) on X server :0.0.

[2019-05-06T22:19:46] FATAL: X display has unexpectedly disconnected
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
X Event 17
X Event 16
X Event 22
X Event 33
X Event 19
X Event 18
X Event 18
X Event 22
X Event 19
X Event 10
X Event 10
X Event 9
X Event 18
X Event 9
X Event 7
X Event 22
X Event 33
X Event 22
X Event 19
X Event 18
X Event 18
X Event 7
X Event 33
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 11 requests (9 known processed) with 0 events remaining.
ruler: X server errored
The server closed the connection.
[2019-05-07T11:35:48] FATAL: X display has unexpectedly disconnected
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
wmp: unable connect to the X server
paoloschi commented 5 years ago

SMALL UPDATE: I now replaced the terminator application with qterminal and geany with featherpad but unfortunately nothing has changed with regard to the crashes described above...

In both cases I switched from gtk to qt application and found a strange behavior that I'm not sure if it is classifiable as a windowchef issue (to be opened separately): Below I report my current configuration where I have put right as mouse button for the click_to_focus setting. I find that all the windows respond strictly to this setting (only the right button activates them) while both featherpad and qterminal as any other qt5 based application I can bring them focused to the foreground either by pressing the right but unexpectedly also middle and left buttons of the mouse!

waitron wm_config apply_settings true

waitron wm_config enable_borders true
waitron wm_config border_width 5
waitron wm_config internal_border_width 2
waitron wm_config color_focused 0x32AB8B
waitron wm_config color_unfocused 0x404040
waitron wm_config internal_color_focused 0x000000
waitron wm_config internal_color_unfocused 0x6B6B6B

waitron wm_config gap_width all 0
waitron wm_config grid_gap_width 0

waitron wm_config cursor_position center
waitron wm_config pointer_actions move resize_side resize_corner
waitron wm_config pointer_modifier super

waitron wm_config sticky_windows false
waitron wm_config enable_resize_hints false

waitron wm_config enable_sloppy_focus false
waitron wm_config enable_last_window_focusing true
waitron wm_config replay_click_on_focus false
waitron wm_config click_to_focus right

waitron wm_config groups_nr 10
paoloschi commented 5 years ago

Sorry but new circumstances and evaluations have led me to consider another wm (...) Therefore, in the impossibility of being able to re-discuss the issues that I have raised so far, I think I am doing the right thing in closing this issue as of now. I apologize for the noise.

tudurom commented 5 years ago

It is I who needs to apologize here for neglecting your issue. I didn't have the time to investigate it because of school and I don't want to reply without having any concrete answer. I have absolutely no idea why this happens. You are also the only one with this issue, probably. I tried running while :; do waitron window_rev_cycle; done and it didn't crash at all.

As long as the bug exists, the issue must be open.

You don't have to apologize for the noise, you did well by reporting this error.

Windowchef is a side project of mine that didn't receive much attention from me lately, mostly because I consider it pretty complete, and because of the lack of time. I'm open to contributions, but issues like this can't be reviewed quickly by me, for now. I don't even use it anymore, not because I don't like it but because I didn't want motivation to spend time ricing :)

ghost commented 5 years ago

Here's some information about the WM and OS:

Void Linux x86_64
Kernel: 5.3.7
Nvidia blobs: 430.40
windowchef -v
windowchef v0.4.1-28-g9496a98
Copyright (c) 2016-2017 Tudor Ioan Roman
Released under the ISC License

I also hit the same bug paoloschi described before. I can't seem to find a way to debug it at all. I did tests where I only had 3 rxvt-unicode terminals opened, no panels, no candy. I cycled through windows via 'window_cycle' which seem to work just fine but when I switched to 'window_rev_cycle' instead; I got a crash immediately. I fail to find any logs and errors. For the time being I've disabled a binding for that command from sxhkd.

I'll gladly help but I'm not experienced enough to find the root cause for this by myself. I can run tests whenever needed if you happen to have a hunch about this at some point.

I found a reliable way to reproduce the issue:

  1. Launch windowchef
  2. Launch two rxvt-unicode terminals
  3. Kill/close the focused terminal so the first one still exists
  4. Press (alt + k) which is 'waitron window_rev_cycle'
  5. Crash

If I do the same but with 'waitron window_cycle' instead; crash doesn't happen at all.

Here's the debug log:

loading /home/shn/.config/windowchef/windowchefrc
X Event 33
IPC Command 27 with arguments 0 8 0
X Event 33
IPC Command 27 with arguments 3 2 0
X Event 33
IPC Command 27 with arguments 1 2240053 0
X Event 33
IPC Command 27 with arguments 2 2240053 0
X Event 33
IPC Command 27 with arguments 4 12402495 0
X Event 33
IPC Command 27 with arguments 5 3818848 0
X Event 33
IPC Command 27 with arguments 6 9 0
X Event 33
IPC Command 27 with arguments 7 0 0
X Event 33
IPC Command 27 with arguments 8 4 0
X Event 33
IPC Command 27 with arguments 9 5 0
X Event 33
IPC Command 27 with arguments 10 0 0
X Event 33
IPC Command 27 with arguments 11 0 0
X Event 33
IPC Command 27 with arguments 12 0 0
X Event 33
IPC Command 27 with arguments 13 1 0
X Event 33
IPC Command 27 with arguments 14 1 0
X Event 33
IPC Command 27 with arguments 15 1 0
X Event 33
IPC Command 27 with arguments 16 1 0
X Event 33
IPC Command 27 with arguments 17 2 4
X Event 33
IPC Command 27 with arguments 18 8 0
X Event 33
IPC Command 27 with arguments 19 0 0
X Event 34
X Event 34
X Event 16
X Event 20
new window was born 0x00e00006
X Event 22
X Event 19
grabbed buttons on 0x00e00006
X Event 7
X Event 22
X Event 10
X Event 9
X Event 9
X Event 10
X Event 16
X Event 20
new window was born 0x01000006
X Event 22
X Event 19
grabbed buttons on 0x01000006
X Event 7
X Event 22
X Event 10
X Event 9
X Event 9
X Event 18
grabbed buttons on 0x00e00006
X Event 10
X Event 9
X Event 7
X Event 17
freeing 0x01000006
X Event 10
X Event 9
X Event 0
X Event 33
tudurom commented 5 years ago

Your reliable way to reproduce the issue helped me a lot. I quickly found the issue via gdb and solved it.

Thanks to both of you for reporting!