GNOME Shell becomes extremely slow and consumes tons of CPU
Sometimes, when I've left my computer idling (not suspended, just with the screen blank and locked) and come back to it, it is extremely slow.
top
shows me that GNOME Shell consumes lots of CPU.
Moving the mouse freezes everything, the CPU consumption goes up to 100%, until I stop moving the mouse; a fraction of a second later the cursor jumps to its new position. (where I stopped moving)
This is on Fedora 27 with gnome-shell-3.26.2-4.fc27.x86_64. I'm using the Wayland session, with Intel graphics hardware. I have no extensions loaded.
My laptop is usually docked, with an external keyboard, mouse and monitor connected to the dock. I found that nothing changes when I remove those external devices, however when I undock the laptop then GNOME Shell goes back to being snappy again (with very low CPU consumption). @hadess suggested this might be related to changing the power source (undocking means the laptop goes from AC to battery).
Investigating with @ofourdan, I ran perf
and got the following (just the few lines, I can paste the whole thing if necessary) :
Samples: 23K of event 'cycles:ppp', Event count (approx.): 16530387457
Children Self Command Shared Object Symbol
- 88.58% 88.13% gnome-shell libglib-2.0.so.0.5400.3 [.] g_source_iter_next
- 86.71% 0
g_source_iter_next
1.85% g_source_iter_next
- 87.88% 0.00% gnome-shell [unknown] [.] 0000000000000000
- 0
87.13% g_source_iter_next
- 4.75% 4.72% gnome-shell libglib-2.0.so.0.5400.3 [.] g_main_context_prepare
g_main_context_prepare
- 4.40% 4.39% gnome-shell libglib-2.0.so.0.5400.3 [.] g_main_context_check
g_main_context_check
I also ran gcore $(pidof gnome-shell)
, which gave me a core file on which we ran a few gdb
commands. Here is the full backtrace:
(gdb) t a a bt
Thread 13 (Thread 0x7f6ebeffd700 (LWP 1570)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be978) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d78b48) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e1ff60)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e1ff60) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ebeffd700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 12 (Thread 0x7f6ebf7fe700 (LWP 1569)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d78670) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e1ff40)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e1ff40) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ebf7fe700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 11 (Thread 0x7f6ebffff700 (LWP 1568)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d78198) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e1ff20)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e1ff20) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ebffff700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 10 (Thread 0x7f6ed0857700 (LWP 1567)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
---Type <return> to continue, or q <return> to quit---
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d77cc0) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e35280)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e35280) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ed0857700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 9 (Thread 0x7f6ed1058700 (LWP 1566)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d777e8) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e35260)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e35260) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ed1058700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 8 (Thread 0x7f6ed1859700 (LWP 1565)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d77310) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e35240)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e35240) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ed1859700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 7 (Thread 0x7f6ed205a700 (LWP 1564)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
---Type <return> to continue, or q <return> to quit---
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d76e38) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e17140)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e17140) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ed205a700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 6 (Thread 0x7f6ed285b700 (LWP 1563)):
#0 0x00007f6f0766ccbb in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55e4329be97c) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1 0x00007f6f0766ccbb in __pthread_cond_wait_common (abstime=0x0, mutex=0x55e4329d6df0, cond=0x55e4329be950) at pthread_cond_wait.c:502
#2 0x00007f6f0766ccbb in __pthread_cond_wait (cond=0x55e4329be950, mutex=0x55e4329d6df0) at pthread_cond_wait.c:655
#3 0x00007f6eff8cda24 in js::ConditionVariable::wait(js::LockGuard<js::Mutex>&) (this=<optimized out>, lock=...) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:118
#4 0x00007f6eff8cdc95 in js::ConditionVariable::wait_for(js::LockGuard<js::Mutex>&, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator> const&) (this=0x55e4329be950, lock=..., a_rel_time=...)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/posix/ConditionVariable.cpp:134
#5 0x00007f6effcc6333 in js::GlobalHelperThreadState::wait(js::AutoLockHelperThreadState&, js::GlobalHelperThreadState::CondVar, mozilla::BaseTimeDuration<mozilla::TimeDurationValueCalculator>) (timeout=..., which=js::GlobalHelperThreadState::PRODUCER, locked=..., this=<optimized out>) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:786
#6 0x00007f6effcc6333 in js::HelperThread::threadLoop() (this=0x55e432d76960) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/vm/HelperThreads.cpp:1868
#7 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::callMain<0ul>(mozilla::IndexSequence<0ul>) (this=0x55e432e71930)
at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:234
#8 0x00007f6effce7952 in js::detail::ThreadTrampoline<void (&)(void*), js::HelperThread*>::Start(void*) (aPack=0x55e432e71930) at /usr/src/debug/mozjs52-52.6.0-1.fc27.x86_64/threading/Thread.h:227
#9 0x00007f6f0766661b in start_thread (arg=0x7f6ed285b700) at pthread_create.c:465
#10 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 5 (Thread 0x7f6ed305c700 (LWP 1562)):
#0 0x00007f6f073873db in __GI___poll (fds=fds@entry=0x7f6ecc007130, nfds=nfds@entry=3, timeout=timeout@entry=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f6ee06b76f1 in poll (__timeout=-1, __nfds=3, __fds=0x7f6ecc007130) at /usr/include/bits/poll2.h:46
#2 0x00007f6ee06b76f1 in poll_func (ufds=0x7f6ecc007130, nfds=3, timeout=-1, userdata=0x55e432e94360) at pulse/thread-mainloop.c:69
#3 0x00007f6ee06a90b0 in pa_mainloop_poll (m=m@entry=0x55e432ddd000) at pulse/mainloop.c:844
#4 0x00007f6ee06a9740 in pa_mainloop_iterate (m=0x55e432ddd000, block=<optimized out>, retval=0x0) at pulse/mainloop.c:926
#5 0x00007f6ee06a97d0 in pa_mainloop_run (m=0x55e432ddd000, retval=retval@entry=0x0) at pulse/mainloop.c:944
#6 0x00007f6ee06b7639 in thread (userdata=0x55e432d6af20) at pulse/thread-mainloop.c:100
#7 0x00007f6ee0456ac8 in internal_thread_func (userdata=0x55e432d7afd0) at pulsecore/thread-posix.c:81
#8 0x00007f6f0766661b in start_thread (arg=0x7f6ed305c700) at pthread_create.c:465
#9 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 4 (Thread 0x7f6ee3fff700 (LWP 1532)):
#0 0x00007f6f073873db in __GI___poll (fds=0x55e432a17660, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f6f0940de99 in g_main_context_poll (priority=<optimized out>, n_fds=1, fds=0x55e432a17660, timeout=<optimized out>, context=0x55e432a176f0) at gmain.c:4169
#2 0x00007f6f0940de99 in g_main_context_iterate (context=context@entry=0x55e432a176f0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3863
#3 0x00007f6f0940dfac in g_main_context_iteration (context=context@entry=0x55e432a176f0, may_block=may_block@entry=1) at gmain.c:3929
#4 0x00007f6ee822942d in dconf_gdbus_worker_thread (user_data=0x55e432a176f0) at dconf-gdbus-thread.c:82
#5 0x00007f6f09435486 in g_thread_proxy (data=0x55e4329e1680) at gthread.c:784
#6 0x00007f6f0766661b in start_thread (arg=0x7f6ee3fff700) at pthread_create.c:465
#7 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 3 (Thread 0x7f6ee9430700 (LWP 1499)):
#0 0x00007f6f073873db in __GI___poll (fds=0x7f6e8c0024a0, nfds=5, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f6f0940de99 in g_main_context_poll (priority=<optimized out>, n_fds=5, fds=0x7f6e8c0024a0, timeout=<optimized out>, context=0x55e4329ff0d0) at gmain.c:4169
#2 0x00007f6f0940de99 in g_main_context_iterate (context=0x55e4329ff0d0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3863
#3 0x00007f6f0940e232 in g_main_loop_run (loop=0x55e4329ff210) at gmain.c:4064
#4 0x00007f6f099f6b56 in gdbus_shared_thread_func (user_data=0x55e4329fc080) at gdbusprivate.c:275
#5 0x00007f6f09435486 in g_thread_proxy (data=0x55e4329e0ca0) at gthread.c:784
#6 0x00007f6f0766661b in start_thread (arg=0x7f6ee9430700) at pthread_create.c:465
---Type <return> to continue, or q <return> to quit---
#7 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 2 (Thread 0x7f6ef4979700 (LWP 1498)):
#0 0x00007f6f073873db in __GI___poll (fds=0x55e4329e19c0, nfds=2, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1 0x00007f6f0940de99 in g_main_context_poll (priority=<optimized out>, n_fds=2, fds=0x55e4329e19c0, timeout=<optimized out>, context=0x55e4329e0820) at gmain.c:4169
#2 0x00007f6f0940de99 in g_main_context_iterate (context=context@entry=0x55e4329e0820, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3863
#3 0x00007f6f0940dfac in g_main_context_iteration (context=0x55e4329e0820, may_block=may_block@entry=1) at gmain.c:3929
#4 0x00007f6f0940dff1 in glib_worker_main (data=<optimized out>) at gmain.c:5724
#5 0x00007f6f09435486 in g_thread_proxy (data=0x55e4329e0c00) at gthread.c:784
#6 0x00007f6f0766661b in start_thread (arg=0x7f6ef4979700) at pthread_create.c:465
#7 0x00007f6f0739398f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Thread 1 (Thread 0x7f6f0a2ddac0 (LWP 1491)):
#0 0x00007f6f0940ae6d in g_source_iter_next (iter=iter@entry=0x7ffdcd084050, source=source@entry=0x7ffdcd084048) at gmain.c:983
#1 0x00007f6f0940d7d1 in g_main_context_check (context=context@entry=0x55e4329e19e0, max_priority=300, fds=fds@entry=0x55e432de1190, n_fds=n_fds@entry=22) at gmain.c:3681
#2 0x00007f6f0940de40 in g_main_context_iterate (context=0x55e4329e19e0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3865
#3 0x00007f6f0940e232 in g_main_loop_run (loop=0x55e432cf9560) at gmain.c:4064
#4 0x00007f6f079227bc in meta_run () at core/main.c:648
#5 0x000055e43233e42c in main (argc=<optimized out>, argv=<optimized out>) at ../src/main.c:530
Interestingly, after the gcore
command finished, GNOME Shell came back super snappy and with low CPU consumption. So it seems some events can get it unstcuk somehow, like changing the power source or freezing the process while capturing a core file.
I still have the core file though, so I can run some more commands on it.
I can also reproduce the problem quite easily. It's not a 100% thing, but if I keep the laptop without rebooting long enough, leaving idle from time to time, it eventually gets into that state. (it happens several times per week, sometimes multiple times in a day)