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

Issue 809322 link

Starred by 11 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug


Sign in to add a comment

Run Service Manager as a long-running background process

Project Member Reported by roc...@chromium.org, Feb 6 2018

Issue description

In order to bring up services within a minimal runtime environment, and in order to avoid subtle lifetime dependency issues between service processes and the central Mojo broker process, the Service Manager should be a long-running standalone process which also serves as the broker.

This has immediately useful applications on both Windows (e.g. lightweight notification listener) and Chrome OS (many system services interfacing with containers/VMs), and most likely other platforms.

Brief breakdown of the work blocking (or semi-blocking) this

- moving process management code into the Service Manager (bug 689159, bug 781334)
- teasing out content dependency injection which we rely on today, i.e. most of [1] The specific motivation here is just a lightweight browser process, but it solves the same problem (bug 729596)
- supporting external binaries so e.g. system services may be controlled by SM (bug 809320)
- (Chrome OS) figuring out how to get Service Manager to be trusted enough to
  spawn system service processes

[1] https://cs.chromium.org/chromium/src/content/browser/service_manager/service_manager_context.cc
 
Blockedon: 809320 689159 729596 781334

Comment 2 by r...@chromium.org, Feb 6 2018

Cc: r...@chromium.org
While interesting, I believe process overhead isn't entirely free on Android. My naive assumption was that the ServiceManager would live inside the browser process and that was a long-term plan. Are we just expecting Android to be different from other os flavours long-term? 
On Android there is no plan to have a separate process for SM.

You can think of it either as SM running in the browser process, or the
browser running in the SM process. All the same to me :)
Handle crash reporting for the service manager:
* Refactor Breakpad init out of //content, or
* Wait for Crashpad on all platforms (and refactor its init), or
* For Chrome OS only, rely on the OS-level crash_reporter used by system daemons

I've done the last one for mustash and can provide advice if that's helpful.

Cc: claudiomagni@chromium.org
Cc: amoylan@chromium.org
Cc: rcui@chromium.org steve...@chromium.org
Labels: ServiceManagerImprovification
Owner: rockot@google.com
Blockedon: 900280

Sign in to add a comment