This repository was archived by the owner on Apr 12, 2024. It is now read-only.
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
Function marked as IO-only was called from a thread that disallows IO #263
Open
Description
I built electron against a debug build of chromium, and running electron with no arguments yields the following assertion failure:
#0 0x7fc100175dee base::debug::StackTrace::StackTrace()
#1 0x7fc1001d642f logging::LogMessage::~LogMessage()
#2 0x7fc10032638f base::ThreadRestrictions::AssertIOAllowed()
#3 0x7fc1001b8761 base::PathExists()
#4 0x7fc0f7d4dbf8 ui::ResourceBundle::GetLocaleFilePath()
#5 0x7fc0f7d4da59 ui::ResourceBundle::LocaleDataPakExists()
#6 0x7fc0f7d22a5e <unknown>
#7 0x7fc0f7d222bc l10n_util::CheckAndResolveLocale()
#8 0x7fc0f7d22db2 <unknown>
#9 0x7fc0f7d22f0b l10n_util::GetApplicationLocale()
#10 0x7fc0f7d22f71 l10n_util::GetApplicationLocale()
#11 0x000000fc6f1d brightray::URLRequestContextGetter::GetURLRequestContext()
#12 0x7fc0f1492b1c content::ChromeAppCacheService::InitializeOnIOThread()
#13 0x7fc0f201aabb <unknown>
#14 0x7fc0f201a926 <unknown>
#15 0x7fc0f201a88b <unknown>
#16 0x7fc0f201a32c <unknown>
#17 0x7fc10015ce1e <unknown>
#18 0x7fc10017b57e base::debug::TaskAnnotator::RunTask()
#19 0x7fc1001f35dc base::MessageLoop::RunTask()
#20 0x7fc1001f3878 base::MessageLoop::DeferOrRunPendingTask()
#21 0x7fc1001f3ad2 base::MessageLoop::DoWork()
#22 0x7fc10013fbae base::MessagePumpLibevent::Run()
#23 0x7fc1001f2fcf base::MessageLoop::RunHandler()
#24 0x7fc100283024 base::RunLoop::Run()
#25 0x7fc10031c445 base::Thread::Run()
#26 0x7fc0f155f526 content::BrowserThreadImpl::IOThreadRun()
#27 0x7fc0f155f8ce content::BrowserThreadImpl::Run()
#28 0x7fc10031c78d base::Thread::ThreadMain()
#29 0x7fc1003077ea <unknown>
#30 0x7fc0f070d70a start_thread
#31 0x7fc0ea49782d clone
Yes, this is the "IO" thread, but it's not supposed to do any actual I/O. See BrowserProcessSubThread::Init.
Chrome/Chromium gets the locale from disk only once during startup, and doesn't call l10n_util::GetApplicationLocale after that point.