New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 700094 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Closed: Mar 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

mash: Shutdown hang with "stop ui" after login

Project Member Reported by jamescook@chromium.org, Mar 9 2017

Issue description

ToT r455790

* Start device. At login screen "stop ui". Chrome shuts down quickly. /var/log/messages shows signal 15 (sigterm) sent to chrome.
* Restart UI. Log in. "stop ui" from terminal.
* Chrome seems to shut down quickly, however session_manager shows a problem:

2017-03-09T10:48:12.769592-08:00 INFO session_manager[26686]: [INFO:browser_job.cc(157)] Terminating process: 
2017-03-09T10:48:12.769612-08:00 INFO session_manager[26686]: [INFO:system_utils_impl.cc(110)] Sending 15 to 26708 as 1000
2017-03-09T10:48:15.769708-08:00 WARNING session_manager[26686]: [WARNING:browser_job.cc(165)] Aborting child process 26708's process group 3 seconds after sending signal
2017-03-09T10:48:15.769727-08:00 INFO session_manager[26686]: [INFO:browser_job.cc(149)] Terminating process group: Browser took more than 3 seconds to exit after signal.
2017-03-09T10:48:15.769737-08:00 INFO session_manager[26686]: [INFO:system_utils_impl.cc(110)] Sending 6 to -26708 as 1000
2017-03-09T10:48:15.769807-08:00 INFO session_manager[26686]: [INFO:session_manager_impl.cc(291)] emitting D-Bus signal SessionStateChanged:stopped
2017-03-09T10:48:15.770326-08:00 INFO session_manager[26686]: [INFO:session_manager_service.cc(488)] SessionManagerService quitting run loop
2017-03-09T10:48:15.770426-08:00 INFO session_manager[26686]: [INFO:session_manager_service.cc(214)] SessionManagerService exiting
2017-03-09T10:48:15.791316-08:00 WARNING crash_reporter[27542]: [user] Received crash notification for nacl_helper_nonsfi[26936] sig 6, user 1000 (developer build - not testing - always dumping)
2017-03-09T10:48:15.794663-08:00 WARNING crash_reporter[27543]: [user] Received crash notification for nacl_helper[26933] sig 6, user 1000 (developer build - not testing - always dumping)

Chrome shutdown is timing out. I suspect there is a hanging mojo service that prevents the root process from exiting cleanly.

 
Maybe the root process exiting is not sufficient for content_browser to clean up NaCl.

Ken, do you think the root process should send some other kind of signal to content_browser to tell it to terminate? Or maybe something needs to be wired into content_browser's OnStop() (???) to trigger a clean shutdown?

Status: Started (was: Assigned)
This complicates analysis of other test failures, so I'll take a look now...

No repro with ToT chrome r458750.

I wonder if I see this in tests because other processes are crashing and that causes hangs.

Status: WontFix (was: Started)
I cannot reproduce this any more.

Note that it is "normal" to see signal 9 from session_manager to chrome in autotests, because session_manager wants to kill chrome quickly and not wait for shutdown. This is not a hang:

2017-03-23T11:00:21.955803-07:00 INFO session_manager[4372]: [INFO:browser_job.cc(149)] Terminating process group: Restarting browser on-demand.
2017-03-23T11:00:21.955866-07:00 INFO session_manager[4372]: [INFO:system_utils_impl.cc(110)] Sending 9 to -4434 as 1000
2017-03-23T11:00:21.958390-07:00 INFO session_manager[4372]: [INFO:child_exit_handler.cc(77)] Handling 4434 exit.
2017-03-23T11:00:21.959511-07:00 ERR session_manager[4372]: [ERROR:child_exit_handler.cc(85)]   Exited with signal 9

See login_manager SessionManagerImpl::EnableChromeTesting and SessionManagerService::RestartBrowserWithArgs

void SessionManagerService::RestartBrowserWithArgs(
    const std::vector<std::string>& args,
    bool args_are_extra) {
  // Waiting for Chrome to shutdown takes too much time.
  // We're killing it immediately hoping that data Chrome uses before
  // logging in is not corrupted.
  // TODO(avayvod): Remove RestartJob when crosbug.com/6924 is fixed.
  browser_->KillEverything(SIGKILL, "Restarting browser on-demand.");
  if (args_are_extra)
    browser_->SetExtraArguments(args);
  else
    browser_->SetArguments(args);
  // The browser will be restarted in HandleExit().
}

Components: -Internals>MUS Internals>Services>WindowService

Sign in to add a comment