Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add a basic illumos test job #6769

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft

add a basic illumos test job #6769

wants to merge 7 commits into from

Commits on Aug 12, 2024

  1. ci: add a basic illumos test job

    This commit adds a simple test job for illumos using Buildomat. I'd like
    to make some more improvements and add docs before merging this, but I
    want to see if it even works first.
    hawkw committed Aug 12, 2024
    Configuration menu
    Copy the full SHA
    b8552c6 View commit details
    Browse the repository at this point in the history
  2. change anon_pipe_spawn_echo to use printf(1)

    The illumos version of `echo(1)` doesn't support `-n`, so it interprets
    it literally as part of the string to echo, making the test fail. I've
    changed it to use `printf(1)` with no flags args to get the same
    behavior.
    
    I also changed the name of the test, since it doesn't actually spawn
    `echo(1)` anymore :)
    hawkw committed Aug 12, 2024
    Configuration menu
    Copy the full SHA
    38cc55b View commit details
    Browse the repository at this point in the history
  3. fix uds_stream::epollhup test

    hawkw committed Aug 12, 2024
    Configuration menu
    Copy the full SHA
    1064b29 View commit details
    Browse the repository at this point in the history
  4. ci: disable nextest failfast

    hawkw committed Aug 12, 2024
    Configuration menu
    Copy the full SHA
    ed03ae9 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2024

  1. make errno assertion less flaky

    hawkw committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    35c1465 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f18d6ed View commit details
    Browse the repository at this point in the history
  3. task: illumos/Solaris have thread-local weirdness

    ## Motivation
    
    In `tokio::task::local`, there's a
    `LocalState::assert_called_from_owner_thread` function, which checks
    that the caller's thread ID matches that of the thread on which the
    `LocalSet` was created. This assertion is disabled on FreeBSD and
    OpenBSD, with a comment indicating that this is because those systems
    have "some weirdness around thread-local destruction". If memory serves,
    I believe the "weirdness" was related to the order in which
    thread-locals are destroyed relative to each other, or something along
    those lines.
    
    Upon running the tests on illumos, there appears to be [a similar
    panic][1] in the `task_local_set_in_thread_local` due to this assertion
    assertion while dropping a `LocalSet` which lives in a thread-local.
    This leads me to believe that illumos, and presumably Solaris, also
    exhibit the same "weirdness". This wouldn't be too surprising, given the
    shared heritage of those systems.
    
    ## Solution
    
    This commit adds `target_os="illumos"` and `target_os="solaris"` to the
    `cfg` attribute that disables the assertion on systems determined to
    have weirdness. This fixes the test panicking on illumos.
    
    In the future, it might be worthwhile to look into changign the
    assertion to only be disabled on weirdness-having systems _while
    dropping the `LocalSet`_, rather than all the time. That way, we can
    still check other accesses. But, I wanted to make the minimum change
    necessary to fix it here before messing around with that.
    
    [1]: https://buildomat.eng.oxide.computer/wg/0/details/01J592RB0JR203RGGN0RYHJHMY/CHieo1Uee7qzRVyp811YBl0MvXGO3i0QA9ezPaFWj6hf6P3P/01J592RSWCNX1MCFYGW74AHVH6#S1954
    hawkw committed Aug 14, 2024
    Configuration menu
    Copy the full SHA
    347b921 View commit details
    Browse the repository at this point in the history