-
Notifications
You must be signed in to change notification settings - Fork 18
Update progenitor, progenitor-client, oauth2, and reqwest #870
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
Conversation
We're losing some useful context with this change, the nested error is no longer printed: # Branch: update-several
$ oxide auth status
Checking https://oxide.sys.rack2.eng.oxide.computer...
Profile "dogfood" (https://oxide.sys.rack2.eng.oxide.computer) status: Communication Error: error sending request for url (https://oxide.sys.rack2.eng.oxide.computer/v1/me)
# Branch: main
$ oxide auth status
Checking https://oxide.sys.rack2.eng.oxide.computer...
Profile "dogfood" (https://oxide.sys.rack2.eng.oxide.computer) status: Communication Error: error sending request for url (https://oxide.sys.rack2.eng.oxide.computer/v1/me): operation timed out |
Indeed! That seems to be due to the new reqwest. I this sort of thing in omicron (oxidecomputer/omicron#6717, oxidecomputer/omicron#6716). I'll ask @seanmonstar about this change. |
reqwest and hyper both changed such that the default |
Thanks for the context, I've pushed 78293ec to restore printing the error sources. |
That didn't seem like the right approach so I reverted the change. In particular, taking the source chain (except for the first source) seems to produce the maximal set of output but certainly includes information beneath the level of detail that would make sense for a user, would have internal implementation details, and is only validated in a limited number of our tests. |
The the status quo ante was already printing several sources deep, I don't think we have a way of retaining the same level of detail previously present without walking the source chain in some manner. The approach I pushed earlier works a bit better by stopping when the first let mut s = ee.source().and_then(|e| e.source());
while let Some(source) = s {
if source.downcast_ref::<std::io::Error>().is_some() {
break;
}
err += &format!(": {source}");
s = source.source();
}
|
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.
Now that --debug
is working with #878 it's less of an issue if we don't capture the full error chain in the default output.
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.
I'm happy to see the upgrades for reqwest and progenitor-client. I think moving to a release candidate version of oauth2 is fine, not sure it's worth waiting for the official 5 release.
... more rooting out of hyper v0.x
There are two small output changes due to our use of the built-in functionality of
oauth2
5.0.0-rc.1 that we had previously been doing by hand.See ramosbugs/oauth2-rs#288 for the output changes
I'm not sure if we should merge this before or after the next release. My inclination is to do so... we can always revert and ship new binaries if we kick over some problem.