swaywm / sway

i3-compatible Wayland compositor
https://swaywm.org
MIT License
14.44k stars 1.1k forks source link

dpms on causes eventual crash due to "Too many open files"? #6017

Open ghost opened 3 years ago

ghost commented 3 years ago

cpu is Ivy Bridge,gpu radeon r5 230 linux void glibc, no elogind, no seatd, sway SUID.

I had a swayidle script that would liberally spam swaymsg "output * dpms on" (it had a 30 second idle window, intended to only trigger dpms off when lockscreen is engaged). This would cause a split second cursor stutter accompanied with a cpu spike wheneven the computer was idle for 30 seconds, even when swaylock was never used.

I have since fixed it to only work with swaylock running.

Nevertheless this seems like a bug: There were no windows utilizing xwayland at all.

sway debug log is littered with:

The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
01:02:52.728 [sway/ipc-server.c:214] Client 76 hung up
01:02:52.728 [sway/ipc-server.c:566] IPC Client 76 disconnected
Errors from xkbcomp are not fatal to the X server
01:02:52.730 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.730 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.730 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.730 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.757 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.757 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.757 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.757 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.768 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.768 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.768 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.768 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.776 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.776 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.776 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.776 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.781 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.781 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.781 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.781 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.787 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.787 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.787 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.787 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.792 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.792 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.792 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.792 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.798 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.798 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.798 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.798 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.802 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.802 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.802 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.802 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.807 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.807 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.807 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.807 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.812 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.812 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.812 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.812 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.817 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.817 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.817 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.817 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.822 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.822 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.822 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.822 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.827 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.827 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.827 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.828 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.833 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.833 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.833 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.833 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:52.838 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.838 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:52.838 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:52.838 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:53.401 [DEBUG] [types/seat/wlr_seat_pointer.c:382] button_count=1 grab_serial=9403 serial=9471
01:02:53.539 [DEBUG] [types/seat/wlr_seat_pointer.c:382] button_count=0 grab_serial=9471 serial=9472
The XKEYBOARD keymap compiler (xkbcomp) reports:
> Warning:          Unsupported maximum keycode 569, clipping.
>                   X11 cannot support keycodes above 255.
> Warning:          Unsupported high keycode 372 for name <I372> ignored
>                   X11 cannot support keycodes above 255.
>                   This warning only shows for the first high keycode.
Errors from xkbcomp are not fatal to the X server
01:02:53.756 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:53.756 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)
01:02:53.756 [DEBUG] [xwayland/selection/selection.c:117] not handling selection events: no seat assigned to xwayland
01:02:53.756 [DEBUG] [xwayland/xwm.c:1425] unhandled X11 event: MappingNotify (34)

which seems to have at one point culminated in a wayland crash (all windows had a frozen image and would only be closed when the process in them was killed). sway would allow new windows.

as best as i can tell crash culminated with:

10+ spam of: [INFO] [wayland] error marshalling arguments for keymap: dup failed: Too many open files
10+ spam of: [DEBUG] [xwayland/selection/incoming.c:413] XCB_XFIXES_SELECTION_NOTIFY (selection=1, owner=2097153)
 multiple: Exiting due to channel error.
emersion commented 3 years ago

Can you try again with Sway master? See https://github.com/swaywm/sway/wiki/Development-Setup#compiling-as-a-subproject

ghost commented 3 years ago

So I compiled a binary , renamed it sway_master, made SUID and moved to /usr/local/bin After the next dpms event crashed wayland again I rebooted and tried to use it, it wouldn't even start. System became completely unresponsive.

If you are suggesting that master fixes this issue, I guess I will have to wait to try it.

Worth pointing out that the crash happened after far fewer dpms events than last time (I killed swayidle until I really needed it), there was probably something in the background preparing the crash.

Hopefully manually turning the monitors off doesn't trigger it too.

johannlejeune commented 3 years ago

Looks like this issue is still here, don't know if it's a duplicate of #5757 but I'm linking to my comment there https://github.com/swaywm/sway/issues/5757#issuecomment-830917121

sochotnicky commented 3 years ago

@emersion While I am not the reporter - I can see this exact behaviour (too many open files, "frozen windows that won't go away" & all) in current sway 1.6.1 & wlroots 0.14.1.

It also happens around the time of swaylock/while idling. I run exec swayidle -w in my sway config and swayidle config is:

timeout 300 'swaylock -f -i <path to image>'
timeout 600 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"'
before-sleep 'swaylock -f -i <path to image>'

Given timing of your comment & Sway release - I suspect the answer to your question is that this is not fixed. But if current master might be better - I can retry.