Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi monitor docking / undocking crashes #8296

Open
1 task done
erahhal opened this issue Oct 30, 2024 · 34 comments
Open
1 task done

Multi monitor docking / undocking crashes #8296

erahhal opened this issue Oct 30, 2024 · 34 comments
Labels
bug Something isn't working

Comments

@erahhal
Copy link

erahhal commented Oct 30, 2024

Already reported ? *

  • I have searched the existing open and closed issues.

Regression?

No

System Info and Version

System/Version info
Hyprland 0.44.0 built from branch  at commit d679d200299ed4670f0d0f138c793d5f507b7cec  ().
Date: 2024-10-28
Tag: , commits: 5390
built against aquamarine 0.4.3


flags set:
debug


System Information:
System name: Linux
Node name: nflx-erahhal-x1c
Release: 6.6.58
Version: #1-NixOS SMP PREEMPT_DYNAMIC Tue Oct 22 13:46:36 UTC 2024


GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation Raptor Lake-P [Iris Xe Graphics] [8086:a7a1] (rev 04) (prog-if 00 [VGA controller])


os-release: ANSI_COLOR="1;34"
BUG_REPORT_URL="https://github.com/NixOS/nixpkgs/issues"
BUILD_ID="24.11.20241025.18536bf"
DOCUMENTATION_URL="https://nixos.org/learn.html"
HOME_URL="https://nixos.org/"
ID=nixos
IMAGE_ID=""
IMAGE_VERSION=""
LOGO="nix-snowflake"
NAME=NixOS
PRETTY_NAME="NixOS 24.11 (Vicuna)"
SUPPORT_URL="https://nixos.org/community.html"
VERSION="24.11 (Vicuna)"
VERSION_CODENAME=vicuna
VERSION_ID="24.11"


plugins:

======Config-Start======


Config File: /home/erahhal/.config/hypr/hyprland.conf: Read Succeeded
exec-once = /nix/store/ldpr2fzzk97pzml87z7lmvhqg7pp65lf-dbus-1.14.10/bin/dbus-update-activation-environment --systemd DISPLAY HYPRLAND_INSTANCE_SIGNATURE WAYLAND_DISPLAY XDG_CURRENT_DESKTOP && systemctl --user stop hyprland-session.target && systemctl --user start hyprland-session.target
$mod=SUPER
$screenshotarea=/nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl keyword animation "fadeOut,0,0,default"; grimblast --notify copysave area; /nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl keyword animation "fadeOut,1,4,default"
$term=/nix/store/1aim25kp7vqc9zd397qfqmq9vaqmrrrq-foot-1.19.0/bin/foot
animations {
  animation=border, 1, 2, default
  animation=fade, 1, 4, default
  animation=windows, 1, 3, default, popin 80%
  animation=workspaces, 1, 2, default, slide
}

debug {
  disable_logs=false
}

decoration {
  col.shadow=0x55000000
  drop_shadow=false
  rounding=0
  shadow_ignore_window=1
  shadow_offset=2 2
  shadow_range=4
  shadow_render_power=1
}

device {
  name=tpps/2-elan-trackpoint
  sensitivity=-0.300000
  tap-to-click=false
}

dwindle {
  preserve_split=1
  pseudotile=1
}

general {
  border_size=1
  col.active_border=rgba(4a7697ff)
  col.inactive_border=rgba(2b2b2bff)
  gaps_in=0
  gaps_out=0
  no_border_on_floating=true
  resize_on_border=true
}

gestures {
  workspace_swipe=1
  workspace_swipe_forever=1
}

group {
  groupbar {
    col.active=rgba(285577ff)
    col.inactive=rgba(2b2b2bff)
    font_family=DejaVu Sans
    font_size=10
    height=22
    text_color=rgba(ffffffff)
  }
  col.border_active=rgba(285577ff)
  col.border_inactive=rgba(2b2b2bff)
  insert_after_current=false
}

input {
  touchpad {
    clickfinger_behavior=true
    disable_while_typing=true
    scroll_factor=0.300000
    tap-to-click=false
  }
  accel_profile=adaptive
  float_switch_override_focus=0
  follow_mouse=2
  kb_layout=us, cn
  kb_options=ctrl:nocaps
  repeat_delay=255
  repeat_rate=50
}


misc {
  disable_hyprland_logo=true
  disable_splash_rendering=true
  focus_on_activate=true
  force_default_wallpaper=0
  mouse_move_focuses_monitor=false
}

xwayland {
  force_zero_scaling=true
}
bind=$mod, E, exec, if systemctl --user is-active --quiet fcitx5-daemon; then systemctl --user stop fcitx5-daemon; else systemctl --user start fcitx5-daemon; fi
bind=$mod, Return, exec, $term
bind=$mod, X, exec, /nix/store/5xl4gk964bp3djb3dsxmqcddgb6bch5v-hyprlock.sh
bind=$mod, A, exec, /nix/store/1zs45x1p2b6wbxzn77js76f2qm1rbdxr-hyprpicker-0.4.1/bin/hyprpicker -a --format=hex
bind=$mod, C, exec, /nix/store/x47gylv7k46fl94vv3n8igxg5f9gf417-hyprland-kill-active.sh
bind=$mod_SHIFT, C, exec, /nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl -j activewindow | /nix/store/v0azfsqv58llx12jal5ngx3mj0rj7km6-jq-1.7.1-bin/bin/jq '.pid' | /nix/store/yb8icljkwhk5lla4nci3myndq2m4ywly-findutils-4.10.0/bin/xargs -L 1 kill -9
bind=$mod, R, exec, /nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl reload
bind=$mod, Y, exec, systemctl --user restart kanshi
bind=$mod, T, exec, /nix/store/p1bc62yb5davzbcm3qhqbyrw2ps77789-hyprland-toggle-group.sh
bind=$mod_SHIFT, E, exec, nag-graphical 'Exit Hyprland?' '/nix/store/4383n19qciqk5p4nl70jm66ijpwvpji3-exit-hyprland'
bind=$mod_SHIFT, P, exec, nag-graphical 'Power off?' 'systemctl poweroff -i, mode "default"'
bind=$mod_SHIFT, R, exec, nag-graphical 'Reboot?' 'systemctl reboot'
bind=$mod_SHIFT, S, exec, nag-graphical 'Suspend?' '/nix/store/5xl4gk964bp3djb3dsxmqcddgb6bch5v-hyprlock.sh suspend'
bind=$mod_SHIFT_CTRL, L, movecurrentworkspacetomonitor, r
bind=$mod_SHIFT_CTRL, H, movecurrentworkspacetomonitor, l
bind=$mod_SHIFT_CTRL, K, movecurrentworkspacetomonitor, u
bind=$mod_SHIFT_CTRL, J, movecurrentworkspacetomonitor, d
bind=$mod, N, exec, /nix/store/crf36ywgaxw644bi904afx748cflrqk2-SwayNotificationCenter-0.10.1/bin/swaync-client -t -sw
bind=$mod_SHIFT, N, exec, /nix/store/crf36ywgaxw644bi904afx748cflrqk2-SwayNotificationCenter-0.10.1/bin/swaync-client -C -sw
bind=$mod_SHIFT_CTRL, N, exec, /nix/store/crf36ywgaxw644bi904afx748cflrqk2-SwayNotificationCenter-0.10.1/bin/swaync-client -d -sw
bind=SHIFT_CTRL, 3, exec, /nix/store/n3imw67fschwnc1w0k60kp3zigw43awz-grim-1.4.1/bin/grim -o $(/nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl -j activeworkspace | jq -r '.monitor') - | /nix/store/l4wacvxpg0lmvcg8f9j5nx423ran8a93-wl-clipboard-2.2.1/bin/wl-copy -t image/png
bind=SHIFT_CTRL, 4, exec, /nix/store/n3imw67fschwnc1w0k60kp3zigw43awz-grim-1.4.1/bin/grim -g "$(/nix/store/mlaap42jaw9g721bgpb1vr3xxziavw1m-slurp-1.5.0/bin/slurp -d)" - | /nix/store/l4wacvxpg0lmvcg8f9j5nx423ran8a93-wl-clipboard-2.2.1/bin/wl-copy -t image/png
bind=SHIFT_CTRL, 5, exec, /nix/store/n3imw67fschwnc1w0k60kp3zigw43awz-grim-1.4.1/bin/grim -g "$(/nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl -j activewindow | jq -r '.at | join(",")') $(/nix/store/i5qcc16qq9fb1bs8xlfgvb7dhxghb59m-hyprland-0.44.0+date=2024-10-28_d679d20/bin/hyprctl -j activewindow | jq -r '.size | join("x")')" - | /nix/store/l4wacvxpg0lmvcg8f9j5nx423ran8a93-wl-clipboard-2.2.1/bin/wl-copy -t image/png
bind=$mod_CTRL, L, resizeactive, 10 0
bind=$mod_CTRL, H, resizeactive, -10 0
bind=$mod_CTRL, K, resizeactive, 0 -10
bind=$mod_CTRL, J, resizeactive, 0 10
bind=$mod, H, exec, /nix/store/jvlwfb561hgzj6iiv7dbbhi3da7wm9yf-hyprland-move-left.sh
bind=$mod, L, exec, /nix/store/z96z0q6sl7c4w9nmzw2haiw0fvc0ww0l-hyprland-move-right.sh
bind=$mod, K, movefocus, u
bind=$mod, J, movefocus, d
bind=$mod_SHIFT, L, movewindow, r
bind=$mod_SHIFT, H, movewindow, l
bind=$mod_SHIFT, K, movewindow, u
bind=$mod_SHIFT, J, movewindow, d
bind=$mod, F, fullscreen
bind=$mod, SPACE, togglefloating
bind=$mod, P, exec, /nix/store/pimx7arnbc7aj55zj2zgv26wkqahv27j-rofi-1.7.5+wayland3/bin/rofi -show drun -theme ~/.config/rofi/launcher.rasi
bind=$mod, Escape, exec, wlogout -p layer-shell
bind=$mod, O, exec, run-as-service wl-ocr
bind=$mod, S, submap, resize
bind=, Print, exec, $screenshotarea
bind=CTRL, Print, exec, grimblast --notify --cursor copysave output
bind=$mod_SHIFT_CTRL, R, exec, grimblast --notify --cursor copysave output
bind=ALT, Print, exec, grimblast --notify --cursor copysave screen
bind=$mod_SHIFT_ALT, R, exec, grimblast --notify --cursor copysave screen
bind=$mod, bracketleft, workspace, m-1
bind=$mod, bracketright, workspace, m+1
bind=$mod_SHIFT, braceleft, focusmonitor, l
bind=$mod_SHIFT, braceright, focusmonitor, r
bind=, mouse:274, exec, ;
bind=$mod, 1, workspace, 1
bind=$mod_SHIFT, 1, movetoworkspace, 1
bind=$mod, 2, workspace, 2
bind=$mod_SHIFT, 2, movetoworkspace, 2
bind=$mod, 3, workspace, 3
bind=$mod_SHIFT, 3, movetoworkspace, 3
bind=$mod, 4, workspace, 4
bind=$mod_SHIFT, 4, movetoworkspace, 4
bind=$mod, 5, workspace, 5
bind=$mod_SHIFT, 5, movetoworkspace, 5
bind=$mod, 6, workspace, 6
bind=$mod_SHIFT, 6, movetoworkspace, 6
bind=$mod, 7, workspace, 7
bind=$mod_SHIFT, 7, movetoworkspace, 7
bind=$mod, 8, workspace, 8
bind=$mod_SHIFT, 8, movetoworkspace, 8
bind=$mod, 9, workspace, 9
bind=$mod_SHIFT, 9, movetoworkspace, 9
bind=$mod, 0, workspace, 10
bind=$mod_SHIFT, 0, movetoworkspace, 10
bind=,switch:on:Lid Switch,exec,/nix/store/5xl4gk964bp3djb3dsxmqcddgb6bch5v-hyprlock.sh suspend
bindl=, XF86AudioPlay, exec, playerctl play-pause
bindl=, XF86AudioPrev, exec, playerctl previous
bindl=, XF86AudioNext, exec, playerctl next
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindl=, XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindle=, XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%+
bindle=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 6%-
bindle=, XF86MonBrightnessUp, exec, light -A 5
bindle=, XF86MonBrightnessDown, exec, light -U 5
bindm=$mod, mouse:272, movewindow
bindm=$mod, mouse:273, resizewindow
bindm=$mod_ALT, mouse:272, resizewindow
env=XDG_CURRENT_DESKTOP,Hyprland
env=XDG_SESSION_TYPE,wayland
env=XDG_SESSION_DESKTOP,Hyprland
env=GDK_BACKEND,wayland,x11,*
env=QT_QPA_PLATFORM,wayland;xcb
env=SDL_VIDEODRIVER,wayland
env=CLUTTER_BACKEND,wayland
env=QT_AUTO_SCREEN_SCALE_FACTOR,1
env=QT_QPA_PLATFORM,wayland;xcb
env=QT_WAYLAND_DISABLE_WINDOWDECORATION,1
env=QT_QPA_PLATFORMTHEME,qt5ct
exec=/nix/store/wrr8q18wfjilf7dz8r065x809insfvyy-hyprland-wallpaper
exec=pkill blueman-applet; /nix/store/2akym1708hiiip7k8jl95hi28m87dzsi-blueman-2.4.3/bin/blueman-applet
exec=systemctl --user restart xdg-desktop-portal-hyprland
exec=systemctl --user restart polkit-gnome-authentication-agent-1
exec=systemctl --user restart swaynotificationcenter
exec=systemctl --user restart network-manager-applet
exec=systemctl --user restart wlsunset
exec=systemctl --user stop sway-idle
exec=systemctl --user restart hypridle
exec=/nix/store/nih46jywjbx2b5d7q3x7zqz3pi5f2823-hyprland-bitwarden-resize
exec-once=[workspace 2 silent] foot tmux a -dt code
exec-once=[workspace 3 silent] slack
exec-once=[workspace 4 silent] spotify
exec-once=[workspace 4 silent] brave
exec-once=[workspace 5 silent] firefox
exec-once=[workspace 6 silent] signal-desktop
exec-once=[workspace 6 silent] telegram-desktop
exec-once=[workspace 6 silent] whatsapp-for-linux
exec-once=[workspace 7 silent] discord
exec-once=[workspace 7 silent] element-desktop
exec-once=[workspace 1 silent] chromium
exec-once=tmux setenv -g HYPRLAND_INSTANCE_SIGNATURE "$HYPRLAND_INSTANCE_SIGNATURE"
exec-once=/nix/store/q21vajvrw33zlvaly5b12p5sayjn96w9-waybar-0.11.0/bin/waybar
monitor=eDP-1,2880x1800@90,0x0,1.8
monitor=desc:LG Electronics 16MQ70 20NKZ005285,2560x1600@60,1599x0,1.6
monitor=desc:LG Electronics LG Ultra HD 0x00043EAD,3840x2160@60,0x0,1.5
monitor=desc:LG Electronics LG HDR 4K 0x00020F5B,3840x2160@60,2560x0,1.5
windowrulev2=workspace 2, silent, class:^(kitty)$
windowrulev2=workspace 2, silent, class:^(foot)$
windowrulev2=workspace 3, silent, class:^(Slack)$
windowrulev2=workspace 4, silent, title:^(Spotify Premium)$
windowrulev2=workspace 4, silent, class:^(brave-browser)$
windowrulev2=workspace 5, silent, class:^(firefox)$
windowrulev2=workspace 6, class:^(signal)$
windowrulev2=workspace 6, class:^(org.telegram.desktop)$
windowrulev2=workspace 6, class:^(whatsapp-for-linux)$
windowrulev2=workspace 7, class:^(discord)$
windowrulev2=workspace 7, class:^(Element)$
windowrulev2=workspace 1, silent, class:^(chromium-browser)$
windowrulev2=float, title:^(KCalc)$
windowrulev2=float, title:^(Media viewer)$
windowrulev2=float, title:^(Picture-in-Picture)$
windowrulev2=pin, title:^(Picture-in-Picture)$
windowrulev2=workspace special silent, title:^(Firefox — Sharing Indicator)$
windowrulev2=workspace special silent, title:^(.*is sharing (your screen|a window).)$
windowrulev2=stayfocused, class:^(zenity)$
windowrulev2=float, initialClass:^(mpv)$
windowrulev2=float, class:^(mpv)$
windowrulev2=fullscreen, initialClass:^(mpv)$
windowrulev2=fullscreen, class:^(mpv)$
windowrulev2=idleinhibit focus, initialClass:^(mpv)$
windowrulev2=idleinhibit focus, class:^(mpv)$
windowrulev2=idleinhibit focus, class:^(zoom)$
windowrulev2=idleinhibit fullscreen, class:^(firefox)$
windowrulev2=idleinhibit fullscreen, class:^(chromium)$
windowrulev2=idleinhibit fullscreen, class:^(brave)$
windowrulev2=float, initialTitle:^(Bitwarden)$
windowrulev2=float, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$
windowrulev2=center, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$
windowrulev2=size 400 600, initialTitle:^(_crx_nngceckbapebfimnlniiiahkandclblb)$
windowrulev2=suppressevent maximize, class:^(firefox)$
windowrulev2=fullscreen,class:flameshot
windowrulev2=float,class:flameshot
windowrulev2=monitor 0,class:flameshot
windowrulev2=move 0 0,class:flameshot
windowrulev2=noanim,class:flameshot
windowrulev2=noborder,class:flameshot
windowrulev2=rounding 0,class:flameshot
windowrulev2=stayfocused, class:^(BambuStudio)$,title:^()$
windowrulev2=suppressevent activate, class:^(BambuStudio)$,title:^()$
workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 1
workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 4
workspace=desc:LG Electronics LG Ultra HD 0x00043EAD, 5
workspace=desc:LG Electronics LG HDR 4K 0x00020F5B, 2
workspace=desc:LG Electronics LG HDR 4K 0x00020F5B, 7
workspace=w[t1], border:false
workspace=w[g1], border:false
# repeating binds (will repeat when key is held)
submap = resize
binde = , right, resizeactive, 10 0
binde = , left, resizeactive, -10 0
binde = , up, resizeactive, 0 -10
binde = , down, resizeactive, 0 10
bind = , escape, submap, reset
submap = reset

======Config-End========

Description

When docking, sometimes one external monitor does not turn on. Sometimes Hyprland crashes. When undocking, sometimes the screen won't turn on, and it's impossible to switch to a TTY, so a hard reboot is necessary. docking and undocking works maybe once every six tries. Sometimes the same monitor is listed twice in wlr-randr. When a monitor won't turn on, using kanshi or wdisplay does not work to remedy the situation

Using a Thinkpad X1C gen 11, a Thinkpad Thunderbolt 4 universal dock, and two 27" 4k LG monitors.

How to reproduce

Get a thinkpad thunderbolt 4 universal dock and two 4k monitors. dock or undock. It happens almost every time.

Hyprland 0.44.0 built from branch at commit d679d20 ().

Crash reports, logs, images, videos

Attached logs for a docking failure.
hyprland.log

@erahhal erahhal added the bug Something isn't working label Oct 30, 2024
@pendula95
Copy link

pendula95 commented Oct 30, 2024

I can confirm same behavior on X1C gen 12

@vaxerski
Copy link
Member

you said a crash, can you post a crash report?

@erahhal
Copy link
Author

erahhal commented Oct 30, 2024

Would that be a separate file from the logs? I see hyprland exit and go to the display manager, but no explicit crash message or anything. The log provided is from one of these instances.

@Aqa-Ib
Copy link
Contributor

Aqa-Ib commented Oct 30, 2024

@erahhal
Copy link
Author

erahhal commented Oct 30, 2024

Sorry, I'm old and going senile. I've read that page before and forgot. I've attached the crash report. And I'll add a couple more for good measure.
hyprlandCrashReport3687597.txt
hyprlandCrashReport3685509.txt
hyprlandCrashReport4105.txt

@vaxerski
Copy link
Member

vaxerski commented Nov 1, 2024

this is very odd, could you try to get a debug stacktrace? https://wiki.hyprland.org/Crashes-and-Bugs/#obtaining-a-debug-stacktrace

@erahhal
Copy link
Author

erahhal commented Nov 1, 2024

I tried coredumpctl debug Hyprland right after a crash and got No match found.. I'm using the master flake of Hyprland directly from this repo. System info above says: flags set: debug, is that not the same as a debug build?

@erahhal
Copy link
Author

erahhal commented Nov 1, 2024

Ah, I see there's a hyprland-debug package published by the flake. Will install that and try to reproduce.

@erahhal
Copy link
Author

erahhal commented Nov 1, 2024

Confirmed that I'm running with the debug build:

binary: /nix/store/d0arcn9b0q0yrcl0g7zqd894h7vh5qln-hyprland-debug-0.44.0+date=2024-10-28_d679d20/bin/Hyprland

Confirmed that debug is on in the config. From log file:

[LOG] Using config: /home/erahhal/.config/hypr/hyprland.conf

In config:

debug {
  disable_logs=false
}

BUT in the run log:

[INFO] !!!!HEY YOU, YES YOU!!!!: further logs to stdout / logfile are disabled by default. BEFORE SENDING THIS LOG, ENABLE THEM. Use debug:disable_logs = false to do so: https://wiki.hyprland.org/Configuring/Variables/#debug

Running coredumpctl debug Hyprland:

No match found.

@leiserfg
Copy link
Contributor

leiserfg commented Nov 1, 2024

I will try to bisect, a3d3b4f was working fine, I also noticed that in the current master 3c0605c at least one game crashes the desktop (factorio).

@leiserfg
Copy link
Contributor

leiserfg commented Nov 1, 2024

@vaxerski the multimonitor issue was introduced by 5d4b54b it only happens at startup, if the monitor is added afterward, it works fine.

@leiserfg
Copy link
Contributor

leiserfg commented Nov 1, 2024

The factorio issue was introduced after that, so, the last "safe" Hyprland is b6e226c. I'll keep bisecting.

@erahhal
Copy link
Author

erahhal commented Nov 1, 2024

@leiserfg we may be seeing different issues. I've never seen docking and undocking work in a stable fashion, so I have nothing to bisect. It's also not related to a specific app.

@leiserfg
Copy link
Contributor

leiserfg commented Nov 1, 2024

The issue with factorio is unrelated, I already send the affected commit to in another thread.

@erahhal
Copy link
Author

erahhal commented Nov 3, 2024

Was able to get the debug stacktrace after digging in a bit. I've attached it here.

gdb.txt

For future reference, on NixOS you've got to do the following:

  1. Install the gdb package
  2. Enable coredumps: systemd.coredump.enable = true;
  3. Get the PID of the crashed process (using the executable name like this doesn't work: coredumpctl debug Hyprland) by running coredumpctl and getting to the bottom of the list of crashes
  4. run coredumpctl debug <pid>

@vaxerski
Copy link
Member

vaxerski commented Nov 3, 2024

hyprland is not made in debug in that coredump

@erahhal
Copy link
Author

erahhal commented Nov 4, 2024

Not having any luck figuring out how to get debug symbols. I'm using the hyprland-debug build from the flake, and overriding the package with debug = true; for good measure.

Have pinged for help on Discord a couple times without luck:

https://discord.com/channels/961691461554950145/1302745167903723652/1302745315472048129

https://discord.com/channels/961691461554950145/1233827370855694426/1302744365264801812

Is there a problem with the Hyprland flake or am I doing something stupid?

@erahhal
Copy link
Author

erahhal commented Nov 4, 2024

My message on Discord:

Using the hyprland-debug package from the flake, added an override to the package setting debug = true; to be extra sure, and made sure debug logging is not disabled in the hyprland config. Still no debug symbols in the stack trace. the coredumpctl list entry that I'm using is definitely pointing to the Hyprland binary in the hyprland-debug package.
But the stack trace produced by gdb says that there are no debug symbols.

Fri 2024-11-01 13:20:16 PDT    4804 1000 100 SIGABRT present      /nix/store/d0arcn9b0q0yrcl0g7zqd894h7vh5qln-hyprland-debug-0.44.0+date=2024-10-28_d679d20/bin/.Hyprland-wrapped                                     20.8M

@leiserfg
Copy link
Contributor

leiserfg commented Nov 4, 2024

@fufexan can you help us here with the debugging in nix? we can't manage to make hyprland to include debugging symbols. I tried the same steps as @erahhal and get a very similar coredump just by starting hyprland with an external monitor attached to my laptop. If I start with a single monitor and attach it after it does not crash.

@fufexan
Copy link
Member

fufexan commented Nov 4, 2024

the hyprland-debug should already include debug symbols since dontStrip is set to true.

Let me try something though.

@fufexan
Copy link
Member

fufexan commented Nov 4, 2024

Can you try hyprland-debug from github:hyprwm/hyprland/keepDebugInfo?

@erahhal
Copy link
Author

erahhal commented Nov 4, 2024

Can you try hyprland-debug from github:hyprwm/hyprland/keepDebugInfo?

Same problem, No symbol table info available.

@fufexan
Copy link
Member

fufexan commented Nov 5, 2024

We probably need debug symbols for aquamarine as well. I'll cook something up.

@erahhal
Copy link
Author

erahhal commented Nov 5, 2024

We probably need debug symbols for aquamarine as well. I'll cook something up.

Thanks, much appreciated.

@fufexan
Copy link
Member

fufexan commented Nov 5, 2024

Can you update that branch and try again?

@leiserfg
Copy link
Contributor

leiserfg commented Nov 5, 2024

I think the missing symbols are from Hyprutils.

@erahhal
Copy link
Author

erahhal commented Nov 5, 2024

I get the following error when running nixos-rebuild. It appears that there is no debug parameter for the aquamarine default.nix module:

error:
       … while calling the 'head' builtin
         at /nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/lib/attrsets.nix:1575:11:
         1574|         || pred here (elemAt values 1) (head values) then
         1575|           head values
             |           ^
         1576|         else

       … while evaluating the attribute 'value'
         at /nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.build.toplevel':

       … while evaluating definitions from `/nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/nixos/modules/system/activation/top-level.nix':

       … while evaluating the option `warnings':

       … while evaluating definitions from `/nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/nixos/modules/system/boot/systemd.nix':

       … while evaluating the option `systemd.services.home-manager-erahhal.serviceConfig':

       … while evaluating definitions from `/nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/flake.nix':

       … while evaluating the option `home-manager.users.erahhal.home.activation.checkFilesChanged.data':

       … while evaluating definitions from `/nix/store/bnwq0xfkxzfqzd2679a3j8pihpis4rks-source/modules/files.nix':

       … while evaluating the option `home-manager.users.erahhal.home.file."/home/erahhal/.config/hypr/hyprland.conf".onChange':

       … while evaluating definitions from `/nix/store/bnwq0xfkxzfqzd2679a3j8pihpis4rks-source/modules/misc/xdg.nix':

       … while evaluating the option `home-manager.users.erahhal.xdg.configFile."hypr/hyprland.conf".onChange':

       … while evaluating definitions from `/nix/store/bnwq0xfkxzfqzd2679a3j8pihpis4rks-source/modules/services/window-managers/hyprland.nix':

       (stack trace truncated; use '--show-trace' to show the full, detailed trace)

       error: function 'anonymous lambda' called with unexpected argument 'debug'
       at /nix/store/fgxkr9w7f607kx637h5p5n1i0f51fj6g-source/nix/default.nix:1:1:
            1| {
             | ^
            2|   lib,
make: *** [Makefile:27: switch] Error 1

@erahhal
Copy link
Author

erahhal commented Nov 5, 2024

@leiserfg
Copy link
Contributor

leiserfg commented Nov 5, 2024

@erahhal I did manage to build that branch, this is my stacktrace
gdb.txt

@fufexan
Copy link
Member

fufexan commented Nov 5, 2024

Ok, updated to include hyprutils with debug info.

@erahhal
Copy link
Author

erahhal commented Nov 5, 2024

Attached gdb.txt with this latest build.
gdb.txt

@vaxerski
Copy link
Member

vaxerski commented Nov 6, 2024

try now

@erahhal
Copy link
Author

erahhal commented Nov 6, 2024

@vaxerski I think you nailed it. I've flipped back and forth between docked and undocked 10 times and can't get it to crash.

There are a couple other issues that I'm seeing now but I think I've seen tickets for them already?

  1. Most apps crashing with monitor changes/docking/undocking (doesn't happen every time though)
  2. Undocking while suspended causes the laptop monitor not to wake up, even with a DPMS on trigger. It recovers though by docking and undocking again.

I can create tickets for these if they don't already exist, but I'll look for them first.

@leiserfg
Copy link
Contributor

leiserfg commented Nov 6, 2024

Works fine for me too, maybe the changes @fufexan did should be merged so next time it's easier to get the stacktrace?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

6 participants