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

Update Rust crate tokio to 1.39.2 #6249

Merged
merged 1 commit into from
Aug 16, 2024
Merged

Update Rust crate tokio to 1.39.2 #6249

merged 1 commit into from
Aug 16, 2024

Conversation

oxide-renovate[bot]
Copy link
Contributor

@oxide-renovate oxide-renovate bot commented Aug 7, 2024

This PR contains the following updates:

Package Type Update Change
tokio (source) workspace.dependencies minor 1.38.1 -> 1.39.2

Release Notes

tokio-rs/tokio (tokio)

v1.39.2: Tokio v1.39.2

Compare Source

1.39.2 (July 27th, 2024)

This release fixes a regression where the select! macro stopped accepting expressions that make use of temporary lifetime extension. (#​6722)

v1.39.1: Tokio v1.39.1

Compare Source

1.39.1 (July 23rd, 2024)

This release reverts "time: avoid traversing entries in the time wheel twice" because it contains a bug. (#​6715)

v1.39.0: Tokio v1.39.0

Compare Source

1.39.0 (July 23rd, 2024)

  • This release bumps the MSRV to 1.70. (#​6645)
  • This release upgrades to mio v1. (#​6635)
  • This release upgrades to windows-sys v0.52 (#​6154)
Added
  • io: implement AsyncSeek for Empty (#​6663)
  • metrics: stabilize num_alive_tasks (#​6619, #​6667)
  • process: add Command::as_std_mut (#​6608)
  • sync: add watch::Sender::same_channel (#​6637)
  • sync: add {Receiver,UnboundedReceiver}::{sender_strong_count,sender_weak_count} (#​6661)
  • sync: implement Default for watch::Sender (#​6626)
  • task: implement Clone for AbortHandle (#​6621)
  • task: stabilize consume_budget (#​6622)
Changed
  • io: improve panic message of ReadBuf::put_slice() (#​6629)
  • io: read during write in copy_bidirectional and copy (#​6532)
  • runtime: replace num_cpus with available_parallelism (#​6709)
  • task: avoid stack overflow when passing large future to block_on (#​6692)
  • time: avoid traversing entries in the time wheel twice (#​6584)
  • time: support IntoFuture with timeout (#​6666)
  • macros: support IntoFuture with join! and select! (#​6710)
Fixed
  • docs: fix docsrs builds with the fs feature enabled (#​6585)
  • io: only use short-read optimization on known-to-be-compatible platforms (#​6668)
  • time: fix overflow panic when using large durations with Interval (#​6612)
Added (unstable)
  • macros: allow unhandled_panic behavior for #[tokio::main] and #[tokio::test] (#​6593)
  • metrics: add spawned_tasks_count (#​6114)
  • metrics: add worker_park_unpark_count (#​6696)
  • metrics: add worker thread id (#​6695)
Documented
  • io: update tokio::io::stdout documentation (#​6674)
  • macros: typo fix in join.rs and try_join.rs (#​6641)
  • runtime: fix typo in unhandled_panic (#​6660)
  • task: document behavior of JoinSet::try_join_next when all tasks are running (#​6671)

Configuration

📅 Schedule: Branch creation - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@oxide-renovate oxide-renovate bot added the dependencies Pull requests that update a dependency file label Aug 7, 2024
@oxide-renovate oxide-renovate bot force-pushed the renovate/tokio-1.x branch from 834f3da to c2c6f0a Compare August 7, 2024 04:32
@jclulow
Copy link
Collaborator

jclulow commented Aug 7, 2024

I feel this one is 100% likely to fail, due to tokio 1.39+ issues on illumos.

@oxide-renovate oxide-renovate bot force-pushed the renovate/tokio-1.x branch from c2c6f0a to cc576a3 Compare August 7, 2024 05:31
@oxide-renovate oxide-renovate bot force-pushed the renovate/tokio-1.x branch 8 times, most recently from 8ccb194 to e6eee48 Compare August 14, 2024 03:16
@oxide-renovate oxide-renovate bot force-pushed the renovate/tokio-1.x branch 2 times, most recently from 0302890 to ed9d2db Compare August 15, 2024 09:49
@oxide-renovate oxide-renovate bot force-pushed the renovate/tokio-1.x branch from ed9d2db to f6a6b39 Compare August 16, 2024 03:18
@sunshowers sunshowers enabled auto-merge (squash) August 16, 2024 04:46
@sunshowers sunshowers merged commit d7d4bea into main Aug 16, 2024
24 checks passed
@sunshowers sunshowers deleted the renovate/tokio-1.x branch August 16, 2024 04:47
@sunshowers sunshowers restored the renovate/tokio-1.x branch August 16, 2024 04:50
@sunshowers
Copy link
Contributor

sunshowers commented Aug 16, 2024

A workaround for the illumos eventfd issue (tokio-rs/mio#1826) was landed by upstream and released as part of mio 1.0.2. We don't have as much confidence in eventfd as we do in the self-pipe-based impl, but we can't stay on an old Tokio version forever.

However, I'm having second thoughts about getting this in so close to release 10. There's a case to be made for going back to 1.38 for now, and landing this update early in the r11 cycle. Putting up this draft PR for that: #6356

@oxide-renovate oxide-renovate bot deleted the renovate/tokio-1.x branch August 16, 2024 04:57
sunshowers added a commit that referenced this pull request Aug 20, 2024
Tokio 1.39 updated its mio dependency to 1.0, which changed the waker impl on illumos from a self-pipe to eventfd. That has caused several issues already:

* oxidecomputer/helios#169
* oxidecomputer/helios#171

Based on these and the potential for other lurking issues, we're making a policy decision to roll back to 1.38 (mio 0.8) for r10. We can't be off of the train forever so we're aiming to land the 1.39 update early in the r11 cycle.

This backs out commit d7d4bea.
sunshowers added a commit that referenced this pull request Aug 27, 2024
Tokio 1.39/mio 1.0 switches out the illumos impl to being eventfd based. For release 10 we decided that that was too risky, so we switched back to Tokio 1.38.

Now that the r10 branch has been cut, we can go back and update Tokio to 1.39.3. We'd like to land this early in the cycle to get as much soak time as possible.

See:

* #6356
* #6249
* oxidecomputer/helios#169
* oxidecomputer/helios#171
* #6391
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants