-
Notifications
You must be signed in to change notification settings - Fork 610
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
Switch to async/await for bin/server and tests #1864
Conversation
r? @sgrif (rust_highfive has picked a reviewer for you, use r? to override) |
cb1dd40
to
231fb9d
Compare
☔ The latest upstream changes (presumably #1876) made this pull request unmergeable. Please resolve the merge conflicts. |
231fb9d
to
732b484
Compare
☔ The latest upstream changes (presumably #1899) made this pull request unmergeable. Please resolve the merge conflicts. |
ae781c1
to
683168f
Compare
🎉 I've rebased this branch and now consider it ready for review. 🎉 There is currently a missing feature in conduit-hyper which should be resolved before we try rolling out |
☔ The latest upstream changes (presumably #2072) made this pull request unmergeable. Please resolve the merge conflicts. |
683168f
to
248f65a
Compare
Rebased to resolve merge conflicts, and added a commit to switch from git master to the now released |
☔ The latest upstream changes (presumably #2066) made this pull request unmergeable. Please resolve the merge conflicts. |
248f65a
to
4d11d4b
Compare
I'd like to merge this PR before bumping any more dependencies in I've just pushed a new commit that resolves the remaining known issue. The server will now limit the max number of background threads. If the max thread count is exceeded by a new request, that request will be rejected with a 503 Service Unavailable response. This ensures that we don't end up with an effectively unbounded queue of threads waiting to obtain a database connection. Of course, hyper is still only used when |
The build failure is a regression on nightly and is already reported as rust-lang/rust#68264. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still looking and need to test but wanted to save the one comment I have so far :)
I'm having trouble signing in locally when I'm on this branch rebased on master at 7072305 (and I verified that when I'm on 7072305 locally I can sign in), even without It appears to be failing when requesting the user info from GitHub; the request is returning 403. I'm able to print out the
Soooo 🤷♀ ??? |
There is an new FIXME added to `server.rs` when using `USE_HYPER=1` until I implemenet a max blocking theads limit in `conduit-hyper`. We do not currently enable hyper in production so I think it makes sense to land the changes to the `record.rs` test harness.
If a new request causes the maximum thread count to be exceeded, the request will be rejected with a 503 Service Unavailable response.
d8e77f8
to
0b06ca8
Compare
@carols10cents excellent catch! So it turns out reqwest no longer sets a default user-agent header. I've rebased and then added a commit which sets the user-agent to our URL and updates the tests to always check for this value. I'm pushing the changes to staging now, and will also set |
The tests are also updated to ensure that the user-agent is set for outgoing requests to GitHub and S3.
0b06ca8
to
b5e1209
Compare
☔ The latest upstream changes (presumably #2186) made this pull request unmergeable. Please resolve the merge conflicts. |
2 issues we investigated tonight:
|
If those two issues get tracked somewhere and block turning on hyper for everyone everywhere, feel free to r=me :) |
📌 Commit f724f05 has been approved by |
☀️ Test successful - checks-travis |
This PR series converts the future combinations to async/await syntax in the server binary (when
USE_HYPER=1
is set) and the recording HTTP proxy used in tests.This change requires the update of several dependencies at once (see the list below). It is not strictly necessary to update
reqwest
at this time, but I'm doing so in this series to avoid the build time regression of pulling inhyper 0.12
,hyper 0.13
and their associated transitive dependencies.Blockers:
RustConfig
futures 0.3.1
tokio 0.2.9
hyper 0.13.1
andhyper-tls 0.4.1
reqwest 0.10.1
conduit-hyper 0.2.0