{"action":"created","issue":{"url":"https://api.github.com/repos/Alexays/Waybar/issues/120","repository_url":"https://api.github.com/repos/Alexays/Waybar","labels_url":"https://api.github.com/repos/Alexays/Waybar/issues/120/labels{/name}","comments_url":"https://api.github.com/repos/Alexays/Waybar/issues/120/comments","events_url":"https://api.github.com/repos/Alexays/Waybar/issues/120/events","html_url":"https://github.com/Alexays/Waybar/issues/120","id":388912302,"node_id":"MDU6SXNzdWUzODg5MTIzMDI=","number":120,"title":"Crash when removing/adding outputs","user":{"login":"jeremejevs","id":2584727,"node_id":"MDQ6VXNlcjI1ODQ3Mjc=","avatar_url":"https://avatars1.githubusercontent.com/u/2584727?v=4","gravatar_id":"","url":"https://api.github.com/users/jeremejevs","html_url":"https://github.com/jeremejevs","followers_url":"https://api.github.com/users/jeremejevs/followers","following_url":"https://api.github.com/users/jeremejevs/following{/other_user}","gists_url":"https://api.github.com/users/jeremejevs/gists{/gist_id}","starred_url":"https://api.github.com/users/jeremejevs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeremejevs/subscriptions","organizations_url":"https://api.github.com/users/jeremejevs/orgs","repos_url":"https://api.github.com/users/jeremejevs/repos","events_url":"https://api.github.com/users/jeremejevs/events{/privacy}","received_events_url":"https://api.github.com/users/jeremejevs/received_events","type":"User","site_admin":false},"labels":[{"id":1018823088,"node_id":"MDU6TGFiZWwxMDE4ODIzMDg4","url":"https://api.github.com/repos/Alexays/Waybar/labels/bug","name":"bug","color":"d73a4a","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":6,"created_at":"2018-12-08T11:14:03Z","updated_at":"2018-12-08T16:10:49Z","closed_at":null,"author_association":"NONE","body":"Example 1:\r\n\r\n```\r\nBar removed from output: DP-3\r\nBar removed from output: DP-4\r\nUnable to receive IPC response\r\nUnable to receive IPC response\r\n\r\nglibmm-CRITICAL **: 12:49:03.096: Error in inter-thread communication: write() failed: Bad file descriptor\r\nGdk-CRITICAL **: 12:49:03.442: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed\r\nglibmm-CRITICAL **: 12:49:03.443: Error in inter-thread communication: write() failed: Bad file descriptor\r\nGdk-CRITICAL **: 12:49:03.443: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed\r\nGdk-CRITICAL **: 12:49:03.443: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed\r\nGdk-CRITICAL **: 12:49:03.443: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed\r\n\r\n*lots of \"gdk_monitor_get_scale_factor\" here*\r\n\r\nTray is in beta, so there may be bugs or even be unusable.\r\n\r\nGdk-CRITICAL **: 12:49:03.543: gdk_monitor_get_scale_factor: assertion 'GDK_IS_MONITOR (monitor)' failed\r\n\r\n*lots of \"gdk_monitor_get_scale_factor\" here*\r\n\r\nAn object is already exported for the interface org.kde.StatusNotifierWatcher at /StatusNotifierWatcher\r\n\r\nGdk-CRITICAL **: 12:49:03.658: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed\r\nGdk-CRITICAL **: 12:49:03.658: gdk_monitor_get_workarea: assertion 'GDK_IS_MONITOR (monitor)' failed\r\n\r\nBar configured (width: 1920, height: 32) for output: eDP-1\r\nzsh: segmentation fault (core dumped)  waybar\r\n```\r\n\r\nExample 2:\r\n\r\n```\r\nBar removed from output: DP-6\r\n\r\nglibmm-WARNING **: 13:05:46.768: Dropped dispatcher message as the dispatcher no longer exists\r\nglibmm-WARNING **: 13:05:46.768: Dropped dispatcher message as the dispatcher no longer exists\r\n\r\nUnable to receive IPC response\r\ncorrupted double-linked list\r\nzsh: abort (core dumped)  waybar\r\n```\r\n\r\nHonestly, there are a lot of things that can go wrong in my setup:\r\n\r\n- Sway itself, which crashes maybe every 3rd - 5th time I mess with outputs.\r\n- Two monitors daisy-chained through DisplayPort, which confuses even Windows sometimes.\r\n- [Kanshi](https://github.com/emersion/kanshi), with a XOR config of either two external monitors or laptop screen.\r\n- Enabled tray module.\r\n\r\nSo I'm not sure if you'll be able to reproduce this. But yeah, I got Waybar to crash on a second try when turning off and then turning on the second monitor in the daisy chain, seen in example 2. To be clear: I disconnected DP-6, connected it, then disconnected it, and then Waybar crashed when I connected it."},"comment":{"url":"https://api.github.com/repos/Alexays/Waybar/issues/comments/445470032","html_url":"https://github.com/Alexays/Waybar/issues/120#issuecomment-445470032","issue_url":"https://api.github.com/repos/Alexays/Waybar/issues/120","id":445470032,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0NTQ3MDAzMg==","user":{"login":"jeremejevs","id":2584727,"node_id":"MDQ6VXNlcjI1ODQ3Mjc=","avatar_url":"https://avatars1.githubusercontent.com/u/2584727?v=4","gravatar_id":"","url":"https://api.github.com/users/jeremejevs","html_url":"https://github.com/jeremejevs","followers_url":"https://api.github.com/users/jeremejevs/followers","following_url":"https://api.github.com/users/jeremejevs/following{/other_user}","gists_url":"https://api.github.com/users/jeremejevs/gists{/gist_id}","starred_url":"https://api.github.com/users/jeremejevs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jeremejevs/subscriptions","organizations_url":"https://api.github.com/users/jeremejevs/orgs","repos_url":"https://api.github.com/users/jeremejevs/repos","events_url":"https://api.github.com/users/jeremejevs/events{/privacy}","received_events_url":"https://api.github.com/users/jeremejevs/received_events","type":"User","site_admin":false},"created_at":"2018-12-08T16:10:49Z","updated_at":"2018-12-08T16:10:49Z","author_association":"NONE","body":"Tested, now it crashes consistently when unplugging the monitor:\r\n\r\n```\r\nBar removed from output: DP-1\r\nUnable to receive IPC response\r\n[Thread 0x7fffd5ffb700 (LWP 2666) exited]\r\nterminate called without an active exception\r\n\r\nThread 1 \"waybar\" received signal SIGABRT, Aborted.\r\n0x00007ffff5a6ad7f in raise () from /usr/lib/libc.so.6\r\n(gdb) bt full\r\n#0  0x00007ffff5a6ad7f in raise () at /usr/lib/libc.so.6\r\n#1  0x00007ffff5a55672 in abort () at /usr/lib/libc.so.6\r\n#2  0x00007ffff5e4258e in __gnu_cxx::__verbose_terminate_handler() () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/vterminate.cc:95\r\n        terminating = true\r\n        t = <optimized out>\r\n#3  0x00007ffff5e48dfa in __cxxabiv1::__terminate(void (*)()) (handler=<optimized out>) at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:47\r\n#4  0x00007ffff5e48e57 in std::terminate() () at /build/gcc/src/gcc/libstdc++-v3/libsupc++/eh_terminate.cc:57\r\n#5  0x0000555555587295 in std::thread::~thread() (this=0x55555573fbb0, __in_chrg=<optimized out>) at /usr/include/c++/8.2.1/thread:140\r\n#6  0x0000555555587620 in waybar::util::SleeperThread::~SleeperThread() (this=0x55555573fbb0, __in_chrg=<optimized out>) at ../include/util/chrono.hpp:83\r\n#7  0x00005555555ae100 in waybar::modules::sway::Workspaces::~Workspaces() (this=0x55555573fb80, __in_chrg=<optimized out>) at ../include/modules/sway/workspaces.hpp:13\r\n#8  0x00005555555ae128 in waybar::modules::sway::Workspaces::~Workspaces() (this=0x55555573fb80, __in_chrg=<optimized out>) at ../include/modules/sway/workspaces.hpp:13\r\n#9  0x000055555559c50a in std::default_delete<waybar::IModule>::operator()(waybar::IModule*) const (this=0x55555570a820, __ptr=0x55555573fb80) at /usr/include/c++/8.2.1/bits/unique_ptr.h:81\r\n#10 0x000055555559c48b in std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >::~unique_ptr() (this=0x55555570a820, __in_chrg=<optimized out>) at /usr/include/c++/8.2.1/bits/unique_ptr.h:274\r\n        __ptr = @0x55555570a820: 0x55555573fb80\r\n#11 0x000055555559c416 in std::_Destroy<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> > >(std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*) (__pointer=0x55555570a820) at /usr/include/c++/8.2.1/bits/stl_construct.h:98\r\n#12 0x000055555559c38f in std::_Destroy_aux<false>::__destroy<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*>(std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*, std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*)\r\n    (__first=0x55555570a820, __last=0x55555570a830) at /usr/include/c++/8.2.1/bits/stl_construct.h:108\r\n#13 0x000055555559c2ba in std::_Destroy<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*>(std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*, std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*) (__first=0x55555570a820, __last=0x55555570a830)\r\n    at /usr/include/c++/8.2.1/bits/stl_construct.h:137\r\n#14 0x000055555559c1db in std::_Destroy<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*, std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> > >(std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*, std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*, std::allocator<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> > >&) (__first=0x55555570a820, __last=0x55555570a830) at /usr/include/c++/8.2.1/bits/stl_construct.h:206\r\n#15 0x000055555559f551 in std::vector<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >, std::allocator<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> > > >::_M_erase_at_end(std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >*)\r\n    (this=0x555555688ce0, __pos=0x55555570a820) at /usr/include/c++/8.2.1/bits/stl_vector.h:1658\r\n        __n = 2\r\n#16 0x000055555559ed70 in std::vector<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> >, std::allocator<std::unique_ptr<waybar::IModule, std::default_delete<waybar::IModule> > > >::clear() (this=0x555555688ce0) at /usr/include/c++/8.2.1/bits/stl_vector.h:1386\r\n#17 0x000055555559d26f in waybar::Bar::layerSurfaceHandleClosed(void*, zwlr_layer_surface_v1*) (data=0x555555688c00) at ../src/bar.cpp:134\r\n        o = 0x555555688c00\r\n#18 0x00007ffff5a2e6d0 in ffi_call_unix64 () at /usr/lib/libffi.so.6\r\n#19 0x00007ffff5a2e0a0 in ffi_call () at /usr/lib/libffi.so.6\r\n#20 0x00007ffff7f8af5f in  () at /usr/lib/libwayland-client.so.0\r\n#21 0x00007ffff7f876ca in  () at /usr/lib/libwayland-client.so.0\r\n#22 0x00007ffff7f88c0c in wl_display_dispatch_queue_pending () at /usr/lib/libwayland-client.so.0\r\n#23 0x00007ffff6986ea5 in  () at /usr/lib/libgdk-3.so.0\r\n#24 0x00007ffff6924c92 in gdk_display_get_event () at /usr/lib/libgdk-3.so.0\r\n#25 0x00007ffff6986b94 in  () at /usr/lib/libgdk-3.so.0\r\n#26 0x00007ffff66433cf in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0\r\n#27 0x00007ffff6644f89 in  () at /usr/lib/libglib-2.0.so.0\r\n#28 0x00007ffff6644fce in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0\r\n#29 0x00007ffff67ea7ee in g_application_run () at /usr/lib/libgio-2.0.so.0\r\n#30 0x00005555555a200d in waybar::Client::main(int, char**) (this=0x7fffffffe6f0) at ../src/client.cpp:110\r\n#31 0x000055555559b70f in main(int, char**) (argc=1, argv=0x7fffffffe888) at ../src/main.cpp:22\r\n        c = \r\n              {gtk_app = {pCppObject_ = 0x555555655660}, css_file = \"/home/user/.config/waybar/style.css\", config_file = \"/home/user/.config/waybar/config\", gdk_display = {pCppObject_ = 0x55555583f1c0}, wl_display = 0x5555556e66c0, registry = 0x555555887940, layer_shell = 0x5555559cbf80, xdg_output_manager = 0x5555559caea0, seat = 0x5555559cbe70, bars = std::vector of length 2, capacity 2 = {std::unique_ptr<waybar::Bar> = {get() = 0x555555777650}, std::unique_ptr<waybar::Bar> = {get() = 0x555555688c00}}}\r\n```"}}
{"actor":{"display_login":"jeremejevs"}}