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

Upgrade mio dependency #3207

Merged
merged 1 commit into from Jan 21, 2021
Merged

Upgrade mio dependency #3207

merged 1 commit into from Jan 21, 2021

Conversation

faern
Copy link
Contributor

@faern faern commented Dec 1, 2020

Follow up to tokio-rs/mio#1405. Would probably help greatly with the adoption rate of the fixed versions of net2 and miow. Helps unblock rust-lang/rust#78802. See that PR for more details.

Brings in versions of net2 and miow that does not make invalid
memory layout assumptions on std::net::SocketAddr
@sfackler
Copy link
Contributor

sfackler commented Dec 1, 2020

How would this help with the adoption rate? People would pick this up with a cargo update, but that would pick up the mio bump anyway.

@Darksonn Darksonn added A-tokio Area: The main tokio crate C-maintenance Category: PRs that clean code up or issues documenting cleanup. T-v0.2.x Topic: tokio 0.2.x labels Dec 1, 2020
@faern
Copy link
Contributor Author

faern commented Dec 1, 2020

Because a lot of people never/seldom do cargo update. They only hand-pick some updates they need or want with cargo update -p <something>. How would you otherwise explain that net2 0.2.33 that came out in 2018 still sees ~2500 downloads a day?

@sfackler
Copy link
Contributor

sfackler commented Dec 1, 2020

But if they never cargo update, then they will never pick up this new version of tokio, right?

@sfackler
Copy link
Contributor

sfackler commented Dec 1, 2020

Yanking is the mechanism to aggressively pull dependencies forward when necessary.

@faern
Copy link
Contributor Author

faern commented Dec 1, 2020

I said/meant they never cargo update without -p. Because it brings in a ton of updates and people don't want shit to break. So they only upgrade the crates they know about or care about. tokio is one of those crates that people very often depend directly on and want the latest. It's a well known project. They will likely hand-pick tokio updates hoping it will bring them features or performance improvements. In this case it will help them not segfault once std is changed :)

@faern
Copy link
Contributor Author

faern commented Dec 1, 2020

Yanking is the mechanism to aggressively pull dependencies forward when necessary.

Yes I agree. Having all versions of net2, socket2, miow and mio that are making the invalid memory assumption yanked would be awesome. Let's do it. But yanking won't cause existing projects with a lockfile to upgrade, will it? So I think both solutions are needed/can help.

@faern
Copy link
Contributor Author

faern commented Dec 1, 2020

@sfackler Do as you see fit. You are the reviewer of the PR on std so I know you are familiar with the topic. I'm just trying to help force adoption in order to make the change possible faster and the transition smoother.

Maybe you can help get all old versions of net2 and socket2 yanked? I will talk to some people and see if I can do the same to miow that I'm now a maintainer of.

@carllerche
Copy link
Member

@faern yanking is not a reliable mechanism and IMO should not be employed at this point for this.

@carllerche carllerche merged commit 62e24b7 into tokio-rs:v0.2.x Jan 21, 2021
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 C-maintenance Category: PRs that clean code up or issues documenting cleanup. T-v0.2.x Topic: tokio 0.2.x
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants