Skip to content

tokio 1.39/mio 1.0 appears to be dropping waker notifications on illumos #169

@sunshowers

Description

@sunshowers

(filing this here for now just to put down notes)

Tokio 1.39.2's test suite consistently hangs on illumos while 1.38.0 doesn't. Via a git bisect we traced it down to this being an issue in mio 1.0, with (in the mio repo) cargo nextest run --all-features --test waker waker_multiple_wakeups_different_thread:

        FAIL [   0.111s] mio::waker waker_multiple_wakeups_different_thread

--- STDOUT:              mio::waker waker_multiple_wakeups_different_thread ---

running 1 test
test waker_multiple_wakeups_different_thread ... FAILED

failures:

failures:
    waker_multiple_wakeups_different_thread

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 6 filtered out; finished in 0.10s


--- STDERR:              mio::waker waker_multiple_wakeups_different_thread ---
thread 'waker_multiple_wakeups_different_thread' panicked at tests/waker.rs:157:5:
assertion failed: !events.is_empty()
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Via another bisect we found that this pair of commits is to blame, and the pair looks relevant:

The second commit is a child of the first, and the first commit doesn't build on illumos, so consider the pair of commits as a unit.

Combined diff of the two commits in case it's helpful: https://gist.github.com/sunshowers/c573ae448d2c1eb028216c3f3d644719

cc @jclulow who first noticed the issue

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions