Improving platform support for illumos (CI, etc) #6763
Labels
A-ci
Area: The continuous integration setup
A-tokio
Area: The main tokio crate
C-feature-request
Category: A feature request.
Is your feature request related to a problem? Please describe.
At @oxidecomputer, we rely on Tokio in many critical components of our product. This software primarily runs on Helios, our illumos-based host operating system. Because Tokio is such a critical dependency for our product, ensuring it works correctly on illumos is very important to us. We know illumos is not as widely used as other operating systems, such as macOS, Linux, or Windows, so we're very willing to take on responsibility for ensuring our critical dependencies work reliably on illumos.
As a motivating example, we recently encountered a major regression in Tokio v1.39.x resulting in missed wakeups on illumos, oxidecomputer/helios#169. This appears to have been caused by illumos-specific changes in
mio
v1.x which, as far as we know, were never actually tested on illumos --- which isn't particularly surprising, as none of the CI systems currently used by Tokio andmio
provide builds for illumos or other Solaris-derived operating systems, and there don't appear to be many other easily available options for illumos CI.Describe the solution you'd like
We'd really like to provide an illumos CI build for Tokio, and potentially other
tokio-rs
projects. We've written our own CI system, oxidecomputer/buildomat, which can run illumos builds. We've previously contributed buildomat CI jobs for other external dependencies (see https://github.com/arekinath/pivy/tree/dc503bdfb08aad3c37144fc03f1cd37df0eb204d/.github/buildomat), which run on hardware owned by Oxide.Ideally, we could provide illumos CI jobs for both the
tokio
andmio
repositories, but we're happy to start with Tokio, as any mio bugs would be caught by Tokio's CI, just with a somewhat longer time to detection.Additionally, we'd like to take on more responsibility for reviewing and maintaining illumos-specific code in any tokio-rs projects that have illumos-specific code. The tokio-rs/illumos GitHub team already includes two of the illumos maintainers working at Oxide (@pfmooney and @jclulow), and it could be worth considering adding adding CODEOWNERS files to automatically tag them as reviewers to files that contain illumos-specific code. If more maintainers would be helpful, there are other illumos maintainers who could also join that team. We'd also be happy to be tagged in any time an illumos-specific build failure occurs.
Additional context
Tokio already has CI jobs for platforms not supported by GitHub Actions, such as FreeBSD builds using Cirrus CI and Linux ARM builds using CircleCI.
The text was updated successfully, but these errors were encountered: