New issue
Advanced search Search tips

Issue 806349 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Jul 5
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug-Regression



Sign in to add a comment

Chrome_Mac: Crash Report - [ThreadWatcher UI hang] history::HistoryService::InMemoryDatabase

Project Member Reported by cr...@system.gserviceaccount.com, Jan 26 2018

Issue description

reporter:pbommana@google.com

Magic Signature: [ThreadWatcher UI hang] history::HistoryService::InMemoryDatabase

Crash link: https://crash.corp.google.com//browse?q=expanded_custom_data.ChromeCrashProto.ptype%3D'browser'%20AND%20expanded_custom_data.ChromeCrashProto.magic_signature_1.name%3D'%5BThreadWatcher%20UI%20hang%5D%20history%3A%3AHistoryService%3A%3AInMemoryDatabase'%20AND%20ReportID%3D'4f7a429a121e6315'&sql_dialect=googlesql&ignore_case=false&enable_rewrite=true&omit_field_name=&omit_field_value=&omit_field_opt=%3D#3

-------------------------------------------------------------------------------
Sample Report
-------------------------------------------------------------------------------
Product name: Chrome_Mac
Magic Signature : [ThreadWatcher UI hang] history::HistoryService::InMemoryDatabase
Product Version: 66.0.3332.0
Process type: browser
Report ID: 4f7a429a121e6315
Report Url: https://crash.corp.google.com/4f7a429a121e6315
Report Time: 2018-01-26T04:30:42-08:00
Upload Time: 2018-01-26T04:35:32.764-08:00
Uptime: 768000 ms
CumulativeProductUptime: 0 ms
OS Name: Mac OS X
OS Version: 10.13.1 17B1003
CPU Architecture: amd64
CPU Info: family 6 model 23 stepping 10

-------------------------------------------------------------------------------
Crashing thread: Thread index: 0. Stack Quality: 77%. Thread id: 3464.
-------------------------------------------------------------------------------
0x00000001177e5dd0 (Google Chrome Framework - history_service.cc: 233)	history::HistoryService::InMemoryDatabase()
0x0000000115b3aed1 (Google Chrome Framework - autocomplete_action_predictor_factory.cc: 47)	predictors::AutocompleteActionPredictorFactory::BuildServiceInstanceFor(content::BrowserContext*) const
0x0000000117e32a24 (Google Chrome Framework - browser_context_keyed_service_factory.cc: 98)	BrowserContextKeyedServiceFactory::BuildServiceInstanceFor(base::SupportsUserData*) const
0x00000001176151e6 (Google Chrome Framework - keyed_service_factory.cc: 89)	KeyedServiceFactory::GetServiceForContext(base::SupportsUserData*, bool)
0x000000011848597e (Google Chrome Framework - chrome_omnibox_client.cc: 381)	ChromeOmniboxClient::OnRevert()
0x000000011835f7af (Google Chrome Framework - omnibox_edit_model.cc: 396)	OmniboxEditModel::Revert()
0x0000000118368bdc (Google Chrome Framework - omnibox_view.cc: 127)	OmniboxView::RevertAll()
0x00000001186303fd (Google Chrome Framework - omnibox_view_mac.mm: 395)	OmniboxViewMac::RevertAll()
0x000000011862fc08 (Google Chrome Framework - omnibox_view_mac.mm: 243)	OmniboxViewMac::Update()
0x00000001186187fe (Google Chrome Framework - autocomplete_text_field.mm: 435)	-[AutocompleteTextField viewDidMoveToWindow]
0x00007fff2737a2dd (AppKit + 0x000242dd)	-[NSView _setWindow:]
0x00007fff27385522 (AppKit + 0x0002f522)	-[NSControl _setWindow:]
0x00007fff29d8c04e (CoreFoundation + 0x0008804e)	-[__NSArrayM enumerateObjectsWithOptions:usingBlock:]
0x00007fff27c3f0c0 (AppKit + 0x008e90c0)	__21-[NSView _setWindow:]_block_invoke.604
0x00007fff2737a22e (AppKit + 0x0002422e)	-[NSView _setWindow:]
0x00007fff27377300 (AppKit + 0x00021300)	-[NSView addSubview:]
0x00007fff273afff1 (AppKit + 0x00059ff1)	-[NSView addSubview:positioned:relativeTo:]
0x00000001185bcae0 (Google Chrome Framework - browser_window_controller_private.mm: 1076)	-[BrowserWindowController(Private) setContentViewSubviews:]
0x00000001185bc4dc (Google Chrome Framework - browser_window_controller_private.mm: 1004)	-[BrowserWindowController(Private) updateSubviewZOrderNormal]
0x00000001185b97d6 (Google Chrome Framework - browser_window_controller_private.mm: 239)	-[BrowserWindowController(Private) layoutSubviews]
0x00000001185b3356 (Google Chrome Framework - browser_window_controller.mm: 395)	-[BrowserWindowController initWithBrowser:takeOwnership:]
0x00000001185bd131 (Google Chrome Framework - browser_window_factory_cocoa.mm: 15)	BrowserWindow::CreateBrowserWindow(Browser*, bool)
0x000000011845d562 (Google Chrome Framework - browser.cc: 259)	Browser::Browser(Browser::CreateParams const&)
0x00000001184996d1 (Google Chrome Framework - startup_browser_creator_impl.cc: 418)	StartupBrowserCreatorImpl::OpenTabsInBrowser(Browser*, bool, std::__1::vector<StartupTab, std::__1::allocator<StartupTab> > const&)
0x000000011849a484 (Google Chrome Framework - startup_browser_creator_impl.cc: 754)	StartupBrowserCreatorImpl::RestoreOrCreateBrowser(std::__1::vector<StartupTab, std::__1::allocator<StartupTab> > const&, StartupBrowserCreatorImpl::BrowserOpenBehavior, unsigned int, bool, bool)
0x00000001184992fc (Google Chrome Framework - startup_browser_creator_impl.cc: 639)	StartupBrowserCreatorImpl::DetermineURLsAndLaunch(bool, std::__1::vector<GURL, std::__1::allocator<GURL> > const&)
0x0000000118498c54 (Google Chrome Framework - startup_browser_creator_impl.cc: 348)	StartupBrowserCreatorImpl::Launch(Profile*, std::__1::vector<GURL, std::__1::allocator<GURL> > const&, bool)
0x00000001184960cf (Google Chrome Framework - startup_browser_creator.cc: 351)	StartupBrowserCreator::LaunchBrowser(base::CommandLine const&, Profile*, base::FilePath const&, chrome::startup::IsProcessStartup, chrome::startup::IsFirstRun)
0x0000000118495bab (Google Chrome Framework - startup_browser_creator.cc: 720)	StartupBrowserCreator::ProcessCmdLineImpl(base::CommandLine const&, base::FilePath const&, bool, Profile*, std::__1::vector<Profile*, std::__1::allocator<Profile*> > const&)
0x0000000118495606 (Google Chrome Framework - startup_browser_creator.cc: 306)	StartupBrowserCreator::Start(base::CommandLine const&, base::FilePath const&, Profile*, std::__1::vector<Profile*, std::__1::allocator<Profile*> > const&)
0x0000000115a25343 (Google Chrome Framework - chrome_browser_main.cc: 1883)	ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
0x0000000115a2412d (Google Chrome Framework - chrome_browser_main.cc: 1258)	ChromeBrowserMainParts::PreMainMessageLoopRun()
0x0000000114799852 (Google Chrome Framework - browser_main_loop.cc: 1240)	content::BrowserMainLoop::PreMainMessageLoopRun()
0x0000000114b455f6 (Google Chrome Framework - callback.h: 94)	content::StartupTaskRunner::RunAllTasksNow()
0x0000000114797ce4 (Google Chrome Framework - browser_main_loop.cc: 1015)	content::BrowserMainLoop::CreateStartupTasks()
0x000000011479c03f (Google Chrome Framework - browser_main_runner.cc: 124)	content::BrowserMainRunnerImpl::Initialize(content::MainFunctionParams const&)
0x0000000114795e33 (Google Chrome Framework - browser_main.cc: 42)	content::BrowserMain(content::MainFunctionParams const&)
0x00000001159d8acf (Google Chrome Framework - content_main_runner.cc: 713)	content::ContentMainRunnerImpl::Run()
0x000000011734bc1a (Google Chrome Framework - main.cc: 456)	service_manager::Main(service_manager::MainParams const&)
0x00000001159d8013 (Google Chrome Framework - content_main.cc: 19)	content::ContentMain(content::ContentMainParams const&)
0x0000000113f94b69 (Google Chrome Framework - chrome_main.cc: 129)	ChromeMain
0x000000010d76fdd3 (Google Chrome Canary + 0x00000dd3)	
0x00007fff51406144 (libdyld.dylib + 0x00001144)	start
0x00007fff51406144 (libdyld.dylib + 0x00001144)	start

 
Cc: pbomm...@chromium.org wittman@chromium.org
Components: Internals
Labels: -Type-Bug -Pri-2 TE-CrashTriage M-66 FoundIn-66 Pri-3 Type-Bug-Regression
This is new crash on latest Chrome Canary on Mac i.e., 66.0.3332.0, so far we just have 1 crash. 

Please find the crash history here :  https://goto.google.com/bfuiw

cc'ing Mike in assumption that this is related to "SyntheticStackProfilingConfiguration: BrowserAndGpuProcess " experiment. 

Note : At this time I am marking the bug as P3 and no blocker labels, Any next check on the bug from test team due to spike in crashes please readjust the labels accordingly.
Cc: lgrey@chromium.org
Looking into this it seems unlikely to have been caused by the stack profiling. The profiler thread is not active during the hang, so barring some major bug the UI thread could not have been suspended by it at the time of this hang.

The code on the UI thread is just executing an accessor, so the executing code seems unlikely to be directly responsible. There is a ton of file I/O happening in the other threads, however. Possibly the system was thrashing sufficiently badly that paging in the code took long enough to trigger the thread watcher? This client has two other hangs as well, one of which also involves a bunch of file I/O.

+lgrey@ for any additional thoughts.

Comment 3 by lgrey@chromium.org, Jan 26 2018

Nothing to add here. Not seeing anything interesting (or sampler related) in the threads or crash keys beyond what wittman@ noted.
Cc: gab@chromium.org
Status: Available (was: Untriaged)
gab recently fixed a bug where we weren't reporting UI thread hangs [can't seem to find a link right now]. So this is probably an old problem that is now being reported. Seems like a standard too much disk-IO contention issue. Not sure there's anything for us to do about this.

Comment 5 by gab@chromium.org, Jan 30 2018

Labels: -Stability-Crash -Restrict-View-EditIssue Stability-Hang
Owner: fdoray@chromium.org
Status: Assigned (was: Available)
Re. #4: resurrecting hang reports was done in  issue 804345 

Unfortunately had to disable UI thread hang reports because of issue 806174 (but this report does look real and interesting..!). It almost certainly isn't new and was just brought up by fixing  issue 804345 .

@wittman: these are exactly the kind of cases I was mentioning the other day where it would be awesome to be able to say with sampling profiler that history::HistoryService::InMemoryDatabase() is much slower when contending with sessions::SessionBackend::MoveCurrentSessionToLastSession().

And it sounds like MoveCurrentSessionToLastSession() could be done as a BACKGROUND task in this case :)?!

Looks like there are some component_updater DeleteFile() calls running as well. Those appear to be scheduled as BACKGROUND [1] though -- but I think we shouldn't run BACKGROUND tasks during startup.

@fdoray who's already conveniently looking into:
 1) Spotting work that would be better off in the background
 2) Enabling UI threads hangs which may well be a good signal for this until sampling profiler gets there
 3) Aggressively removing BACKGROUND work from the startup path (and any other critical path for that matter).

[1] https://cs.chromium.org/chromium/src/components/component_updater/component_installer.cc?type=cs&q=file:component_installer.cc+base::TaskPriority::BACKGROUND


PS @QA: please mark hangs as Stability-Hang (not Stability-Crash) and do not put Restrict-View-* on them (they have no security risk nor private data).
Project Member

Comment 6 by PranavkRobot, Jul 4

Labels: crash-BugNoRepro
Crash analysis has not encountered any reports for this bug for the past 90 days. We have added the label 'crash-BugNoRepro'

Crash analysis will be automatically closing the bug in 10 days. If you do not want Crash analysis to automatically close the bug, please remove the label 'crash-BugNoRepro'. If you have any feedback on this feature, please contact pranavk@
Status: WontFix (was: Assigned)
No repro for the past 90 days. Assuming it was fixed.

Sign in to add a comment