linuxmint / linuxmint/cinnamon

Cinamon lockscreen crash to blackscreen and recovery from it

Open
#12,801 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

BUG
Dominant language
JavaScript
Stars
5.6k
Forks
915
Avg merge
5d 22h
Merged PRs (30d)
3

Description

Distribution

Mint 21.3

Package version

6.0.4

Graphics hardware in use

NVIDIA GeForce GTX 1060 6GB

Frequency

Only occasionally

Bug description

I had my computer running in lockscreen with screen turned off. After i came back some hours later, i only saw a black screen, but the mouse cursor was working.

I switched to a different terminal using Ctrl+Alt+F2
There i investigated the journal and found that a process did crash.
I didnt know what the process did, so i just copied its commandline from coredumpctl and run it again with the environment DISPLAY=:0:

DISPLAY=:0 /usr/lib/x86_64-linux-gnu/cinnamon-screensaver/cs-backup-locker --xid 94371854 --term 1 --session 7
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  21 (X_ListProperties)
  Resource id in failed request:  0x5a0000e
  Serial number of failed request:  12
  Current serial number in output stream:  12

** (cs-backup-locker:122248): CRITICAL **: 17:58:13.266: cs_event_grabber_get_keyboard: assertion 'window != NULL' failed

** (cs-backup-locker:122248): CRITICAL **: 17:58:13.266: cs_event_grabber_get_mouse: assertion 'window != NULL' failed

(i only saw that it crashed again after i returned to that screen later to document my steps for this bug report)

I returend to the default screen on 7 and now my lock screen was back. I logged in. Cinnamon was in the "fallback mode" i pressed the button to repair that and now everything seems to be fine.

Steps to reproduce

It only happend once so far. I often leave my computer in lockscreen with turned off screen. It never happend so far.

  1. Leave the computer running in lockscreen and screen turned off for a few hours?
  2. luck?
Expected behavior

Its okay, if the lockscreen takes a moment or two after i turn the screen on to show up. But after a few seconds it should be there and i should be able to unlock my computer.

Additional information

I had a virtualBox VM running.

I was able to capture the coredump. An overview here, if requested i would be able to probe specifics, but i dont like to share a coredump publicly.

           PID: 79872 (cs-backup-locke)
           UID: 1000 ([redacted])
           GID: 1000 ([redacted])
        Signal: 11 (SEGV)
     Timestamp: Fri 2025-03-21 17:50:18 CET (21min ago)
  Command Line: /usr/lib/x86_64-linux-gnu/cinnamon-screensaver/cs-backup-locker --xid 94371854 --term 1 --session 7
    Executable: /usr/lib/x86_64-linux-gnu/cinnamon-screensaver/cs-backup-locker
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/dbus.service
          Unit: user@1000.service
     User Unit: dbus.service
         Slice: user-1000.slice
     Owner UID: 1000 ([redacted])
       Boot ID: 6e428318ed9648479b9a87084379a648
    Machine ID: aaa642a1efb049fba8d6ca0c8d22ff0a
      Hostname: [redacted]
       Storage: /var/lib/systemd/coredump/core.cs-backup-locke.1000.6e428318ed9648479b9a87084379a648.79872.1742575818000000.zst (present)
     Disk Size: 1.0M
       Message: Process 79872 (cs-backup-locke) of user 1000 dumped core.

[...]

                Found module cs-backup-locker with build-id: e2bfd517fa1927e0f4b989f0e1ed9e128affaa9b
                Stack trace of thread 79872:
                #0  0x00007f700d55e226 n/a (libgdk-3.so.0 + 0x65226)
                #1  0x00007f700d566191 n/a (libgdk-3.so.0 + 0x6d191)
                #2  0x00007f700d569d89 n/a (libgdk-3.so.0 + 0x70d89)
                #3  0x00007f700d52fa99 gdk_display_get_event (libgdk-3.so.0 + 0x36a99)
                #4  0x00007f700d569f46 n/a (libgdk-3.so.0 + 0x70f46)
                #5  0x00007f700d173d3b g_main_context_dispatch (libglib-2.0.so.0 + 0x55d3b)
                #6  0x00007f700d1c92b8 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xab2b8)
                #7  0x00007f700d1732b3 g_main_loop_run (libglib-2.0.so.0 + 0x552b3)
                #8  0x00007f700d848d2d gtk_main (libgtk-3.so.0 + 0x248d2d)
                #9  0x000055c1501282c8 n/a (cs-backup-locker + 0x42c8)
                #10 0x00007f700ce29d90 __libc_start_call_main (libc.so.6 + 0x29d90)
                #11 0x00007f700ce29e40 __libc_start_main_impl (libc.so.6 + 0x29e40)
                #12 0x000055c1501283e5 n/a (cs-backup-locker + 0x43e5)
                
                Stack trace of thread 79875:
                #0  0x00007f700cf18bcf __GI___poll (libc.so.6 + 0x118bcf)
                #1  0x00007f700d1c9256 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xab256)
                #2  0x00007f700d1713e3 g_main_context_iteration (libglib-2.0.so.0 + 0x533e3)
                #3  0x00007f700d171431 glib_worker_main (libglib-2.0.so.0 + 0x53431)
                #4  0x00007f700d1a2ab1 g_thread_proxy (libglib-2.0.so.0 + 0x84ab1)
                #5  0x00007f700ce94ac3 start_thread (libc.so.6 + 0x94ac3)
                #6  0x00007f700cf26850 __clone3 (libc.so.6 + 0x126850)
                
                Stack trace of thread 121276:
                #0  0x00007f700cf18bcf __GI___poll (libc.so.6 + 0x118bcf)
                #1  0x00007f700d1c9256 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xab256)
                #2  0x00007f700d1713e3 g_main_context_iteration (libglib-2.0.so.0 + 0x533e3)
                #3  0x00007f700d36b24d g_subprocess_wait (libgio-2.0.so.0 + 0xb324d)
                #4  0x000055c1501293d1 n/a (cs-backup-locker + 0x53d1)
                #5  0x00007f700d36a194 g_task_thread_pool_thread (libgio-2.0.so.0 + 0xb2194)
                #6  0x00007f700d1a5714 g_thread_pool_thread_proxy (libglib-2.0.so.0 + 0x87714)
                #7  0x00007f700d1a2ab1 g_thread_proxy (libglib-2.0.so.0 + 0x84ab1)
                #8  0x00007f700ce94ac3 start_thread (libc.so.6 + 0x94ac3)
                #9  0x00007f700cf26850 __clone3 (libc.so.6 + 0x126850)
                
                Stack trace of thread 79876:
                #0  0x00007f700cf18bcf __GI___poll (libc.so.6 + 0x118bcf)
                #1  0x00007f700d1c9256 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xab256)
                #2  0x00007f700d1732b3 g_main_loop_run (libglib-2.0.so.0 + 0x552b3)
                #3  0x00007f700d3cd81a gdbus_shared_thread_func (libgio-2.0.so.0 + 0x11581a)
                #4  0x00007f700d1a2ab1 g_thread_proxy (libglib-2.0.so.0 + 0x84ab1)
                #5  0x00007f700ce94ac3 start_thread (libc.so.6 + 0x94ac3)
                #6  0x00007f700cf26850 __clone3 (libc.so.6 + 0x126850)
                
                Stack trace of thread 79886:
                #0  0x00007f700cf18bcf __GI___poll (libc.so.6 + 0x118bcf)
                #1  0x00007f700d1c9256 g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xab256)
                #2  0x00007f700d1713e3 g_main_context_iteration (libglib-2.0.so.0 + 0x533e3)
                #3  0x00007f700d36b24d g_subprocess_wait (libgio-2.0.so.0 + 0xb324d)
                #4  0x000055c1501293d1 n/a (cs-backup-locker + 0x53d1)
                #5  0x00007f700d36a194 g_task_thread_pool_thread (libgio-2.0.so.0 + 0xb2194)
                #6  0x00007f700d1a5714 g_thread_pool_thread_proxy (libglib-2.0.so.0 + 0x87714)
                #7  0x00007f700d1a2ab1 g_thread_proxy (libglib-2.0.so.0 + 0x84ab1)
                #8  0x00007f700ce94ac3 start_thread (libc.so.6 + 0x94ac3)
                #9  0x00007f700cf26850 __clone3 (libc.so.6 + 0x126850)

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the cs-backup-locker executable and the journal/coredumpctl evidence supplied in the report, then investigate the BadWindow and failed event-grabber assertions. Done means the locker no longer crashes after the display has been off for hours and the user can return to and unlock the normal lock screen.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux
Domain
desktop, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.