GNOME Shell freezes after unpluging the laptop from its dock
Affected version
- OS: Ubuntu 22.10
- GNOME Shell version: 43
- The problem occurs in both X11 and Wayland sessions
Bug summary
When I unplug my laptop (ThinkPad X1 Yoga gen 7) from its Thunderbolt 3 dock, GNOME Shell freezes.
Steps to reproduce
- Start the laptop, plugged on its Thunderbolt 3 dock, with two external monitors attached
- Log in the GNOME session
- Unplug the dock
- Open the top-right menu (it seems to appear only after opening this menu)
What happened
On Wayland:
GNOME Shell is completely frozen, the mouse cannot be moved, ctrl+alt+F* keys do not seems to work. Only sysrescue keys are working. BUT the music is still played in the background and it is possible to control it (play/pause/next) using a bluetooth headset or a phone plugged with gsconnect.
On X11:
The same, except the mouse cursor can be moved.
Workaround:
I found a workaround:
- First start the PC and log in the GNOME session on battery (not plugged on the dock),
- and plug the laptop to the dock.
Then the dock can be unplugged / plugged without issue.
What did you expect to happen
not freezing :)
Relevant logs, screenshots, screencasts etc.
Here is what I was able to find in the syslog:
Oct 21 18:11:18 oban gnome-shell[2998]: value "inf" of type 'gfloat' is invalid or out of range for property 'translation-y' of type 'gfloat'
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_display_get_monitor_geometry: assertion 'monitor >= 0 && monitor < n_logical_monitors' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Oct 21 18:11:18 oban gnome-shell[2998]: JS ERROR: TypeError: monitor is undefined#012_updateRoundedClipBounds@resource:///org/gnome/shell/ui/workspace.js:1009:9#012_init/<@resource:///org/gnome/shell/ui/workspace.js:986:18
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_display_get_monitor_geometry: assertion 'monitor >= 0 && monitor < n_logical_monitors' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Oct 21 18:11:18 oban gnome-shell[2998]: JS ERROR: TypeError: monitor is undefined#012_updateRoundedClipBounds@resource:///org/gnome/shell/ui/workspace.js:1009:9#012_init/<@resource:///org/gnome/shell/ui/workspace.js:986:18
Oct 21 18:11:18 oban gnome-shell[2998]: meta_monitor_manager_get_logical_monitor_from_number: assertion '(unsigned int) number < g_list_length (manager->logical_monitors)' failed
Oct 21 18:11:18 oban gnome-shell[2998]: meta_workspace_get_work_area_for_monitor: assertion 'logical_monitor != NULL' failed
Edited by Fabien LOISON