[iosched] Fix flake bugs in test.

Fix a pair of bugs that caused high degree of test flakes.
Both bugs are in the test itself, not the code being tested.

Bug 1:

WaitAcquire() could find that in_list would be empty and return,
and then the main test thread would begin the shutdown procedure.

In some instances, the ops would have been pulled in by Acquire()
but not yet filed into their respective streams by the worker
thread. Since the stream was observed to be empty, it was closed
prematurely.

The bug in WaitAcquire() was fixed by introducing a shutdown
request and acknowledgement. The acknowledgement can only happen
when a worker enters Acquire(), meaning it is not holding on
to any unfiled ops.

Bug 2:

The above bug exposed bug 2.

The Scheduler handled this correctly, properly identifying that
there is no stream for the op and releasing it with an error.
The test fixture was not as smart, since it did not expect
to get ops that were released without going through the Issue()
path. It was therefore trying to remove the op from the wrong
list, which led to disaster.

Added lifecycle tracking to the test ops to identify what
list they live on and remove appropriately.

Also:

Added thread name to workers to make debugging easier.

Reenabled test. Can no longer repro the issue.

Bug: FLK-208
Change-Id: I5be970822a703f5a91123fc9f81d148f67f02374
3 files changed
tree: 56852e193dc8dd97aff3aa69afeb3b75047a099a
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. infra/
  9. peridot/
  10. products/
  11. scripts/
  12. sdk/
  13. src/
  14. third_party/
  15. tools/
  16. zircon/
  17. .clang-format
  18. .clang-tidy
  19. .dir-locals.el
  20. .gitattributes
  21. .gitignore
  22. .gn
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. README.md
  31. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.