[roll] Roll fuchsia [kernel][object] Avoid unexpected on_zero_handles

This changes zx_object_get_info(ZX_INFO_JOB_PROCESSES) to not report
processes that are in the INITIAL state with a handle count of 0. This
prevents zx_object_get_child being used on them, which can lead to a
premature invocation of on_zero_handles. This is important as processes
in the initial state perform actual work in on_zero_handles.

In particular there's a race with operations such as zx_process_create
where, prior to the user handle being created, the dispatcher is in the
job tree and can be found by zx_object_get_child. Until the user handle
is created the handle count is zero, and so the handle created by
get_child can cause the count to go from 0->1 and then 1->0 on close.
Result is the process returned by zx_process_create can be killed, due
to on_zero_handles running, before it's even returned to the user.

Original-Bug: 76417, 93331

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/643402
Original-Revision: 7347c7bb9af6d3eafee8e82cb79aa5349cda1b13
GitOrigin-RevId: 1eb16779187224ccbd52743eec3f97dd5adcb709
Change-Id: I0357082a173c17ebef201125f5ecc387b11e7aee
1 file changed
tree: d92a4c8bd314ba8146801d6b6ad1cfe282e7fbe2
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.