[roll] Roll fuchsia [starnix] Fix async operation memory leak in FUSE disconnect

When a FUSE connection is disconnected (e.g., the daemon drops the
connection), Starnix wakes up any threads waiting on in-flight
operations. Previously, `disconnect()` handled this by iterating over
all pending operations and manually setting their response to
`ECONNABORTED`.

However, this approach leaked asynchronous operations (like `FUSE_INIT`)
because they are never awaited by a thread and thus never removed from
the operations map once their response is set.
This patch simplifies `disconnect()` by completely clearing the operations
map to prevent memory leaks. To ensure that synchronously waiting
threads still correctly return `ECONNABORTED` upon wake-up (rather than
returning `EINVAL` because their operation entry went missing), an
explicit `!self.is_connected()` check is added to the top of the
`execute_operation` wait loop.

Original-Bug: 435253312
Test: Manual testing
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1339405
Original-Revision: 0f9901d31c5e88d6ab3b64beef8e66c5df3e0599
GitOrigin-RevId: 7ecf6dc49032c328ab1bc0698401fdce9393b70d
Change-Id: Ib71b38f62888b7c8822594bfb3f974e67bfff0c3
1 file changed
tree: b74ad2f85343b488f6a5f0448df2c6aae1a1f772
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
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 in one of the communication channels documented at get involved.

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.