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

Issue 848028 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 1
Type: Bug



Sign in to add a comment

Migrate from liblaunchpad to fdio_spawn

Project Member Reported by kmarshall@chromium.org, May 30 2018

Issue description

launchpad is being deprecated in favor of fdio_spawn (C++ lib) or fuchsia.process.Launcher (FIDL). This bug is for tracking the migration task.


From the announcement:
# Summary

Clients of liblaunchpad.so outside of Zircon should migrate to either
fdio_spawn [1] or fuchsia.process.Launcher [2].  Eventually,
liblaunchpad.so will be available only in Zircon.

# Background

Currently, programs that launch processes load a shared library,
liblaunchpad.so, into their address space.  This library parses the
ELF data in executables and directly creates the launched process.

Rather than doing this work in the calling process, we're migrating to
using a service to launch processes.  This model means we can evolve
how we launch processes without needing to change clients to use a
newer library.

# Migration

https://fuchsia.atlassian.net/browse/US-492 tracks going through the
source tree and migrating clients off liblaunchpad.so.  We'll migrate
simple clients to fdio_spawn or fdio_spawn_etc, which are a C frontend
for the underlying FIDL service.  We'll migrate clients with more
complex needs to using the underlying FIDL service directly.

Once we've migrated all the clients, we'll remove liblaunchpad.so from the SDK.


 

Comment 1 by w...@chromium.org, May 31 2018

Labels: -Pri-2 M-69 Pri-1
Owner: w...@chromium.org
Status: Started (was: Untriaged)

Comment 2 by w...@chromium.org, Jun 5 2018

Cc: abarth@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc98dbfd177787df0d527e2f131c00f82b03e238

commit dc98dbfd177787df0d527e2f131c00f82b03e238
Author: Wez <wez@chromium.org>
Date: Tue Jun 05 19:49:42 2018

[Mojo] Channel::RemoteProcessLaunched->RemoteProcessLaunchAttempted.

Replaces the Channel::RemoteProcessLaunched API, which callers had to
invoke only if they successfully launched a process with the Channel
handle, with RemoteProcessLaunchAttempted, which must always be called
regardless of whether process-launch was successful, so long as it was
attempted with base::LaunchProcess.

This is required under Fuchsia, where the remote endpoint handle is
transferred, rather than cloned, and the LaunchProcess API consumes the
handle even on failure, for consistency.

On POSIX and Windows the effect is just to close the remote endpoint
handle earlier in the case of failure to launch.

Bug:  848028 ,  754449 
Change-Id: Ia79efebdc8b629f3d579a76c941283d461980e4c
Reviewed-on: https://chromium-review.googlesource.com/1086385
Reviewed-by: Scott Violet <sky@chromium.org>
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564620}
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/chrome/browser/safe_browsing/chrome_cleaner/chrome_cleaner_runner_win.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/chrome/utility/importer/firefox_importer_unittest_utils_mac.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/content/browser/child_process_launcher_helper.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/mojo/edk/system/invitation_unittest.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/mojo/edk/test/multiprocess_test_helper.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/mojo/public/cpp/platform/platform_channel.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/mojo/public/cpp/platform/platform_channel.h
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/mojo/public/cpp/system/tests/invitation_unittest.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/services/service_manager/runner/host/service_process_launcher.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/services/service_manager/runner/host/service_process_launcher_unittest.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/services/service_manager/tests/service_manager/service_manager_unittest.cc
[modify] https://crrev.com/dc98dbfd177787df0d527e2f131c00f82b03e238/services/service_manager/tests/util.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Jun 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0629d40f3333e499a0e2aa61b71369a10a3988af

commit 0629d40f3333e499a0e2aa61b71369a10a3988af
Author: Wez <wez@chromium.org>
Date: Wed Jun 06 00:26:43 2018

Reimplement base::LaunchProcess using the fdio_spawn_etc() API.

LaunchProcess was previously implemented using "launchpad", which is
being replaced for SDK users by the fdio_spawn*() APIs.

- Migrate call-sites off the old |options.clone_flags|.
- Add the fdio_spawn*() header file to our GN package rule for "fdio".
- Add TODO to "launchpad" package definition for it to be removed once
  all dependency repos have been updated (e.g. gtest, crashpad).

Bug:  848028 
Change-Id: I2d871a0f77bd9cba0d16217371069989fdef17f3
Reviewed-on: https://chromium-review.googlesource.com/1081078
Reviewed-by: Gabriel Charette <gab@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564731}
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/base/BUILD.gn
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/base/fuchsia/scoped_zx_handle.h
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/base/process/launch.h
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/base/process/launch_fuchsia.cc
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/base/process/process_util_unittest.cc
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/content/common/sandbox_policy_fuchsia.cc
[modify] https://crrev.com/0629d40f3333e499a0e2aa61b71369a10a3988af/third_party/fuchsia-sdk/BUILD.gn

Comment 5 by w...@chromium.org, Jun 6 2018

Owner: fdegans@chromium.org
Assigning to fdegans, who is arranging the googletest and crashpad dependency rolls into Chromium, to wrap this up.
Project Member

Comment 6 by bugdroid1@chromium.org, Jun 11 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/408ec2cbbca7d90cd5016ebba53497573fb8daa3

commit 408ec2cbbca7d90cd5016ebba53497573fb8daa3
Author: Fabrice de Gans-Riberi <fdegans@chromium.org>
Date: Mon Jun 11 21:21:08 2018

Roll src/third_party/googletest/src/ 145d05750..9077ec7ef (11 commits)

https://chromium.googlesource.com/external/github.com/google/googletest.git/+log/145d05750b15..9077ec7efe5b

$ git log 145d05750..9077ec7ef --date=short --no-merges --format='%ad %ae %s'
2018-06-11 misterg Removed "Documentation.md" not adding value and not consitent with internal docs
2018-06-11 misterg Rename Samples.md to samples.md and adjust the links
2018-06-11 misterg Rename FAQ.md to faq.md and adjust the links.
2018-06-11 misterg Rename AdvancedGuide.md to advanced.md and adjust the links. Part of documentation rationalization work
2018-06-11 misterg Rename "Primer.md" to "primer.md" and adjust links. Part of the documentaion rationalzation
2018-06-07 steelskin Fuchsia: Change fdio include path.
2018-06-04 misterg Upstream, cl/199129756
2018-05-31 steelskin Clean up
2018-05-30 fdegans Remvoe launchpad dependency from Fuchsia.
2018-05-23 misterg formatting changes
2018-05-23 misterg Formatting changes

Created with:
  roll-dep src/third_party/googletest/src

Bug:  848028 ,  850757 
Change-Id: I561501321fb200d0cf140fa8cde61e1afa593121
Reviewed-on: https://chromium-review.googlesource.com/1087361
Commit-Queue: Fabrice de Gans-Riberi <fdegans@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566149}
[modify] https://crrev.com/408ec2cbbca7d90cd5016ebba53497573fb8daa3/DEPS
[modify] https://crrev.com/408ec2cbbca7d90cd5016ebba53497573fb8daa3/third_party/googletest/BUILD.gn

Cc: fdegans@chromium.org
Owner: scottmg@chromium.org
Sending back to Scott for Crashpad rolling. I believe we will still be missing a dependency in v8, which depends on a chromium roll with the latest gtest.
Project Member

Comment 8 by bugdroid1@chromium.org, Jun 12 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/crashpad/crashpad.git/+/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6

commit bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6
Author: Scott Graham <scottmg@chromium.org>
Date: Tue Jun 12 16:47:21 2018

fuchsia: Update includes for new fdio header location

Also includes a gtest roll, which includes a change in gtest to do the
same thing. This also removes the link against launchpad which is no
longer necessary, and will be removed from the SDK soon.

Bug: crashpad:196,  chromium:848028 ,  chromium:850757 
Change-Id: Ica8632a6157b585d6b44073e05bf7aa43253e305
Reviewed-on: https://chromium-review.googlesource.com/1096353
Commit-Queue: Scott Graham <scottmg@chromium.org>
Reviewed-by: Joshua Peraza <jperaza@chromium.org>

[modify] https://crrev.com/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6/DEPS
[modify] https://crrev.com/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6/client/crashpad_client_fuchsia.cc
[modify] https://crrev.com/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6/test/multiprocess_exec_fuchsia.cc
[modify] https://crrev.com/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6/third_party/gtest/BUILD.gn
[modify] https://crrev.com/bff3594594abe4fbba8a30e4ee9c2c2b69e93bb6/tools/run_with_crashpad.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Jun 13 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/dc53e17e92898a3b95f9c854f20085e313d765ac

commit dc53e17e92898a3b95f9c854f20085e313d765ac
Author: Wez <wez@chromium.org>
Date: Wed Jun 13 21:12:08 2018

[tools] Remove unused V8 dependency on Fuchsia's "launchpad" package.

R=sergiyb@chromium.org

Bug:  chromium:848028 
Change-Id: If8ce38ff0e991e171eae68e2bea708365e63a35c
Reviewed-on: https://chromium-review.googlesource.com/1099601
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#53719}
[modify] https://crrev.com/dc53e17e92898a3b95f9c854f20085e313d765ac/BUILD.gn

Project Member

Comment 10 by bugdroid1@chromium.org, Jun 14 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/808ccb5ebf826849c8e62c89c72fc08130106205

commit 808ccb5ebf826849c8e62c89c72fc08130106205
Author: Wez <wez@chromium.org>
Date: Thu Jun 14 17:43:20 2018

Remove Fuchsia SDK's 'launchpad' package definition.

The 'launchpad' package has been removed from the Fuchsia SDK, with its
functionality replaced by fdio_spawn(). The lingering definition will
e.g. block Chromium dependency rolls into V8, so we need to remove it
ASAP.

TBR: jam
Bug:  848028 
Change-Id: Iac4ed84b65e9c077c9fe97d75c636f19ff597e74
Reviewed-on: https://chromium-review.googlesource.com/1098675
Commit-Queue: Wez <wez@chromium.org>
Reviewed-by: John Abd-El-Malek <jam@chromium.org>
Reviewed-by: Wez <wez@chromium.org>
Reviewed-by: Sergey Ulanov <sergeyu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567336}
[modify] https://crrev.com/808ccb5ebf826849c8e62c89c72fc08130106205/content/common/BUILD.gn
[modify] https://crrev.com/808ccb5ebf826849c8e62c89c72fc08130106205/content/common/sandbox_policy_fuchsia.cc
[modify] https://crrev.com/808ccb5ebf826849c8e62c89c72fc08130106205/third_party/fuchsia-sdk/BUILD.gn

Comment 11 by w...@chromium.org, Jun 14 2018

Status: Fixed (was: Started)

Sign in to add a comment