We use the UI thread to run HostDiscardableSharedMemoryManager::OnMemoryStateChange() but it seems that we can't call GetDefaultMemoryLimit() from the UI thread. Not sure why the constructor doesn't have the same issue (maybe constructing HostDiscardableSharedMemoryManager happens before we initialize threading-related TLS)
[27778:27778:1004/113547:FATAL:thread_restrictions.cc(38)] Check failed: false. Function marked as IO-only was called from a thread that disallows I
O! If this thread really should be allowed to make IO calls, adjust the call to base::ThreadRestrictions::SetIOAllowed() in this thread's startup.
#0 0x7fe4af36667e base::debug::StackTrace::StackTrace()
#1 0x7fe4af3888ab logging::LogMessage::~LogMessage()
#2 0x7fe4af3fcc18 base::ThreadRestrictions::AssertIOAllowed()
#3 0x7fe4af3dbc5d base::SysInfo::AmountOfFreeDiskSpace()
#4 0x7fe4accdf1fe content::(anonymous namespace)::GetDefaultMemoryLimit()
#5 0x7fe4acce08bb content::HostDiscardableSharedMemoryManager::OnMemoryStateChange()
Comment 1 by bugdroid1@chromium.org
, Oct 4 2016