Ubuntu 16.04.6 LTS
chromium-browser 79.0.3945.79-0ubuntu0.16.04. (and some older ones)
amd64
Ive used chromium-browser since a while but in the recent months it sometimes after exiting cannot be started again, it just hangs with no window opened and no meaningful error message.
First I thought some corrupt profile was the cause as a restore of the profile from backup resolves this. But as it kept happening on a 100% stable system which runs 24/7 this is unlikely.
Debugging this was a bit delayed as the -dbg package is outdated the -dbgsym package does not work with the gdb version i have from xenial and rebuilding chromium-browser strips debug symbols even when is_debug is enabled and it takes over 12h for a build.
Either way, backtraces of the relevant threads are below.
A workaround of this issue is to install gnome-keyring, start chromium-browser, cancel the gazillion of password requests and uninstall gnome-keyring and gcr, after that chromium-browser launches normal again.
Another workaround is to use --single-process (which is a dumb idea security wise)
I do not know why its doing that, i did not investigate further, but this is not normal or acceptable behavior of a browser
even if I did something stupid which no doubt is possible.
What i expect is well the browser should not hang and not do funny things with packages it doesnt have any dependancy/recommand/suggests on. And it should not grow tentacles that grab into keyrings without explanation to the user.
info threads
Id Target Id Frame
* 1 Thread 0x7ffff7f1dac0 (LWP 23428) "chromium-browse" __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
2 Thread 0x7fffe85bd700 (LWP 23433) "sandbox_ipc_thr" 0x00007ffff144074d in poll () at ../sysdeps/unix/syscall-template.S:84
3 Thread 0x7fffe7dbc700 (LWP 23438) "chromium-browse" 0x00007ffff72d7f7b in __waitpid (pid=23435, stat_loc=0x7fffe7dbbb04, options=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
4 Thread 0x7fffe6207700 (LWP 23439) "ThreadPoolServi" 0x00007ffff144ca13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
6 Thread 0x7fffe5205700 (LWP 23441) "Chrome_IOThread" 0x00007ffff144ca13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
8 Thread 0x7fffcffff700 (LWP 23443) "inotify_reader" 0x00007ffff14425d3 in select () at ../sysdeps/unix/syscall-template.S:84
9 Thread 0x7fffcf38f700 (LWP 23444) "gmain" 0x00007ffff144074d in poll () at ../sysdeps/unix/syscall-template.S:84
10 Thread 0x7fffceb8e700 (LWP 23445) "gdbus" 0x00007ffff144074d in poll () at ../sysdeps/unix/syscall-template.S:84
11 Thread 0x7fffce38d700 (LWP 23446) "Bluez D-Bus thr" 0x00007ffff144ca13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
12 Thread 0x7fffe413d700 (LWP 23447) "CrShutdownDetec" 0x00007ffff72d751d in read () at ../sysdeps/unix/syscall-template.S:84
15 Thread 0x7fffccb8a700 (LWP 23450) "ThreadPoolForeg" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
17 Thread 0x7fffabfff700 (LWP 23451) "ThreadPoolForeg" __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
18 Thread 0x7fffaaffd700 (LWP 23453) "CompositorTileW" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
19 Thread 0x7fffaa7fc700 (LWP 23454) "ThreadPoolSingl" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
20 Thread 0x7fffa9ffb700 (LWP 23455) "VideoCaptureThr" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
21 Thread 0x7fffa8ff9700 (LWP 23457) "gpu-process_cra" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
22 Thread 0x7fffa97fa700 (LWP 23456) "CacheThread_Blo" 0x00007ffff144ca13 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
23 Thread 0x7fff87fff700 (LWP 23459) "utility_crash_u" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
24 Thread 0x7fff877fe700 (LWP 23461) "ThreadPoolSingl" pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
25 Thread 0x7fff86ffd700 (LWP 23463) "Chrome_HistoryT" pthread_cond_timedwait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:225
bt
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007ffff72d0dbd in __GI___pthread_mutex_lock (mutex=0x55555ef8b1a8 <(anonymous namespace)::g_cache+40>) at ../nptl/pthread_mutex_lock.c:80
#2 0x00005555565b734c in Lock () at ../../base/synchronization/lock_impl_posix.cc:102
#3 0x000055555a6c1135 in Acquire () at ../../base/synchronization/lock.h:31
#4 BasicAutoLock () at ../../base/synchronization/lock_impl.h:84
#5 GetPasswordV11 () at ../../components/os_crypt/os_crypt_linux.cc:97
#6 0x000055555a6c098d in GetEncryptionKey () at ../../components/os_crypt/os_crypt_linux.cc:119
#7 DecryptString () at ../../components/os_crypt/os_crypt_linux.cc:212
#8 0x000055555b0f86dc in DecryptBase64String () at ../../components/password_manager/core/browser/hash_password_manager.cc:44
#9 GetAndDecryptField () at ../../components/password_manager/core/browser/hash_password_manager.cc:85
#10 0x000055555b0f887d in ConvertToPasswordHashData () at ../../components/password_manager/core/browser/hash_password_manager.cc:124
#11 0x000055555b0fa44c in RetrieveAllPasswordHashes () at ../../components/password_manager/core/browser/hash_password_manager.cc:258
#12 0x000055555b0bd8b2 in SchedulePasswordHashUpdate () at ../../components/password_manager/core/browser/password_store.cc:521
#13 0x000055555b0bd873 in password_manager::PasswordStore::PreparePasswordHashData(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) ()
at ../../components/password_manager/core/browser/password_store.cc:435
#14 0x0000555558d25d5d in BuildServiceInstanceFor () at ../../chrome/browser/password_manager/password_store_factory.cc:165
#15 0x000055555ad8e5df in RefcountedBrowserContextKeyedServiceFactory::BuildServiceInstanceFor(void*) const ()
at ../../components/keyed_service/content/refcounted_browser_context_keyed_service_factory.cc:97
#16 0x0000555559ebae1a in GetServiceForContext () at ../../components/keyed_service/core/refcounted_keyed_service_factory.cc:76
#17 0x000055555ad8e54e in RefcountedBrowserContextKeyedServiceFactory::GetServiceForBrowserContext(content::BrowserContext*, bool) ()
at ../../components/keyed_service/content/refcounted_browser_context_keyed_service_factory.cc:58
#18 0x0000555558d25915 in GetForProfile () at ../../chrome/browser/password_manager/password_store_factory.cc:84
#19 0x0000555558f604c8 in ChromeSyncClient () at ../../chrome/browser/sync/chrome_sync_client.cc:187
#20 0x0000555558db8598 in make_unique<browser_sync::ChromeSyncClient, Profile*&> () at ../../buildtools/third_party/libc++/trunk/include/memory:3131
#21 BuildServiceInstanceFor () at ../../chrome/browser/sync/profile_sync_service_factory.cc:188
#22 0x000055555ad8e395 in BuildServiceInstanceFor () at ../../components/keyed_service/content/browser_context_keyed_service_factory.cc:98
#23 0x0000555559eba27b in GetServiceForContext () at ../../components/keyed_service/core/keyed_service_factory.cc:77
#24 0x0000555558db82fa in GetForProfile () at ../../chrome/browser/sync/profile_sync_service_factory.cc:117
#25 0x0000555558d9e364 in BuildServiceInstanceFor () at ../../chrome/browser/sharing/sharing_service_factory.cc:64
#26 0x000055555ad8e395 in BuildServiceInstanceFor () at ../../components/keyed_service/content/browser_context_keyed_service_factory.cc:98
#27 0x0000555559eba27b in GetServiceForContext () at ../../components/keyed_service/core/keyed_service_factory.cc:77
#28 0x0000555558d79145 in DoFinalInit () at ../../chrome/browser/profiles/profile_impl.cc:748
#29 0x0000555558d7aa1f in OnLocaleReady () at ../../chrome/browser/profiles/profile_impl.cc:986
#30 0x0000555558d786ce in OnPrefsLoaded () at ../../chrome/browser/profiles/profile_impl.cc:1016
#31 0x0000555558d78037 in ProfileImpl () at ../../chrome/browser/profiles/profile_impl.cc:538
#32 0x0000555558d76e3b in CreateProfile () at ../../chrome/browser/profiles/profile_impl.cc:376
#33 0x0000555558d89346 in CreateProfileHelper () at ../../chrome/browser/profiles/profile_manager.cc:1162
#34 0x0000555558d843e3 in CreateAndInitializeProfile () at ../../chrome/browser/profiles/profile_manager.cc:1397
#35 0x0000555558d83ec5 in GetProfile () at ../../chrome/browser/profiles/profile_manager.cc:504
#36 0x000055555b3c7df5 in GetStartupProfile(base::FilePath const&, base::CommandLine const&) () at ../../chrome/browser/ui/startup/startup_browser_creator.cc:1041
#37 0x0000555558ffa641 in CreatePrimaryProfile () at ../../chrome/browser/chrome_browser_main.cc:425
#38 PreMainMessageLoopRunImpl () at ../../chrome/browser/chrome_browser_main.cc:1521
#39 0x0000555558ff9d7d in PreMainMessageLoopRun () at ../../chrome/browser/chrome_browser_main.cc:1195
#40 0x000055555735ba5f in PreMainMessageLoopRun () at ../../content/browser/browser_main_loop.cc:1008
#41 0x00005555577e4253 in Run () at ../../base/callback.h:98
#42 RunAllTasksNow () at ../../content/browser/startup_task_runner.cc:41
#43 0x000055555735a9a8 in CreateStartupTasks () at ../../content/browser/browser_main_loop.cc:917
#44 0x000055555735d456 in Initialize () at ../../content/browser/browser_main_runner_impl.cc:129
#45 0x0000555557358f9b in BrowserMain () at ../../content/browser/browser_main.cc:43
#46 0x0000555558c5c338 in RunBrowserProcessMain () at ../../content/app/content_main_runner_impl.cc:546
#47 RunServiceManager () at ../../content/app/content_main_runner_impl.cc:979
#48 0x0000555558c5c036 in Run () at ../../content/app/content_main_runner_impl.cc:887
#49 0x0000555558ccb678 in Main () at ../../services/service_manager/embedder/main.cc:423
#50 0x0000555558c5a411 in content::ContentMain(content::ContentMainParams const&) () at ../../content/app/content_main.cc:19
#51 0x00005555566eaecf in ChromeMain () at ../../chrome/app/chrome_main.cc:110
#52 0x00007ffff1365830 in __libc_start_main (main=0x5555566eae40 <main>, argc=4, argv=0x7fffffffdc08, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffffffdbf8) at ../csu/libc-start.c:291
#53 0x00005555566ead39 in _start ()
thread 17
[Switching to thread 17 (Thread 0x7fffabfff700 (LWP 23451))]
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
135 in ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
(gdb) bt
#0 __lll_lock_wait () at ../sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135
#1 0x00007ffff72d0dbd in __GI___pthread_mutex_lock (mutex=0x55555ef8b1a8 <(anonymous namespace)::g_cache+40>) at ../nptl/pthread_mutex_lock.c:80
#2 0x00005555565b734c in Lock () at ../../base/synchronization/lock_impl_posix.cc:102
#3 0x000055555a6c1135 in Acquire () at ../../base/synchronization/lock.h:31
#4 BasicAutoLock () at ../../base/synchronization/lock_impl.h:84
#5 GetPasswordV11 () at ../../components/os_crypt/os_crypt_linux.cc:97
#6 0x000055555a6c098d in GetEncryptionKey () at ../../components/os_crypt/os_crypt_linux.cc:119
#7 DecryptString () at ../../components/os_crypt/os_crypt_linux.cc:212
#8 0x000055555a6c07f9 in DecryptString16 () at ../../components/os_crypt/os_crypt_linux.cc:145
#9 0x000055555b0de830 in DecryptedString () at ../../components/password_manager/core/browser/login_database_posix.cc:67
#10 0x000055555b0a201b in InitPasswordFormFromStatement () at ../../components/password_manager/core/browser/login_database.cc:1402
#11 0x000055555b0a3127 in StatementToForms () at ../../components/password_manager/core/browser/login_database.cc:1928
#12 0x000055555b0a4378 in GetAllLoginsWithBlacklistSetting () at ../../components/password_manager/core/browser/login_database.cc:1635
#13 0x000055555b0bece7 in GetAutofillableLoginsImpl () at ../../components/password_manager/core/browser/password_store.cc:893
#14 InitOnBackgroundSequence () at ../../components/password_manager/core/browser/password_store.cc:570
#15 0x000055555b0c420e in InitOnBackgroundSequence () at ../../components/password_manager/core/browser/password_store_default.cc:45
#16 0x000055555674565e in Run () at ../../base/callback.h:98
#17 ReturnAsParamAdapter<bool> () at ../../base/post_task_and_reply_with_result_internal.h:22
#18 0x00005555567456f7 in Invoke<void (*)(base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *), base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *> () at ../../base/bind_internal.h:398
#19 MakeItSo<void (*)(base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *), base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *> () at ../../base/bind_internal.h:598
#20 RunImpl<void (*)(base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *), std::__1::tuple<base::OnceCallback<bool ()>, std::__1::unique_ptr<bool, std::__1::default_delete<bool> > *>, 0, 1> () at ../../base/bind_internal.h:671
#21 RunOnce () at ../../base/bind_internal.h:640
#22 0x000055555912d033 in Run () at ../../base/callback.h:98
#23 RunTaskAndPostReply () at ../../base/threading/post_task_and_reply_impl.cc:97
#24 0x000055555912d239 in Invoke<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay), base::(anonymous namespace)::PostTaskAndReplyRelay> () at ../../base/bind_internal.h:398
#25 MakeItSo<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay), base::(anonymous namespace)::PostTaskAndReplyRelay> () at ../../base/bind_internal.h:598
#26 RunImpl<void (*)(base::(anonymous namespace)::PostTaskAndReplyRelay), std::__1::tuple<base::(anonymous namespace)::PostTaskAndReplyRelay>, 0> () at ../../base/bind_internal.h:671
#27 RunOnce () at ../../base/bind_internal.h:640
#28 0x00005555565ad660 in Run () at ../../base/callback.h:98
#29 RunTask () at ../../base/task/common/task_annotator.cc:142
#30 0x000055555917f715 in base::internal::TaskTracker::RunSkipOnShutdown(base::internal::Task*) () at ../../base/task/thread_pool/task_tracker.cc:737
#31 0x000055555917f03b in RunTask () at ../../base/task/thread_pool/task_tracker.cc:598
#32 0x000055555916814b in RunTask () at ../../base/task/thread_pool/task_tracker_posix.cc:23
#33 0x00005555565b98d7 in RunAndPopNextTask () at ../../base/task/thread_pool/task_tracker.cc:450
#34 0x00005555565ba975 in RunWorker () at ../../base/task/thread_pool/worker_thread.cc:321
#35 0x0000555559182b24 in base::internal::WorkerThread::RunPooledWorker() () at ../../base/task/thread_pool/worker_thread.cc:223
#36 0x0000555559168805 in ThreadFunc () at ../../base/threading/platform_thread_posix.cc:81
#37 0x00007ffff72ce6ba in start_thread (arg=0x7fffabfff700) at pthread_create.c:333
#38 0x00007ffff144c41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
thread 24
[Switching to thread 24 (Thread 0x7fff877fe700 (LWP 23461))]
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185 in ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
(gdb) bt
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00005555591652f2 in Wait () at ../../base/synchronization/condition_variable_posix.cc:75
#2 0x00005555565b7539 in TimedWait () at ../../base/synchronization/waitable_event_posix.cc:211
#3 0x000055555916575f in base::WaitableEvent::Wait() () at ../../base/synchronization/waitable_event_posix.cc:157
#4 0x000055555a6c181b in WaitForInitOnTaskRunner () at ../../components/os_crypt/key_storage_linux.cc:120
#5 0x000055555a6c1530 in CreateService () at ../../components/os_crypt/key_storage_linux.cc:72
#6 0x000055555a6c0d83 in CreateKeyStorage () at ../../components/os_crypt/os_crypt_linux.cc:75
#7 0x000055555a6c11cd in GetPasswordV11 () at ../../components/os_crypt/os_crypt_linux.cc:99
#8 0x000055555a6c098d in GetEncryptionKey () at ../../components/os_crypt/os_crypt_linux.cc:119
#9 DecryptString () at ../../components/os_crypt/os_crypt_linux.cc:212
#10 0x000055555a86b14d in GetAllTokens () at ../../components/signin/public/webdata/token_service_table.cc:133
#11 0x000055555a86a2b2 in GetAllTokens () at ../../components/signin/public/webdata/token_web_data.cc:55
#12 0x000055555a86a8ba in Invoke<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (TokenWebDataBackend::*)(WebDatabase*), scoped_refptr<TokenWebDataBackend> const&, WebDatabase*> () at ../../base/bind_internal.h:498
#13 MakeItSo<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (TokenWebDataBackend::* const&)(WebDatabase*), scoped_refptr<TokenWebDataBackend> const&, WebDatabase*> () at ../../base/bind_internal.h:598
#14 RunImpl<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (TokenWebDataBackend::* const&)(WebDatabase*), std::__1::tuple<scoped_refptr<TokenWebDataBackend> > const&, 0> () at ../../base/bind_internal.h:671
#15 Run () at ../../base/bind_internal.h:653
#16 0x000055555cddac54 in Run () at ../../base/callback.h:132
#17 ExecuteReadTask () at ../../components/webdata/common/web_database_backend.cc:86
#18 DBReadTaskWrapper () at ../../components/webdata/common/web_database_backend.cc:78
#19 0x000055555cddc152 in Invoke<void (WebDatabaseBackend::*)(const base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)> &, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> >), scoped_refptr<WebDatabaseBackend>, base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)>, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> > > () at ../../base/bind_internal.h:498
#20 MakeItSo<void (WebDatabaseBackend::*)(const base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)> &, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> >), scoped_refptr<WebDatabaseBackend>, base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)>, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> > > () at ../../base/bind_internal.h:598
#21 RunImpl<void (WebDatabaseBackend::*)(const base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)> &, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> >), std::__1::tuple<scoped_refptr<WebDatabaseBackend>, base::RepeatingCallback<std::__1::unique_ptr<WDTypedResult, std::__1::default_delete<WDTypedResult> > (WebDatabase *)>, std::__1::unique_ptr<WebDataRequest, std::__1::default_delete<WebDataRequest> > >, 0, 1, 2> () at ../../base/bind_internal.h:671
#22 RunOnce () at ../../base/bind_internal.h:640
#23 0x00005555565ad660 in Run () at ../../base/callback.h:98
#24 RunTask () at ../../base/task/common/task_annotator.cc:142
#25 0x000055555917f755 in base::internal::TaskTracker::RunBlockShutdown(base::internal::Task*) () at ../../base/task/thread_pool/task_tracker.cc:743
#26 0x000055555917f03b in RunTask () at ../../base/task/thread_pool/task_tracker.cc:598
#27 0x000055555916814b in RunTask () at ../../base/task/thread_pool/task_tracker_posix.cc:23
#28 0x00005555565b98d7 in RunAndPopNextTask () at ../../base/task/thread_pool/task_tracker.cc:450
#29 0x00005555565ba975 in RunWorker () at ../../base/task/thread_pool/worker_thread.cc:321
#30 0x0000555559182b54 in base::internal::WorkerThread::RunSharedWorker() () at ../../base/task/thread_pool/worker_thread.cc:235
#31 0x0000555559168805 in ThreadFunc () at ../../base/threading/platform_thread_posix.cc:81
#32 0x00007ffff72ce6ba in start_thread (arg=0x7fff877fe700) at pthread_create.c:333
#33 0x00007ffff144c41d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109
Status changed to 'Confirmed' because the bug affects multiple users.