chore(deps): update rust crate tokio to 1.38.2 [security] #13
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/crate-tokio-vulnerability"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
1→1.38.21→1.38.21.27.0→1.38.2Tokio broadcast channel calls clone in parallel, but does not require
SyncGHSA-rr8g-9fpq-6wmg / RUSTSEC-2025-0023
More information
Details
The broadcast channel internally calls
cloneon the stored value when receiving it, and only requiresT:Send. This means that using the broadcast channel with values that areSendbut notSynccan trigger unsoundness if thecloneimplementation makes use of the value being!Sync.Thank you to Austin Bonander for finding and reporting this issue.
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:UReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Broadcast channel calls clone in parallel, but does not require
SyncGHSA-rr8g-9fpq-6wmg / RUSTSEC-2025-0023
More information
Details
The broadcast channel internally calls
cloneon the stored value whenreceiving it, and only requires
T:Send. This means that using the broadcastchannel with values that are
Sendbut notSynccan trigger unsoundness ifthe
cloneimplementation makes use of the value being!Sync.Thank you to Austin Bonander for finding and reporting this issue.
Severity
Unknown
References
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
Race condition in tokio
CVE-2021-38191 / GHSA-2grh-hm3w-w7hv / RUSTSEC-2021-0072
More information
Details
When aborting a task with JoinHandle::abort, the future is dropped in the thread calling abort if the task is not currently being executed. This is incorrect for tasks spawned on a LocalSet. This can easily result in race conditions as many projects use Rc or RefCell in their Tokio tasks for better performance.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Task dropped in wrong thread when aborting
LocalSettaskCVE-2021-38191 / GHSA-2grh-hm3w-w7hv / RUSTSEC-2021-0072
More information
Details
When aborting a task with
JoinHandle::abort, the future is dropped in thethread calling abort if the task is not currently being executed. This is
incorrect for tasks spawned on a
LocalSet.This can easily result in race conditions as many projects use
RcorRefCellin their Tokio tasks for better performance.
See tokio#3929 for more details.
Severity
Unknown
References
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
Race Condition in tokio
CVE-2021-45710 / GHSA-fg7r-2g4j-5cgr / RUSTSEC-2021-0124
More information
Details
If a tokio::sync::oneshot channel is closed (via the oneshot::Receiver::close method), a data race may occur if the oneshot::Sender::send method is called while the corresponding oneshot::Receiver is awaited or calling try_recv.
When these methods are called concurrently on a closed channel, the two halves of the channel can concurrently access a shared memory location, resulting in a data race. This has been observed to cause memory corruption.
Note that the race only occurs when both halves of the channel are used after the Receiver half has called close. Code where close is not used, or where the Receiver is not awaited and try_recv is not called after calling close, is not affected.
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Data race when sending and receiving after closing a
oneshotchannelCVE-2021-45710 / GHSA-fg7r-2g4j-5cgr / RUSTSEC-2021-0124
More information
Details
If a
tokio::sync::oneshotchannel is closed (via theoneshot::Receiver::closemethod), a data race may occur if theoneshot::Sender::sendmethod is called while the correspondingoneshot::Receiverisawaited or callingtry_recv.When these methods are called concurrently on a closed channel, the two halves
of the channel can concurrently access a shared memory location, resulting in a
data race. This has been observed to cause memory corruption.
Note that the race only occurs when both halves of the channel are used
after the
Receiverhalf has calledclose. Code wherecloseis not used, or where theReceiveris notawaited andtry_recvis not called after callingclose,is not affected.
See tokio#4225 for more details.
Severity
Unknown
References
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
tokio::io::ReadHalf<T>::unsplitis UnsoundGHSA-4q83-7cq4-p6wg / RUSTSEC-2023-0005
More information
Details
tokio::io::ReadHalf<T>::unsplitcan violate thePincontractThe soundness issue is described in the tokio/issues#5372
Specific set of conditions needed to trigger an issue (a !Unpin type in ReadHalf)
is unusual, combined with the difficulty of making any arbitrary use-after-free
exploitable in Rust without doing a lot of careful alignment of data types in
the surrounding code.
The
tokiofeatureio-utilis also required to be enabled to trigger thissoundness issue.
Thanks to zachs18 reporting the issue to Tokio team responsibly and taiki-e
and carllerche appropriately responding and fixing the soundness bug.
Tokio before 0.2.0 used
futures0.1 that did not havePin, so it is notaffected by this issue.
Severity
Low
References
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
tokio::io::ReadHalf<T>::unsplitis UnsoundGHSA-4q83-7cq4-p6wg / RUSTSEC-2023-0005
More information
Details
tokio::io::ReadHalf<T>::unsplitcan violate thePincontractThe soundness issue is described in the tokio/issues#5372
Specific set of conditions needed to trigger an issue (a !Unpin type in ReadHalf)
is unusual, combined with the difficulty of making any arbitrary use-after-free
exploitable in Rust without doing a lot of careful alignment of data types in
the surrounding code.
The
tokiofeatureio-utilis also required to be enabled to trigger thissoundness issue.
Thanks to zachs18 reporting the issue to Tokio team responsibly and taiki-e
and carllerche appropriately responding and fixing the soundness bug.
Tokio before 0.2.0 used
futures0.1 that did not havePin, so it is notaffected by this issue.
Severity
Unknown
References
This data is provided by OSV and the Rust Advisory Database (CC0 1.0).
Release Notes
tokio-rs/tokio (tokio)
v1.38.2: Tokio v1.38.2Compare Source
This release fixes a soundness issue in the broadcast channel. The channel accepts values that are
Sendbut!Sync. Previously, the channel calledclone()on these values without synchronizing. This release fixes the channel by synchronizing calls to.clone()(Thanks Austin Bonander for finding and reporting the issue).Fixed
clone()call in broadcast channel (#7232)v1.38.1: Tokio v1.38.1Compare Source
1.38.1 (July 16th, 2024)
This release fixes the bug identified as (#6682), which caused timers not
to fire when they should.
Fixed
wake_upwhile holding all the locks of sharded time wheels (#6683)v1.38.0: Tokio v1.38.0Compare Source
This release marks the beginning of stabilization for runtime metrics. It
stabilizes
RuntimeMetrics::worker_count. Future releases will continue tostabilize more metrics.
Added
File::create_new(#6573)copy_bidirectional_with_sizes(#6500)AsyncBufReadforJoin(#6449)CloneforNamedPipeInfo(#6586)Notify::notify_last(#6520)mpsc::Receiver::{capacity,max_capacity}(#6511)splitmethod to the semaphore permit (#6472, #6478)tokio::task::join_set::Builder::spawn_blocking(#6578)Changed
#[tokio::test]append#[test]at the end of the attribute list (#6497)blocking_threadscount (#6551)RuntimeMetrics::worker_count(#6556)lifo_slotinblock_in_place(#6596)global_queue_intervalis zero (#6445)Semaphorefor task dumps (#6499)LocalKey::getwork with Clone types (#6433)true_whenfield inTimerShared(#6563)Fixed
Interval::poll_tick(#6487)is_emptyon mpsc block boundaries (#6603)Documented
stdindocumentation (#6581)ReadHalf::unsplit()documentation (#6498)select!(#6468)NamedPipeServerexample (#6590)SemaphorePermit,OwnedSemaphorePermit(#6477)Barrier::waitis not cancel safe (#6494)watch::Sender::{subscribe,closed}(#6490)spawn_blockingtasks (#6571)LocalSet::run_until(#6599)v1.37.0: Tokio v1.37.0Compare Source
1.37.0 (March 28th, 2024)
Added
set_max_buf_sizetotokio::fs::File(#6411)try_newandtry_with_interesttoAsyncFd(#6345)forget_permitsmethod to semaphore (#6331)is_closed,is_empty, andlento mpsc receivers (#6348)rwlock()method to ownedRwLockguards (#6418)Cloneforwatch::Sender(#6388)TaskLocalFuture::take_value(#6340)FromIteratorforJoinSet(#6300)Changed
io::splituse a mutex instead of a spinlock (#6403)Fixed
Documented
AsyncBufReadExt::fill_buf(#6431)AsyncReadExt's primitive read functions (#6337)Runtimeto#[tokio::main](#6366)enterexample deterministic (#6351)mpsc::Sender::downgradewith#[must_use](#6326)const_newbeforenew_with(#6392)Changed (unstable)
Idin taskdumps (#6328)unhandled_panicis enabled when not supported (#6410)v1.36.0: Tokio v1.36.0Compare Source
1.36.0 (February 2nd, 2024)
Added
tokio::io::Join(#6220)AsyncWriteforEmpty(#6235)UnixSocket(#6290)TcpSocket(#6311){Receiver,UnboundedReceiver}::poll_recv_many(#6236)Sender::{try_,}reserve_many(#6205)watch::Receiver::mark_unchanged(#6252)JoinSet::try_join_next(#6280)Changed
copycooperative (#6265)repeatandsinkcooperative (#6254)Documented
clear_readydocs (#6304)*Fdtraits onTcpSocketare unix-only (#6294)tokio::sync::Mutex(#6279)v1.35.1: Tokio v1.35.1Compare Source
1.35.1 (December 19, 2023)
This is a forward part of a change that was backported to 1.25.3.
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.35.0: Tokio v1.35.0Compare Source
1.35.0 (December 8th, 2023)
Added
Changed
Sizedrequirements fromAsyncReadExt.read_buf(#6169)Runtimeunwind safe (#6189)Fixed
--cfg docsrswork without net feature (#6166)unsync_loadon miri (#6179)Documented
AsyncWriteExtexamples (#6149)LocalSet::run_until(#6147)v1.34.0: Tokio v1.34.0Compare Source
Fixed
clear_readinessafter io driver shutdown (#6067)take(#6080)broadcast::channellink (#6100)Changed
::corequalified imports instead of::stdinsidetokio::testmacro (#5973)Added
fs::read_dirto includeaix(#6075)mpsc::Receiver::recv_many(#6010)v1.33.0: Tokio v1.33.0Compare Source
1.33.0 (October 9, 2023)
Fixed
Interest::addwith#[must_use](#6037)watch::Receiver::wait_for(#6021)spawn_localsource location (#5984)Changed
watch(#6018)Added
tokio::fs::File(#5958)Interest::removemethod (#5906)DuplexStream(#5985)?Sizedbound to{MutexGuard,OwnedMutexGuard}::map(#5997)watch::Receiver::mark_unseen(#5962, #6014, #6017)watch::Sender::new(#5998)OnceCell::from_value(#5903)Removed
statsfeature (#5952)Documented
Child::waitis cancel safe (#5977)Semaphore(#5939, #5956, #5978, #6031, #6032, #6050)broadcastcapacity is a lower bound (#6042)const_newis not instrumented (#6002)mpsc::Sender::send(#5947)watchchannel (#5954)Unstable
v1.32.1: Tokio v1.32.1Compare Source
1.32.1 (December 19, 2023)
This is a forward part of a change that was backported to 1.25.3.
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.32.0: Tokio v1.32.0Compare Source
Fixed
broadcast::Receiver(#5925)Added
Command::raw_arg(#5930)Unstable
v1.31.0: Tokio v1.31.0Compare Source
Fixed
WriteHalf::poll_write_vectored(#5914)Unstable
v1.30.0: Tokio v1.30.0Compare Source
1.30.0 (August 9, 2023)
This release bumps the MSRV of Tokio to 1.63. (#5887)
Changed
--cfg mio_unsupported_force_poll_pollflag (#5881)const_newmethods always available (#5885)Added
broadcast::Sender::new(#5824)UCredfor espidf (#5868)File::options()(#5869)Interval(#5878){ChildStd*}::into_owned_{fd, handle}(#5899)Removed
tokio_*cfgs (#5890)Documented
broadcast::send(#5820)AsyncReadExt::read_exact(#5863)Sleepas!Unpinin docs (#5916)raw_argnot showing up in docs (#5865)Unstable
v1.29.1: Tokio v1.29.1Compare Source
Fixed
block_in_placewith ablock_onbetween (#5837)v1.29.0: Tokio v1.29.0Compare Source
Technically a breaking change, the
Sendimplementation is removed fromruntime::EnterGuard. This change fixes a bug and should not impact most users.Breaking
EnterGuardshould not beSend(#5766)Fixed
fs::read_dir(#5653)JoinSet(#5693)EnterGuarddropped incorrect order (#5772)File(#5803)Changed
Added
broadcast::Receiver::blocking_recv(#5690)raw_argmethod toCommand(#5704)JoinSet::poll_join_next(#5721)Unstable
v1.28.2: Tokio v1.28.2Compare Source
1.28.2 (May 28, 2023)
Forward ports 1.18.6 changes.
Fixed
v1.28.1: Tokio v1.28.1Compare Source
1.28.1 (May 10th, 2023)
This release fixes a mistake in the build script that makes
AsFdimplementations unavailable on Rust 1.63. (#5677)v1.28.0: Tokio v1.28.0Compare Source
1.28.0 (April 25th, 2023)
Added
AsyncFd::async_io(#5542)recv_bufforUdpSocketandUnixDatagram(#5583)OwnedSemaphorePermit::semaphore(#5618)same_channelto broadcast channel (#5607)watch::Receiver::wait_for(#5611)JoinSet::spawn_blockingandJoinSet::spawn_blocking_on(#5612)Changed
read_to_endnot grow unnecessarily (#5610)RwLock(#5647)Notify(#5503)Fixed
get_peer_credon AIX (#5065)broadcastwith custom wakers (#5578)Documented
Semaphore::MAX_PERMITS(#5645)tokio::sync::watch::Senderdocs (#5587)v1.27.0: Tokio v1.27.0Compare Source
1.27.0 (March 27th, 2023)
This release bumps the MSRV of Tokio to 1.56. (#5559)
Added
async_iohelper method to sockets (#5512)AsFd/AsHandle/AsSocket(#5514, #5540)UdpSocket::peek_sender()(#5520)RwLockWriteGuard::{downgrade_map, try_downgrade_map}(#5527)JoinHandle::abort_handle(#5543)Changed
memchrfromlibc(#5558)#[tokio::main](#5557)IntervalreturnsReady(#5553)Fixed
ReadDir(#5555)spawn_blockinglocation fields (#5573)Wheel::poll()(#5574)Documented
tokio::io::copy[_buf](#5575)ReaderStreamandStreamReaderin module docs (#5576)v1.26.0: Tokio v1.26.0Compare Source
Fixed
join!andtry_join!(https://github.com/tokio-rs/tokio/pull/5504)Added
fs::try_exists(https://github.com/tokio-rs/tokio/pull/4299)MappedOwnedMutexGuard(https://github.com/tokio-rs/tokio/pull/5474)Changed
#[clippy::has_significant_drop](https://github.com/tokio-rs/tokio/pull/5422)Instant::now()perf with test-util (https://github.com/tokio-rs/tokio/pull/5513)Internal Changes
poll_fnincopy_bidirectional(https://github.com/tokio-rs/tokio/pull/5486)notify_waiterscalls atomic (https://github.com/tokio-rs/tokio/pull/5458)Unstable
Documented
blocking_*methods (https://github.com/tokio-rs/tokio/pull/5448)process::Commanddocs (https://github.com/tokio-rs/tokio/pull/5413)v1.25.3: Tokio v1.25.3Compare Source
1.25.3 (December 17th, 2023)
Fixed
tokio::runtime::io::registration::async_io(#6221)v1.25.2: Tokio v1.25.2Compare Source
1.25.2 (September 22, 2023)
Forward ports 1.20.6 changes.
Changed
memchrfromlibc(#5960)v1.25.1: Tokio v1.25.1Compare Source
1.25.1 (May 28, 2023)
Forward ports 1.18.6 changes.
Fixed
v1.25.0: Tokio v1.25.01.25.0 (January 28, 2023)
Fixed
Added
broadcast::Sender::len(#5343)Changed
v1.24.1: Tokio v1.24.1Compare Source
This release fixes a compilation failure on targets without
AtomicU64when using rustc older than 1.63. (#5356)v1.24.0: Tokio v1.24.0Compare Source
The highlight of this release is the reduction of lock contention for all I/O operations (#5300). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications.
Fixed
AtomicU64support detection (#5284)Added
per tick (#5186)
threads per runtime instance (#4250)
Changed
read_dir()by chunking operations (#5309)ThreadIdimplementation (#5329)spawn_blockingtask is running (#5115)v1.23.1: Tokio v1.23.1Compare Source
This release forward ports changes from 1.18.4.
Fixed
pipe mode (#5336).
v1.23.0: Tokio v1.23.0Compare Source
Fixed
ChildStdin(#5216)async fn ready()false positive for OS-specific events (#5231)Changed
yield_nowdefers task until after driver poll (#5223)winapidependency withwindows-sys(#5204)v1.22.0: Tokio v1.22.0Compare Source
Added
Handle::runtime_flavor(#5138)Mutex::blocking_lock_owned(#5130)Semaphore::MAX_PERMITS(#5144)merge()to semaphore permits (#4948)mpsc::WeakUnboundedSender(#5189)Added (unstable)
Command::process_group(#5114)task::id()andtask::try_id()(#5171)Fixed
LocalOwnedTasks(#5099)mark_pendingcalled illegally (#5093)unsync_loadon atomic types (#5175)LocalSetdrop in thread local (#5179)CachePadded(#5106)Changed
tokio::io::copycontinue filling the buffer when writer stalls (#5066)coop::budgetfromLocalSet::run_until(#5155)Notifypanic safe (#5154)Documented
write_i8to use signed integers (#5040)set_tosmethods (#5073)UdpSocket::recvdocumentation (#5150)TryLockErrorforRwLock::try_write(#5160)timeout(#5118)timeoutchecks only before poll (#5126)oneshot::Receiverin docs (#5198)Internal changes
Mutex::newfor globals (#5061)Optionaroundmio::Eventsin io driver (#5078)io::handlerefs with scheduler:Handle (#5128)scheduler::Handle(#5135)runtime::contextmodule (#5140)driver.rs(#5141)runtime::contextto unify thread-locals (#5143)coopmod intoruntime(#5152)Runtimeinto its own file (#5159)Handle::enter(#5163)enterintocontext(#5167)CoreStagemethods toCore(#5182)v1.21.2: Tokio v1.21.2Compare Source
1.21.2 (September 27, 2022)
This release removes the dependency on the
once_cellcrate to restore the MSRV of 1.21.x, which is the latest minor version at the time of release. (#5048)v1.21.1: Tokio v1.21.1Compare Source
1.21.1 (September 13, 2022)
Fixed
LocalSetDrop (#4976)v1.21.0: Tokio v1.21.0Compare Source
1.21.0 (September 2, 2022)
This release is the first release of Tokio to intentionally support WASM. The
sync,macros,io-util,rt,timefeatures are stabilized on WASM. Additionally the wasm32-wasi target is given unstable support for thenetfeature.Added
deviceandbind_devicemethods to TCP/UDP sockets (#4882)tosandset_tosmethods to TCP and UDP sockets (#4877)ServerOptions(#4845)mpsc::Sender::max_capacitymethod (#4904)mpsc::Sender(#4595)LocalSet::enter(#4765)JoinSetandAbortHandle(#4920)track_callerto public APIs (#4805, #4848, #4852)wasm32-wasitarget (#4716)Fixed
linked_list::Linkimpls (#4841)#[must_use]to lock guards (#4886)recvon closed and reopened broadcast channel (#4867)Changed
File::start_seek(#4897)poll_read(#4840)SignalKindmethods const (#4956)Internal changes
basic_scheduler::Config(#4935)runtimemodule (#4942)Documented
AsyncSeekExt::rewinddocs (#4893)try_read()for zero-length buffers (#4937)Builder::worker_threads(#4849)watch::Sender::sendimproved (#4959)JoinHandle(#4901)spawn_blocking(#4811)Interval::tickhappens immediately (#4951)Unstable
Builder::spawn_on(#4953)task::Builder::spawn*methods fallible (#4823)v1.20.6: Tokio v1.20.6Compare Source
1.20.6 (September 22, 2023)
This is a backport of a change from 1.27.0.
Changed
memchrfromlibc(#5960)v1.20.5: Tokio v1.20.5Compare Source
1.20.5 (May 28, 2023)
Forward ports 1.18.6 changes.
Fixed
v1.20.4Compare Source
v1.20.3Compare Source
v1.20.2: Tokio v1.20.2Compare Source
1.20.2 (September 27, 2022)
This release removes the dependency on the
once_cellcrate to restore the MSRV of the 1.20.x LTS release. (#5048)v1.20.1: Tokio v1.20.1Compare Source
1.20.1 (July 25, 2022)
Fixed
v1.20.0: Tokio v1.20.0Compare Source
1.20.0 (July 12, 2022)
Added
has_changedmethod towatch::Ref(#4758)Changed
src/time/driver/wheel/stack.rs(#4766)Fixed
Documented
Unstable
join_onetojoin_next(#4755)v1.19.2: Tokio v1.19.2Compare Source
1.19.2 (June 6, 2022)
This release fixes another bug in
Notified::enable. (#4751)v1.19.1: Tokio v1.19.1Compare Source
1.19.1 (June 5, 2022)
This release fixes a bug in
Notified::enable. (#4747)v1.19.0: Tokio v1.19.0Compare Source
1.19.0 (June 3, 2022)
Added
is_finishedmethod forJoinHandleandAbortHandle(#4709)Notified::enable(#4705)watch::Sender::send_if_modified(#4591)take_errortoTcpSocketandTcpStream(#4739)Changed
Fixed
join!andtry_join!(#4624)Documented
block_on(#4729)MissedTickBehavior::Burst(#4713)Unstable
IoDriverMetrics(#4725)#[track_caller]toJoinSet/JoinMap(#4697)Builder::{spawn_on, spawn_local_on, spawn_blocking_on}(#4683)consume_budgetfor cooperative scheduling (#4498)join_set::Builderfor configuringJoinSettasks (#4687)JoinSet::join_one(#4726)v1.18.6: Tokio v1.18.6Compare Source
1.18.6 (May 28, 2023)
Fixed
v1.18.5Compare Source
v1.18.4Compare Source
v1.18.3: Tokio v1.18.3Compare Source
1.18.3 (September 27, 2022)
This release removes the dependency on the
once_cellcrate to restore the MSRV of the 1.18.x LTS release. (#5048)v1.18.2: Tokio v1.18.2Compare Source
1.18.2 (May 5, 2022)
Add missing features for the
winapidependency. (#4663)v1.18.1: Tokio v1.18.1Compare Source
1.18.1 (May 2, 2022)
The 1.18.0 release broke the build for targets without 64-bit atomics when building with
tokio_unstable. This release fixes that. (#4649)v1.18.0: Tokio v1.18.0Compare Source
1.18.0 (April 27, 2022)
This release adds a number of new APIs in
tokio::net,tokio::signal, andtokio::sync. In addition, it adds new unstable APIs totokio::task(Idsfor uniquely identifying a task, and
AbortHandlefor remotely cancelling atask), as well as a number of bugfixes.
Fixed
#[track_caller]forspawn_blocking(#4616)selectmacro to process 64 branches (#4519)try_iomethods not calling Mio'stry_iointernally (#4582)Added
UdpSocket::peer_addr(#4611)try_read_bufmethod for named pipes (#4626)SignalKindHash/Eqimpls andc_intconversion (#4540)SIGRTMAX(#4555)watch::Sender::send_modifymethod (#4310)broadcast::Receiver::lenmethod (#4542)watch::Receiver::same_channelmethod (#4581)CloneforRecvErrortypes (#4560)Changed
mioto 0.8.1 (#4582)tokio::select!'s internalutilmodule (#4543)Vec::with_capacitywhen building runtime (#4553)Documented
tokio_unstable(#4524)Handle::current's docs to mentionEnterGuard(#4567)Signal::recvis cancel-safe (#4634)UnboundedReceiverclose docs (#4548)Unstable
The following changes only apply when building with
--cfg tokio_unstable:task::Idtype (#4630)AbortHandletype for cancelling tasks in aJoinSet(#4530],[#4640)
doc(cfg(...))attributes forJoinSet(#4531)AbortHandleRustDoc (#4545)v1.17.0: Tokio v1.17.0Compare Source
1.17.0 (February 15, 2022)
This release updates the minimum supported Rust version (MSRV) to 1.49,
the
miodependency to v0.8, and the (optional)parking_lotdependency to v0.12. Additionally, it contains several bug fixes, as
well as internal refactoring and performance improvements.
Fixed
sleepwith large durations (#4495)Instantarithmetic on platformswhere
Instant::nowis not monotonic (#4461)DuplexStreamnot participating in cooperative yielding(#4478)
JoinHandle(#4430)Changed
parking_lotdependency to v0.12.0 (#4459)miodependency to v0.8 (#4449)(#4480)
std::future::Readyinstead of our ownReadyfuture(#4271)
atomic::spin_loop_hintwithhint::spin_loop(#4491)
Documented
tokio::process::ChildStdin(#4479)Unstable
The following changes only apply when building with
--cfg tokio_unstable:tracingspans generated byspawn_local(#4483)JoinSetfor managing sets of tasks (#4335)v1.16.1: Tokio v1.16.1Compare Source
1.16.1 (January 28, 2022)
This release fixes a bug in #4428 with the change #4437.
v1.16.0: Tokio v1.16.0Compare Source
Fixes a soundness bug in
io::Take(#4428). The unsoundness is exposed whenleaking memory in the given
AsyncReadimplementation and then overwriting thesupplied buffer:
Also, this release includes improvements to the multi-threaded scheduler that
can increase throughput by up to 20% in some cases (#4383).
Fixed
io::Takein edge case (#4428)File::writeresults in awritesyscall when the runtime shuts down (#4316)wait_with_output(#4315)Sendfromparking_lot::*Guard(#4359)Added
TcpSocket::linger()andset_linger()(#4324)UnwindSafefor socket types (#4384)UnwindSafeforJoinHandle(#4418)watch::Receiver::has_changed()(#4342)oneshot::Receiver::blocking_recv()(#4334)RwLockblocking operations (#4425)Unstable
The following changes only apply when building with
--cfg tokio_unstablev1.15.0: Tokio v1.15.0Compare Source
Fixed
io::empty()(#4300)Changed
Added
Interval::reset()(#4248)AsyncFdReadyGuard(#4267)Command::as_std()(#4295)Added (unstable)
tokio::synctypes (#4302)v1.14.1: Tokio v1.14.1Compare Source
This release backports a bug fix from 1.16.1
Fixes a soundness bug in
io::Take(#4428). The unsoundness is exposed whenleaking memory in the given
AsyncReadimplementation and then overwriting thesupplied buffer:
Fixed
io::Takein edge case (#4428)v1.14.0: Tokio v1.14.0Compare Source
1.14.0 (November 15, 2021)
Fixed
mutpatterns inselect!(#4211)oneshot::Sender::sendand awaiting aoneshot::Receiverwhen the oneshot has been closed (#4226)AtomicWakerpanic safe (#3689)(#4213)
Added
RuntimeStats::busy_duration_total(#4179, #4223)Changed
copybuffer size to matchstd::io::copy(#4209)Documented
v1.13.1: Tokio v1.13.1Compare Source
1.13.1 (November 15, 2021)
This release fixes a data race when sending and receiving on a
closed
oneshotchannel (RUSTSEC-2021-0124).Fixed
oneshot::Sender::sendand awaiting aoneshot::Receiverwhen the oneshot has been closed (#4226)v1.13.0: Tokio v1.13.0Compare Source
1.13.0 (October 29, 2021)
Fixed
Notifyto clone the waker before locking its waiter list (#4129)Added
poll_{recv,send}_readymethods toudpanduds_datagram(#4131)try_*,readable,writable,ready, andpeer_addrmethods to split halves (#4120)blocking_locktoMutex(#4130)watch::Sender::send_replace(#3962, #4195)DebugforMutex<T>impl to unsizedT(#4134)Changed
copy_bidirectionalthatpoll_writeis sensible (#4125)select!(#4192)block_onwakeups better (#4157)Documented
try_join!(#4133)tokio/src/lib.rs(#4132)Interval::tickcancel safety (#4152)v1.12.0: Tokio v1.12.0Compare Source
1.12.0 (September 21, 2021)
Fixed
try_reserveerror is consistent withtry_send(#4119)spin_loop_hintinstead ofyield_now(#4115)SendErrorfield public (#4097)Added
AsyncSeekExt::rewind(#4107)block_onfutures (#4094)try_recvfor mpsc channels (#4113)Changed
LocalSetwhen using macro (#4027)Documented
poll_recv(#4117)PollSenderimplsSink(#4110)yield_now(#4091)v1.11.0: Tokio v1.11.0Compare Source
1.11.0 (August 31, 2021)
Fixed
fill_bufby not callingpoll_fill_buftwice (#4084)Added
watch::Sender::subscribe(#3800)from_stdtoChildStd*(#4045)Changed
Documented
v1.10.1: Tokio v1.10.1Compare Source
1.10.1 (August 24, 2021)
Fixed
v1.10.0: Tokio v1.10.0Compare Source
1.10.0 (August 12, 2021)
Added
(read|write)_f(32|64)[_le]methods (#4022)fill_bufandconsumetoAsyncBufReadExt(#3991)Child::raw_handle()on windows (#3998)Fixed
--cfg docsrs(#4020)io::copy(#4001)spin_loop_hintinstead ofyield_nowin mpsc (#4037)Changes
Documented
AsyncBufReadExt(#3997)watch::sendfails (#4021)v1.9.0: Tokio v1.9.0Compare Source
1.9.0 (July 19, 2021)
Added
TcpStream(#3888)TaskLocal::scope(#3273)Fixed
LocalSet(#3978)Changes
OnceCell(#3945)JoinError(#3959)v1.8.5: Tokio v1.8.5Compare Source
This release backports a bug fix from 1.16.1
Fixes a soundness bug in
io::Take(#4428). The unsoundness is exposed whenleaking memory in the given
AsyncReadimplementation and then overwriting thesupplied buffer:
Fixed
io::Takein edge case (#4428)v1.8.4: Tokio v1.8.4Compare Source
1.8.4 (November 15, 2021)
This release backports a bugfix for a data race when sending and receiving on a
closed
oneshotchannel ([RUSTSEC-2021-0124]) from v1.13.1.Fixed
oneshot::Sender::sendand awaiting aoneshot::Receiverwhen the oneshot has been closed (#4226)v1.8.3: Tokio v1.8.3Compare Source
1.8.3 (July 22, 2021)
This release backports two fixes from 1.9.0
Fixed
LocalSet(#3978)v1.8.2: Tokio 1.8.2Compare Source
Fixes a missed edge case from 1.8.1.
Fixed
v1.8.1: Tokio 1.8.1Compare Source
Forward ports 1.5.1 fixes.
Fixed
JoinHandle::abort(#3934)v1.8.0Compare Source
1.8.0 (July 2, 2021)
Added
get_{ref,mut}methods toAsyncFdReadyGuardandAsyncFdReadyMutGuard(#3807)BufWriter(#3163)NamedPipe{Client,Server}(#3866, #3899)watch::Receiver::borrow_and_update(#3813)From<T>forOnceCell<T>(#3877)Added (unstable)
tokio::task::Builder(#3881)Fixed
UnixStream(#3898)Documented
v1.7.3: Tokio 1.7.3Compare Source
Fixes a missed edge case from 1.7.2.
Fixed
v1.7.2: Tokio v1.7.2Compare Source
Forward ports 1.5.1 fixes.
Fixed
JoinHandle::abort(#3934)v1.7.1: Tokio v1.7.1Compare Source
Fixed
v1.7.0: Tokio v1.7.0Compare Source
1.7.0 (June 15, 2021)
Added
TcpSocketfromstd::net::TcpStreamconversion (#3838)receiver_counttowatch::Sender(#3729)sync::notify::Notifiedfuture publicly (#3840)Fixed
clippy::default_numeric_fallbacklint in generated code (#3831)mpsc::RecvErrortype (#3833)Documented
AsyncReadExt::read_buf(#3850)AsyncWrite::poll_write(#3820)v1.6.4: Tokio 1.6.4Compare Source
Fixes a missed edge case from 1.6.3.
Fixed
v1.6.3: Tokio v1.6.3Compare Source
Forward ports 1.5.1 fixes.
Fixed
JoinHandle::abort(#3934)v1.6.2: Tokio v1.6.2Compare Source
Fixes
time:advanceregression introduced in 1.6 (#3852)v1.6.1: Tokio v1.6.1Compare Source
This release reverts #3518 because it doesn't work on some kernels due to
a kernel bug. (#3803)
v1.6.0: Tokio v1.6.0Compare Source
1.6.0 (May 14, 2021)
Added
write_all_buftoAsyncWriteExt(#3737)AsyncSeekforBufReader,BufWriter, andBufStream(#3491)mpsc::Sender::{reserve_owned, try_reserve_owned}(#3704)MutexGuard::mapmethod that returns aMappedMutexGuard(#2472)Fixed
DuplexStreamclose (#3756)std::os::raw::c_intinstead oflibc::c_inton public API (#3774)notify_waiters(#3660)JoinHandlepanic message (#3727)time::advancefrom going too far (#3712)Documented
net::unix::datagrammodule from docs (#3775)Barrierdoc should use task, not thread (#3780)block_in_place(#3753)v1.5.1: Tokio v1.5.1Compare Source
Fixed
JoinHandle::abort(#3934)v1.5.0: Tokio v1.5.0Compare Source
1.5.0 (April 12, 2021)
Added
AsyncSeekExt::stream_position(#3650)AsyncWriteExt::write_vectored(#3678)copy_bidirectionalutility (#3572)IntoRawFdforTcpSocket(#3684)OnceCell(#3591)OwnedRwLockReadGuardandOwnedRwLockWriteGuard(#3340)Semaphore::is_closed(#3673)mpsc::Sender::capacity(#3690)RwLockmax reads (#3644)sync_scopeforLocalKey(#3612)Fixed
noaliasattributes on intrusive linked list (#3654)JoinHandle::abort()when called from other threads (#3672)oneshot::try_recv(#3674)Semaphorepermit overflow calculation (#3644)Documented
AsyncFd(#3635){Handle,Runtime}::block_on(#3628)Semaphoreis fair (#3693)v1.4.0: Tokio v1.4.0Compare Source
Added
select!(#3603)Handle::block_on(#3569)Fixed
block_onfuture (#3582)EnterGuardwithmust_use(#3609)Documented
PollSender(#3613)MutexFIFO explanation (#3615)v1.3.0: Tokio v1.3.0Compare Source
Added
unconstrained()opt-out (#3547)into_stdfor net types without it (#3509)same_channelmethod tompsc::Sender(#3532){try_,}acquire_many_ownedtoSemaphore(#3535)RwLockWriteGuard::mapandRwLockWriteGuard::try_map(#3348)Fixed
oneshot::Receiver::closeafter successfultry_recv(#3552)timeout(Duration::MAX)(#3551)Documented
read_until(#3536)AsyncRead::poll_readdoc (#3557)UdpSocketsplitting doc (#3517)LocalSetonnew_current_thread(#3508)join_allforBarrier(#3514)oneshot(#3592)notifytonotify_one(#3526)Sleepdoc (#3515)interval.rsandtime/mod.rsdocs (#3533)v1.2.0: Tokio v1.2.0Compare Source
Added
Signal::poll_recvmethod public (#3383)Fixed
test-utilpaused time fully deterministic (#3492)Documented
v1.1.1: Tokio v1.1.1Compare Source
Forward ports 1.0.3 fix.
Fixed
v1.1.0: Tokio v1.1.0Compare Source
Added
try_read_bufandtry_recv_buf(#3351)Sender::try_reservefunction (#3418)RwLocktry_readandtry_writemethods (#3400)ReadBuf::inner_mut(#3443)Changed
select!error message (#3352)read_to_end(#3426)Fixed
LocalSetonspawn_local(#3369)Documented
Streamwrappers intokio-stream(#3343)test-utilfeature is not enabled with full (#3397)AsyncFddocs about changes of the inner fd (#3430)Sleepis notUnpin(#3457)PollSemaphore(#3456)LocalSetexample (#3438)mpscdocumentation (#3458)v1.0.3: Tokio v1.0.3Compare Source
Fixed
v1.0.2: Tokio v1.0.2Compare Source
Fixed
read_to_end(#3428).Configuration
📅 Schedule: (UTC)
🚦 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 these updates again.
This PR has been generated by Mend Renovate.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.