hyprwm / Hypr

Hypr is a tiling window manager written in modern C++.
BSD 3-Clause "New" or "Revised" License
1.1k stars 33 forks source link

Polybar segfaults when accessing workspaces (seemingly randomly) #102

Open stautonico opened 1 year ago

stautonico commented 1 year ago

Please describe the bug I tried setting up a polybar config and it works for works (sometimes) but it seems to segfault in random intervals. At first it seemed to crash in workspaces 5+, then I through it was crashing in in empty workspaces, but now it seems random. Moving too fast: crash, accessing empty workspace: crash, breathing: crash. I tried changing a few settings (like pin-workspaces, and enable-click), but nothing changed. I built the latest version from the master branch on Linux Mint 21.1

Steps to reproduce:

  1. Start polybar with this config:
    
    [global/wm]
    margin-bottom = 0
    margin-top = 10

[module/customworkspaces] type = internal/xworkspaces

pin-workspaces = false
enable-click = true
enable-scroll = true

#ICONS
icon-0 = 1;1
icon-1 = 2;2
icon-2 = 3;3
icon-3 = 4;4
icon-4 = 5;5
icon-5 = 6;6
icon-6 = 7;7
icon-7 = 8;8
icon-8 = 9;9
icon-9 = 10;10

icon-default = 

#LABELS
format = <label-state>
label-active-underline = #ABE9B3
format-padding = 0
label-active = %name%
label-occupied = %icon%
label-urgent = %icon%
label-empty = %icon%
label-active-padding = 4
label-urgent-padding = 4
label-occupied-padding = 4
label-empty-padding = 4

[config] monitor = eDP-1 fixed-center = false underline-color = #ffffff border-color = #ff0000

offset-x = 0 offset-y = 0 radius = 5 height = 30 radius-top = 5 radius-bottom = 5 border-size = 0 padding = 2

separator = dim-value = 1

enable-ipc = true

tray-position = left tray-detached = true tray-padding = 0 tray-offset-x = 145 tray-offset-y = 0

font-0 = "Ubuntu:style=Regular:size=10;3" font-1 = "FontAwesome:style=Regular:size=11;4" font-2 = "Iosevka Nerd Font:style=Medium:size=17;5" font-3 = "FontAwesome:style=Regular:size=11;3" font-4 = "Iosevka Nerd Font:style=Medium:size=18;4"

modules-left = customworkspaces

[bar/main] inherit = config width = 100%

[settings] throttle-output = 5 throttle-output-for = 10 screenchange-reload = true

compositing-background = source compositing-foreground = over compositing-overline = over compositing-underline = over compositing-border = over

pseudo-transparency = false

2. Switch between the workspaces a bit
3. Crash

**Expected behavior**
Polybar shouldn't crash

**Log:**
The log does contain a bunch of information, but nothing seems relevant. I'll post if requested.

**Coredump:**
I tried running polybar through gdb and this is the backtrace:

hread 1 "polybar" received signal SIGSEGV, Segmentation fault. __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:317 317 ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S: No such file or directory. (gdb) bt

0 __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:317

1 0x00007ffff7321e9f in std::cxx11::basic_string<char, std::char_traits, std::allocator >::_M_assign(std::cxx11::basic_string<char, std::char_traits, std::allocator > const&) ()

from /lib/x86_64-linux-gnu/libstdc++.so.6

2 0x00005555556aedee in polybar::modules::xworkspaces_module::handle(xpp::x::event::property_notify<polybar::connection&> const&) ()

3 0x00005555556fe207 in ?? ()

4 0x0000555555625f1b in polybar::controller::read_events() ()

5 0x0000555555626e5b in polybar::controller::run(bool, std::__cxx11::basic_string<char, std::char_traits, std::allocator >) ()

6 0x00005555555f7eed in main ()

stautonico commented 1 year ago

Update: I tried compiling polybar from source (instead of using my distro's included package) and it seems to not crash now, however, workspaces 5+ only show up in the xworkspaces module intermittently. I enabled the mpd, network, curl, and ipc build options, and disabled pulseaudio, alsa, and i3. Same config as above, no longer crashes, but workspaces still don't show up properly