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

Sway 1.7 can segfault when output is disconnected #6855

Closed
arbrauns opened this issue Feb 28, 2022 · 1 comment
Closed

Sway 1.7 can segfault when output is disconnected #6855

arbrauns opened this issue Feb 28, 2022 · 1 comment
Labels
bug Not working as intended

Comments

@arbrauns
Copy link

Please fill out the following:

  • Sway Version: sway version 1.7

  • Debug Log: I have not been able to reproduce this yet while recording log output, but I'll post it if it happens again.

  • Stack Trace:

#0  0x000055d41d712e71 in popup_damage (layer_popup=<optimized out>, whole=true) at ../sway-1.7/sway/desktop/layer_shell.c:516
        popup = <optimized out>
        surface = 0x55d41f6f4e20
        popup_sx = <optimized out>
        popup_sy = <optimized out>
        ox = 334388784
        oy = 34
        layer = <optimized out>
        wlr_output = 0x0
        output = <optimized out>
#1  0x00007fc15a6898fe in wlr_signal_emit_safe (signal=<optimized out>, data=0x55d41ee884a0) at ../wlroots-0.15.1/util/signal.c:29
        pos = 0x55d41f644ad0
        l = 0x55d41f644ad0
        cursor = {link = {prev = 0x55d41f644ad0, next = 0x7ffc13ee5e80}, notify = 0x7fc15a686f10 <handle_noop>}
        end = {link = {prev = 0x7ffc13ee5ea0, next = 0x55d41ee885a8}, notify = 0x7fc15a686f10 <handle_noop>}
#2  0x00007fc15a665250 in unmap_xdg_surface (surface=0x55d41ee884a0) at ../wlroots-0.15.1/types/xdg_shell/wlr_xdg_surface.c:40
        popup = <optimized out>
        popup_tmp = 0x55d41ee884d0
        configure = <optimized out>
        tmp = <optimized out>
        __PRETTY_FUNCTION__ = "unmap_xdg_surface"
#3  0x00007fc15a6653c5 in reset_xdg_surface (xdg_surface=0x55d41ee884a0) at ../wlroots-0.15.1/types/xdg_shell/wlr_xdg_surface.c:426
#4  0x00007fc15a675c79 in layer_surface_unmap (surface=0x55d41f5a6130) at ../wlroots-0.15.1/types/wlr_layer_shell_v1.c:268
        popup = <optimized out>
        popup_tmp = 0x55d41f5a6148
        configure = <optimized out>
        tmp = <optimized out>
#5  0x00007fc15a675d45 in layer_surface_destroy (surface=0x55d41f5a6130) at ../wlroots-0.15.1/types/wlr_layer_shell_v1.c:281
#6  0x000055d41d759729 in wl_signal_emit (data=0x55d41ee5ebf0, signal=0x55d41ee5ed88) at /usr/include/wayland-server-core.h:481
        l = <optimized out>
        next = 0x55d41ee5ed88
        index = 1
        __PRETTY_FUNCTION__ = "output_disable"
#7  output_disable (output=0x55d41ee5ebf0) at ../sway-1.7/sway/tree/output.c:265
        index = 1
        __PRETTY_FUNCTION__ = "output_disable"
#8  output_disable (output=0x55d41ee5ebf0) at ../sway-1.7/sway/tree/output.c:255
        __PRETTY_FUNCTION__ = "output_disable"
#9  0x000055d41d71c3f0 in damage_handle_destroy (listener=0x55d41ee5ed58, data=<optimized out>) at ../sway-1.7/sway/desktop/output.c:721
        output = 0x55d41ee5ebf0
#10 0x00007fc15a6898fe in wlr_signal_emit_safe (signal=<optimized out>, data=0x55d41f0bc620) at ../wlroots-0.15.1/util/signal.c:29
        pos = 0x55d41ee5ed58
        l = 0x55d41ee5ed58
        cursor = {link = {prev = 0x55d41ee5ed58, next = 0x7ffc13ee6090}, notify = 0x7fc15a686f10 <handle_noop>}
        end = {link = {prev = 0x7ffc13ee60b0, next = 0x55d41f0bc698}, notify = 0x7fc15a686f10 <handle_noop>}
#11 0x00007fc15a6753ce in wlr_output_damage_destroy (output_damage=0x55d41f0bc620) at ../wlroots-0.15.1/types/wlr_output_damage.c:129
#12 wlr_output_damage_destroy (output_damage=0x55d41f0bc620) at ../wlroots-0.15.1/types/wlr_output_damage.c:125
#13 0x00007fc15a6898fe in wlr_signal_emit_safe (signal=<optimized out>, data=0x55d41ee93270) at ../wlroots-0.15.1/util/signal.c:29
        pos = 0x55d41f0bc6a8
        l = 0x55d41f0bc6a8
        cursor = {link = {prev = 0x55d41f0bc6a8, next = 0x55d41ee5ecf8}, notify = 0x7fc15a686f10 <handle_noop>}
        end = {link = {prev = 0x55d41f742b88, next = 0x55d41ee93490}, notify = 0x7fc15a686f10 <handle_noop>}
#14 0x00007fc15a656dd9 in wlr_output_destroy (output=0x55d41ee93270) at ../wlroots-0.15.1/types/output/output.c:429
        cursor = <optimized out>
        tmp_cursor = <optimized out>
#15 wlr_output_destroy (output=0x55d41ee93270) at ../wlroots-0.15.1/types/output/output.c:420
#16 0x00007fc15a640518 in disconnect_drm_connector (conn=0x55d41ee93270) at ../wlroots-0.15.1/backend/drm/drm.c:1540
        c = <optimized out>
        wlr_conn = 0x55d41ee93270
        drm_conn = 0x55d41ee48060
        conn_id = <optimized out>
        index = <optimized out>
        curr_enc = 0x55d41ee8cb90
        i = 5
        res = <optimized out>
        seen_len = <optimized out>
        seen = 0x0
        new_outputs_len = 0
        new_outputs = 0x7ffc13ee61a0
        conn = <optimized out>
        tmp_conn = <optimized out>
        index = <optimized out>
#17 scan_drm_connectors (drm=<optimized out>, event=<optimized out>) at ../wlroots-0.15.1/backend/drm/drm.c:1384
        c = <optimized out>
        wlr_conn = 0x55d41ee93270
        drm_conn = 0x55d41ee48060
        conn_id = <optimized out>
        index = <optimized out>
        curr_enc = 0x55d41ee8cb90
        i = 5
        res = <optimized out>
        seen_len = <optimized out>
        seen = 0x0
        new_outputs_len = 0
        new_outputs = 0x7ffc13ee61a0
        conn = <optimized out>
        tmp_conn = <optimized out>
        index = <optimized out>
#18 0x00007fc15a6898fe in wlr_signal_emit_safe (signal=<optimized out>, data=0x7ffc13ee63d0) at ../wlroots-0.15.1/util/signal.c:29
        pos = 0x55d41e61f428
        l = 0x55d41e61f428
        cursor = {link = {prev = 0x55d41e61f428, next = 0x7ffc13ee6350}, notify = 0x7fc15a686f10 <handle_noop>}
        end = {link = {prev = 0x7ffc13ee6370, next = 0x55d41e60dc80}, notify = 0x7fc15a686f10 <handle_noop>}
#19 0x00007fc15a652b25 in handle_udev_event (fd=<optimized out>, mask=<optimized out>, data=0x55d41e607420) at ../wlroots-0.15.1/backend/session/session.c:214
        event = {type = WLR_DEVICE_HOTPLUG, {hotplug = {connector_id = 0, prop_id = 0}}}
        devnum = <optimized out>
        dev = 0x55d41e60dc60
        session = 0x55d41e607420
        udev_dev = 0x55d41f6b9a00
        sysname = 0x55d41f01d7a0 "card0"
        devnode = <optimized out>
        action = 0x7fc15ab2a6fa "change"
        seat = <optimized out>
        __PRETTY_FUNCTION__ = "handle_udev_event"
#20 0x00007fc15a6e11ca in wl_event_loop_dispatch () at /usr/lib/libwayland-server.so.0
#21 0x00007fc15a6ded37 in wl_display_run () at /usr/lib/libwayland-server.so.0
#22 0x000055d41d707a4a in server_run (server=<optimized out>) at ../sway-1.7/sway/server.c:304
        config_path = 0x0
        usage = 0x55d41d761c98 "Usage: sway [options] [command]\n\n  -h, --help", ' ' <repeats 13 times>, "Show help message and quit.\n  -c, --config <config>  Specify a config file.\n  -C, --validate         Check the validity of the config file, th"...
        c = <optimized out>
        long_options = {{name = 0x55d41d761323 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x55d41d76458f "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x55d41d761328 "validate", has_arg = 0, flag = 0x0, val = 67}, {name = 0x55d41d761331 "debug", has_arg = 0, flag = 0x0, val = 100}, {name = 0x55d41d761208 "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x55d41d75fa11 "verbose", has_arg = 0, flag = 0x0, val = 86}, {name = 0x55d41d761337 "get-socketpath", has_arg = 0, flag = 0x0, val = 112}, {name = 0x55d41d761346 "unsupported-gpu", has_arg = 0, flag = 0x0, val = 117}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        validate = 0
        debug = 0
        allow_unsupported_gpu = 0
        verbose = 0
#23 main (argc=<optimized out>, argv=<optimized out>) at ../sway-1.7/sway/main.c:431
        config_path = 0x0
        usage = 0x55d41d761c98 "Usage: sway [options] [command]\n\n  -h, --help", ' ' <repeats 13 times>, "Show help message and quit.\n  -c, --config <config>  Specify a config file.\n  -C, --validate         Check the validity of the config file, th"...
        c = <optimized out>
        long_options = {{name = 0x55d41d761323 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x55d41d76458f "config", has_arg = 1, flag = 0x0, val = 99}, {name = 0x55d41d761328 "validate", has_arg = 0, flag = 0x0, val = 67}, {name = 0x55d41d761331 "debug", has_arg = 0, flag = 0x0, val = 100}, {name = 0x55d41d761208 "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x55d41d75fa11 "verbose", has_arg = 0, flag = 0x0, val = 86}, {name = 0x55d41d761337 "get-socketpath", has_arg = 0, flag = 0x0, val = 112}, {name = 0x55d41d761346 "unsupported-gpu", has_arg = 0, flag = 0x0, val = 117}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}}
        validate = 0
        debug = 0
        allow_unsupported_gpu = 0
        verbose = 0
  • Description:
    • Disconnected an external monitor connected through a USB-C dock (DP alternate mode)
    • Sway sefaulted
@arbrauns arbrauns added the bug Not working as intended label Feb 28, 2022
@arbrauns
Copy link
Author

Ah, looks to be a duplicate of #6120.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Not working as intended
Development

No branches or pull requests

1 participant