NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
17.31k stars 13.54k forks source link

switchboard-plug-display: crashes when mirroring display #57775

Closed worldofpeace closed 1 year ago

worldofpeace commented 5 years ago

switchboard-plug-display crashes when mirroring display

Screenshot from 2019-03-16 22 16 21

At at certain point enabling Mirror Display with another monitor will result in a crash.

**
ERROR:linkedlist.c:1024:gee_linked_list_real_get: assertion failed: (index < this._size)
Aborted (core dumped)
backtrace

```asm #0 0x00007fb0c4e50be0 in raise () from /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libc.so.6 #1 0x00007fb0c4e51dc1 in abort () from /nix/store/681354n3k44r8z90m35hm8945vsp95h1-glibc-2.27/lib/libc.so.6 #2 0x00007fb0c5be90b5 in g_assertion_message () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libglib-2.0.so.0 #3 0x00007fb0c5be911a in g_assertion_message_expr () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libglib-2.0.so.0 #4 0x00007fb0c58ae271 in gee_linked_list_real_get () from /nix/store/nsiim93fzsf55pwy78xmcsppi2aq5waa-libgee-0.20.1/lib/libgee-0.8.so.2 #5 0x00007fb0b80a9398 in display_virtual_monitor_get_monitor (self=self@entry=0x241fba0) at /build/source/src/Objects/VirtualMonitor.vala:69 #6 0x00007fb0b80a9408 in display_virtual_monitor_get_display_name (self=self@entry=0x241fba0) at /build/source/src/Objects/VirtualMonitor.vala:86 #7 0x00007fb0b80b166f in display_display_window_construct (object_type=, virtual_monitor=virtual_monitor@entry=0x241fba0) at /build/source/src/Widgets/DisplayWindow.vala:24 #8 0x00007fb0b80b17a5 in display_display_window_new (virtual_monitor=0x241fba0) at /build/source/src/Widgets/DisplayWindow.vala:23 #9 0x00007fb0b80b341c in display_display_widget_construct (object_type=, virtual_monitor=virtual_monitor@entry=0x241fba0) at /build/source/src/Widgets/DisplayWidget.vala:77 #10 0x00007fb0b80b4b47 in display_display_widget_new (virtual_monitor=virtual_monitor@entry=0x241fba0) at /build/source/src/Widgets/DisplayWidget.vala:75 #11 0x00007fb0b80b7362 in display_displays_overlay_add_output (self=self@entry=0x2363400, virtual_monitor=virtual_monitor@entry=0x241fba0) at /build/source/src/Widgets/DisplaysOverlay.vala:166 #12 0x00007fb0b80b7bf3 in display_displays_overlay_rescan_displays (self=0x2363400) at /build/source/src/Widgets/DisplaysOverlay.vala:92 #13 0x00007fb0b80b7d19 in __lambda5_ (self=) at /build/source/src/Widgets/DisplaysOverlay.vala:56 #14 0x00007fb0b80b7d2a in ___lambda5__g_object_notify (_sender=, pspec=, self=) at /build/source/src/Widgets/DisplaysOverlay.vala:56 #15 0x00007fb0c594192d in g_closure_invoke () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #16 0x00007fb0c5954dce in signal_emit_unlocked_R () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #17 0x00007fb0c595ee6e in g_signal_emit_valist () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #18 0x00007fb0c595f89f in g_signal_emit () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #19 0x00007fb0c5945fa4 in g_object_dispatch_properties_changed () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #20 0x00007fb0c5948bd5 in g_object_notify () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #21 0x00007fb0b80ab0da in display_monitor_manager_add_virtual_monitor (self=self@entry=0x21cd8d0, virtual_monitor=virtual_monitor@entry=0x241fba0) at /build/source/src/Objects/MonitorManager.vala:337 #22 0x00007fb0b80ada7c in display_monitor_manager_get_monitor_config (self=0x21cd8d0) at /build/source/src/Objects/MonitorManager.vala:183 #23 0x00007fb0b80ae181 in _display_monitor_manager_get_monitor_config_mutter_display_config_interface_monitors_changed (_sender=, self=) at /build/source/src/Objects/MonitorManager.vala:69 #24 0x00007fb0c594192d in g_closure_invoke () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #25 0x00007fb0c5954dce in signal_emit_unlocked_R () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #26 0x00007fb0c595ee6e in g_signal_emit_valist () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #27 0x00007fb0c595fd78 in g_signal_emit_by_name () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #28 0x00007fb0b80a455b in _dbus_handle_mutter_display_config_interface_monitors_changed (self=0x22fdd50, parameters=) at MutterDisplayConfig.c:778 #29 0x00007fb0b80a45ad in mutter_display_config_interface_proxy_g_signal (proxy=, sender_name=, signal_name=, parameters=) at MutterDisplayConfig.c:789 #30 0x00007fb0c4cd505e in ffi_call_unix64 () from /nix/store/kbbiky87bsdndh63m7919sxkf3gsh5zq-libffi-3.2.1/lib/../lib64/libffi.so.6 #31 0x00007fb0c4cd4023 in ffi_call () from /nix/store/kbbiky87bsdndh63m7919sxkf3gsh5zq-libffi-3.2.1/lib/../lib64/libffi.so.6 #32 0x00007fb0c594227e in g_cclosure_marshal_generic () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #33 0x00007fb0c594192d in g_closure_invoke () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #34 0x00007fb0c5954b60 in signal_emit_unlocked_R () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #35 0x00007fb0c595ee6e in g_signal_emit_valist () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #36 0x00007fb0c595f89f in g_signal_emit () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #37 0x00007fb0c5a9cbfc in on_signal_received () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgio-2.0.so.0 #38 0x00007fb0c5a88e64 in emit_signal_instance_in_idle_cb () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgio-2.0.so.0 #39 0x00007fb0c5bb6f65 in g_main_context_dispatch () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libglib-2.0.so.0 #40 0x00007fb0c5bb73d0 in g_main_context_iterate.isra () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libglib-2.0.so.0 #41 0x00007fb0c5bb78e2 in g_main_loop_run () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libglib-2.0.so.0 #42 0x00007fb0c53b10d5 in gtk_main () from /nix/store/dgxmi7sx70a42k6kw7rzijmgx5m3mfqw-gtk+3-3.24.5/lib/libgtk-3.so.0 #43 0x000000000040b19d in switchboard_switchboard_app_real_activate (base=0x20fe1f0) at /build/source/src/Application.vala:155 #44 0x00007fb0c594192d in g_closure_invoke () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #45 0x00007fb0c5954b60 in signal_emit_unlocked_R () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #46 0x00007fb0c595ee6e in g_signal_emit_valist () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #47 0x00007fb0c595f89f in g_signal_emit () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgobject-2.0.so.0 #48 0x00007fb0c5a614c5 in g_application_real_local_command_line () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgio-2.0.so.0 #49 0x00007fb0c5a616d6 in g_application_run () from /nix/store/5fcij33f8q8yk127kvl45ydi9z7gmggj-glib-2.58.2/lib/libgio-2.0.so.0 #50 0x000000000040b2ce in switchboard_main (args=, args_length1=) at /build/source/src/Application.vala:29 #51 0x000000000040b2f6 in main (argc=, argv=) at /build/source/src/Application.vala:23 ```

test expression

```nix with import {}; let switchboard = enableDebugging (pantheon.switchboard.overrideAttrs(old: rec { mesonBuildType = "debug"; })); switchboard-plug-display = enableDebugging (pantheon.switchboard-plug-display.overrideAttrs(old: rec { mesonBuildType = "debug"; })); switchboard-wrapped = pantheon.switchboard-with-plugs.overrideAttrs (old: rec { paths = [ switchboard switchboard-plug-display ]; }); in switchboard-wrapped ```


Steps to reproduce

  1. Build and execute the test expression
  2. Connect another monitor through some means
  3. Switch on Mirror Display The display will be mirrored momentarily.
  4. Crash :boom: :car:

It's possible that this can be observed in different steps.

Technical details

Link to Source Code

davidak commented 5 years ago

I have no issue with mirroring, but switchboard crashes, when it is opened (even in the overview) when i connect an external display to my notebook.

**
ERROR:linkedlist.c:1024:gee_linked_list_real_get: assertion failed: (index < this._size)
Aborted

Since it's the same error, it's probably also the same problem.

Hardware is a Lenovo ThinkPad X230 with intel integrated GPU.


worldofpeace commented 5 years ago

I have no issue with mirroring, but switchboard crashes, when it is opened (even in the overview) when i connect an external display to my notebook.

I've seen this recently so it's probably not related to mirroring display.

stale[bot] commented 4 years ago

Thank you for your contributions.

This has been automatically marked as stale because it has had no activity for 180 days.

If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.

Here are suggestions that might help resolve this more quickly:

  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
  2. Ask on the NixOS Discourse.
  3. Ask on the #nixos channel on irc.freenode.net.
Artturin commented 1 year ago

Probably fixed?

davidak commented 1 year ago

Yes. It does not crash. (It's still not working great https://github.com/elementary/switchboard-plug-display/issues/273)