Skip to content

Conversation

@Darksonn
Copy link
Contributor

@Darksonn Darksonn added A-tokio Area: The main tokio crate M-process Module: tokio/process labels Oct 13, 2025
@Darksonn Darksonn requested a review from ADD-SP October 13, 2025 15:35
Copy link
Member

@ADD-SP ADD-SP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Emm, it looks like there is still a issue.

Imagine the behavior change of std::io::Error::description has landed in Rust 1.91.0. And downstream compile their application using Rust 1.91.0 and older tokio (<= 1.47.1), will this causes bugs? If so, we have to bump the MSRV to 1.91.0.

@Darksonn
Copy link
Contributor Author

We cannot bump the MSRV of old minor releases. But we can backport this to LTS releases.

Copy link
Member

@ADD-SP ADD-SP left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the downstream perspective, bumping the Rust toolchain to the next stable release will introduce a new bug into their application just because they didn't bump the tokio to the latest LTS release. Emm, this looks surprising and not downstream-friendly.

I think this fix is ok, there is nothing else we can do to improve the downstream experience on the tokio side.

@Darksonn
Copy link
Contributor Author

I want to get a release out, so I'm merging this into master. We can backport it later.

@Darksonn Darksonn merged commit e150d4e into master Oct 14, 2025
92 checks passed
@Darksonn Darksonn deleted the alice/process-fix-7671 branch October 14, 2025 10:43
This was referenced Oct 14, 2025
ADD-SP added a commit to ADD-SP/tokio that referenced this pull request Oct 14, 2025
ADD-SP pushed a commit to ADD-SP/tokio that referenced this pull request Oct 14, 2025
@ADD-SP ADD-SP mentioned this pull request Oct 14, 2025
ADD-SP pushed a commit that referenced this pull request Oct 14, 2025
@ADD-SP ADD-SP mentioned this pull request Oct 14, 2025
fmt_eq.remainder.is_empty() && !fmt_eq.unequal
}

#[allow(deprecated)]
Copy link

@CodesInChaos CodesInChaos Oct 14, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can that allow(deprecated) be removed, since the new code doesn't call the deprecated description method anymore?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

good point

@CodesInChaos
Copy link

What is the impact of this change on applications using broken versions of tokio? Just worse diagnostics, or does it impact actual functionality?

@Darksonn
Copy link
Contributor Author

The impact is that tokio::process::Child::wait() can return an error in certain edge cases where it's supposed to work.

(Specifically the case where Child::wait() is called from a different runtime than where it was created.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tokio Area: The main tokio crate M-process Module: tokio/process

Projects

None yet

Development

Successfully merging this pull request may close these issues.

process_spawned_and_wait_in_different_runtime test can fail

4 participants