Crash when dragging window from secondary screen to primary screen while creating new workspace
Affected version
- Fedora Silverblue Rawhide
- Version: Rawhide.20210313.n.0 (2021-03-13T06:06:15Z)
- BaseCommit: 69eb178bec52fe0c6a568518aa28d99c269c2435109a19bf569d20a7453e9f89
GNOME Shell 40 Beta - gnome-shell-40.0~beta-4.20210304git7a57528bd.fc35.x86_64
- Wayland
Bug summary
After disconnecting and reconnecting my laptop to a docking station all windows moved to the laptop screen. When moving one of them to the connected monitor Shell froze (with audio running for a little while longer) and in a few seconds crashed (got black screen).
Steps to reproduce
This is not the first time of this happening but I don't have a solid reproducer. Seems to be connected to the fact I use a docking station.
Update: I managed to reproduce this when dragging a window (gitg) from a secondary screen (laptop screen) to a primary screen (monitor) while creating a new workspace by placing the dragged thumbnail into a space between two workspace thumbnails.
What happened
Shell crashed.
What did you expect to happen
To move a window without Shell crashing.
Relevant logs, screenshots, screencasts etc.
Logs from journalctl:
Mar 16 11:12:29 harry-work gnome-shell[1898]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Mar 16 11:12:30 harry-work gnome-shell[1898]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Mar 16 11:12:30 harry-work gnome-shell[1898]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Mar 16 11:12:30 harry-work gnome-shell[1898]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Mar 16 11:14:46 harry-work gnome-shell[1898]: Object .Gjs_ui_windowPreview_WindowPreview (0x55b7d53acbd0), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Mar 16 11:14:46 harry-work gnome-shell[1898]: == Stack trace for context 0x55b7d3cc0180 ==
Mar 16 11:14:46 harry-work gnome-shell[1898]: #0 7fff3616b360 b resource:///org/gnome/shell/ui/windowPreview.js:847 (151efda74c40 @ 196)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #1 7fff3616b9d0 b resource:///org/gnome/shell/ui/windowPreview.js:552 (151efda78510 @ 63)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #2 55b7d522f9c0 i resource:///org/gnome/shell/ui/windowPreview.js:853 (151efda74bf0 @ 29)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #3 7fff3616c640 b self-hosted:850 (7ae1d320a10 @ 454)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #4 7fff3616c740 b resource:///org/gnome/gjs/modules/core/_signals.js:114 (3f92124b02e0 @ 439)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #5 7fff3616cf20 b resource:///org/gnome/shell/ui/dnd.js:331 (142708e19150 @ 344)
Mar 16 11:14:46 harry-work gnome-shell[1898]: #6 55b7d522f8f8 i resource:///org/gnome/shell/ui/windowPreview.js:828 (151efda74c90 @ 409)
Mar 16 11:14:48 harry-work gnome-shell[1898]: Object .Gjs_ui_windowPreview_WindowPreview (0x55b7d582beb0), has been already deallocated — impossible to access it. This might be caused by the object having been destroyed from C code using something such as destroy(), dispose(), or remove() vfuncs.
Mar 16 11:14:48 harry-work gnome-shell[1898]: == Stack trace for context 0x55b7d3cc0180 ==
Mar 16 11:14:48 harry-work gnome-shell[1898]: #0 7fff3616c500 b resource:///org/gnome/shell/ui/windowPreview.js:847 (151efda74c40 @ 196)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #1 7fff3616c5b0 b resource:///org/gnome/shell/ui/windowPreview.js:552 (151efda78510 @ 63)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #2 55b7d522f8f8 i resource:///org/gnome/shell/ui/windowPreview.js:853 (151efda74bf0 @ 29)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #3 7fff3616d220 b self-hosted:850 (7ae1d320a10 @ 454)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #4 7fff3616d320 b resource:///org/gnome/gjs/modules/core/_signals.js:114 (3f92124b02e0 @ 439)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #5 7fff3616d410 b resource:///org/gnome/shell/ui/dnd.js:331 (142708e19150 @ 344)
Mar 16 11:14:48 harry-work gnome-shell[1898]: #6 7fff3616d510 b resource:///org/gnome/shell/ui/windowPreview.js:828 (151efda74c90 @ 409)
Mar 16 11:14:56 harry-work gnome-shell[1898]: Bug in window manager: Workspace does not exist to index!
Mar 16 11:14:56 harry-work audit[1898]: ANOM_ABEND auid=1000 uid=1000 gid=1000 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 pid=1898 comm="gnome-shell" exe="/usr/bin/gnome-shell" sig=6 res=1
Mar 16 11:14:56 harry-work gnome-shell[1898]: == Stack trace for context 0x55b7d3cc0180 ==
Mar 16 11:14:56 harry-work gnome-shell[1898]: #0 55b7d5a68140 i resource:///org/gnome/shell/ui/workspaceThumbnail.js:585 (151efda6f970 @ 240)
Mar 16 11:14:56 harry-work gnome-shell[1898]: #1 55b7d5a68068 i resource:///org/gnome/shell/ui/workspaceThumbnail.js:933 (151efda57e20 @ 63)
Mar 16 11:14:56 harry-work gnome-shell[1898]: #2 7fff3616d610 b resource:///org/gnome/shell/ui/dnd.js:612 (142708e0ed80 @ 1121)
Mar 16 11:14:56 harry-work gnome-shell[1898]: #3 7fff3616d6e0 b resource:///org/gnome/shell/ui/dnd.js:246 (142708e191f0 @ 220)
Mar 16 11:14:56 harry-work gnome-shell[1898]: #4 7fff3616d7a0 b resource:///org/gnome/shell/ui/dnd.js:53 (142708e196a0 @ 18)
gnome-shell-backtrace-full.txt
To get the trace I used a container due to the nature of Silverblue. This approach is still quite new for me and it generates a lot of noise in gdb, so if you notice anything major missing, I can try to get the trace again.