Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

hyprctl dispatch exit hangs PC with daisy chained monitors

Open lucanLepus opened this issue 2 years ago • 2 comments

Hyprland Version

Hyprland, built from branch main at commit aa020a2a1a560bd42f7ddc8c4808fd6db396ee8b dirty (toplevel-export: commence render pass before reading).

Bug or Regression?

Bug

Description

hyprctl dispatch exit puts my PC in a weird hanging state

  • display freezes completely
  • cant change to tty
  • sound keeps running fine, even youtube videos keep for several minutes - possibly forever
  • only sysrq works to reboot
  • hyprland logs contain nothing even hinting at a exit

this only happens when i have two monitors daisy-chained together via DisplayPort (2x Dell U3023E @ 2560x1600 @ 59.97200)

might not be a Hyprland issue because sway does the same thing - but i don't know where this could come from so trying my luck here.

any help or pointer appreciated.

How to reproduce

  • attach two monitors via DP daisychain
  • start hyprland
  • execute hyprland dispatch exit

Crash reports, logs, images, videos

No response

lucanLepus avatar Dec 07 '23 19:12 lucanLepus

I'd say #3558 ?

vaxerski avatar Dec 07 '23 22:12 vaxerski

I'm not sure if its the same issue, as it happens for me every time, not sporadically as in that issue. Also it seems to be really tied to the Monitors, when i connect one via DP and one via HDMI the Problem disappears.

However that issue gave me the idea to try to ssh into the machine and poke around there, which works fine, did some stracing and seen this:

Hyprland goes <defunct> after this

epoll_wait(3, [{events=EPOLLIN, data={u32=4161863712, u64=94248629239840}}], 32, -1) = 1
accept4(25, {sa_family=AF_UNIX}, [16 => 2], SOCK_CLOEXEC) = 100
pselect6(101, [100], NULL, NULL, {tv_sec=0, tv_nsec=5000000}, NULL) = 1 (in [100], left {tv_sec=0, tv_nsec=4994856})
read(100, "/dispatch exit", 1023)       = 14
newfstatat(AT_FDCWD, "/tmp/hypr/6fb1b89b982eea26ecae75b93f1742537c4f31ae_1702023110.lock", {st_mode=S_IFREG|0644, st_size=14, ...}, 0) = 0
unlink("/tmp/hypr/6fb1b89b982eea26ecae75b93f1742537c4f31ae_1702023110.lock") = 0
getpid()                                = 751
getpid()                                = 751
getpid()                                = 751
getpid()                                = 751
getpid()                                = 751
ioctl(13, DRM_IOCTL_MODE_ATOMIC <unfinished ...>) = ?

while hyprctl seems to still be waiting for something to happen on the socket

socket(AF_UNIX, SOCK_STREAM, 0)         = 3
connect(3, {sa_family=AF_UNIX, sun_path="/tmp/hypr/6fb1b89b982eea26ecae75b93f1742537c4f31ae_1702023110/.socket.sock"}, 76) = 0
write(3, "/dispatch exit", 14)          = 14
read(3,

and just hangs there

i have no idea really but might this be a kernel issue? with the DRM_IOCTL_MODE_ATOMIC not finishing...

anything else i can deliver to help figure out whats going on?

thanks for your support :)

lucanLepus avatar Dec 08 '23 08:12 lucanLepus

Was it fixed? hyprctl dispatch exit was hanging even a single-monitor system, sometimes, but this was fixed.

izmyname avatar Jul 27 '24 21:07 izmyname