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

sources: update to tokio v1 #1479

Merged
merged 1 commit into from
Apr 29, 2021
Merged

sources: update to tokio v1 #1479

merged 1 commit into from
Apr 29, 2021

Conversation

webern
Copy link
Contributor

@webern webern commented Apr 9, 2021

Update all libraries that have tokio dependencies to their tokio v1
versions. Note that Hyper >= 0.14.3 causes a build issue so we have
pinned version 0.14.2. (tracked in #1471)

Issue number:

Closes #1269

Description of changes:

Update all dependencies in the sources workspace to use tokio v1.

Testing done:

  • verified that only one version of tokio exists in the lock file
  • ensured that webpki-roots-shim is being used
  • ran a v1.0.7 version (without my changes) and upgraded into a pseudo-1.0.8 version with my changes and with the 1.0.8 migrations. downgraded, ran pods at each step and logged in to the admin container.
  • ran an ami with my changes
    • used the apiclient to set motd
    • checked the journal with journalctl -p 3, no errors

Terms of contribution:

By submitting this pull request, I agree that this contribution is dual-licensed under the terms of both the Apache License, version 2.0, and the MIT license.

@tjkirch tjkirch added this to the next milestone Apr 9, 2021
@@ -10,7 +10,7 @@ build = "build.rs"
exclude = ["README.md"]

[dependencies]
actix-web = { version = "3.2.0", default-features = false }
actix-web = { version = "4.0.0-beta.5", default-features = false }
Copy link
Contributor

Choose a reason for hiding this comment

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

I guess I'll start the discussion - I'm more comfortable holding off on some dependency updates than taking a beta release of one of our most important dependencies. 3.x has seen a lot of use and presumably 4.x would see a greatly increasing amount after release; we'd be taking on a lot of testing debt by going forward with an early release. It doesn't seem like there's a way to update just actix-rt (which is tokio 1+ and not in beta) without updating actix-web to 4.0 beta, for now, so I'd vote to wait on this PR.

Copy link
Contributor Author

@webern webern Apr 13, 2021

Choose a reason for hiding this comment

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

The counterargument is that that the issues open for the 4.0 milestone don't seem like blockers:
https://github.com/actix/actix-web/milestone/6

  • The bug named "A Stream object in a pending state won't be dropped after the client disconnect" has been open since Jan 2020.
  • The bug named "actix-multipart file fields might not be waking properly" is not relevant to us since I don't think we use actix-multipart (?)
  • Two api improvements that might require code changes, but don't represent defects in 4-beta
    • "review compression flow"
    • "decouple web and client"

My impression is that 4.0 could be cut right now, but that the project doesn't want to burn a major version number just to get tokio v1 support out when they have some other breaking changes in mind.

On crates.io 4.0.0-beta.X versions are getting at about 1,300 downloads per day compared to 5,500 downloads of all other versions, so about 19% of actix-web users are opting for 4-beta.

Copy link
Contributor Author

@webern webern Apr 16, 2021

Choose a reason for hiding this comment

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

Update: I checked with a maintainer on the Gitter channel and they said that 4.0.0-beta is no less production ready than v3. The beta label is because there might be a couple of minor breaking changes before 4.0-proper is released.

@webern
Copy link
Contributor Author

webern commented Apr 12, 2021

webern force-pushed the webern:tokio branch from ec54e1b to a0767a0

Fix a fixme

@webern
Copy link
Contributor Author

webern commented Apr 12, 2021

webern force-pushed the webern:tokio branch from a0767a0 to 62ec7f6

rebase

@webern
Copy link
Contributor Author

webern commented Apr 16, 2021

webern force-pushed the webern:tokio branch from 62ec7f6 to 40642da now

rebase

@webern webern requested a review from bcressey April 16, 2021 21:14
@webern
Copy link
Contributor Author

webern commented Apr 19, 2021

webern force-pushed the webern:tokio branch from 40642da to 6e3c139

Rebase.

@webern
Copy link
Contributor Author

webern commented Apr 21, 2021

webern force-pushed the webern:tokio branch from 6e3c139 to 3790105

Rebase.

@webern
Copy link
Contributor Author

webern commented Apr 22, 2021

webern force-pushed the webern:tokio branch from 3790105 to e32c0ca

Rebase.

@webern
Copy link
Contributor Author

webern commented Apr 26, 2021

webern force-pushed the webern:tokio branch from e32c0ca to 282b07b

Rebase.

Update all libraries that have tokio dependencies to their tokio v1
versions. Note that Hyper >= 0.14.3 causes a build issue so we have
pinned version 0.14.2.
@webern
Copy link
Contributor Author

webern commented Apr 29, 2021

webern force-pushed the webern:tokio branch from 282b07b to 2ebd5d1

Rebase. I will also re-test.

Edit: got at least one unexpected EOF from CI.

@webern
Copy link
Contributor Author

webern commented Apr 29, 2021

I retested everything and it checks out. I saw this in the journal Apr 29 18:42:58 ip-192-168-60-200.us-west-2.compute.internal wickedd[2707]: ni_process_reap: process 7043 has not exited yet; now doing a blocking waitpid() but I think it's unrelated.

@webern webern merged commit dbdb31b into bottlerocket-os:develop Apr 29, 2021
@webern webern deleted the tokio branch May 6, 2021 18:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

update to tough v0.11.0, tokio 1.0, rusoto 0.46, reqwest v0.11.
3 participants