Bump opendal to 0.58.1 and fix fallout (fixes local GCS cache usage) - #2715
Bump opendal to 0.58.1 and fix fallout (fixes local GCS cache usage)#2715flip1995 wants to merge 5 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2715 +/- ##
==========================================
- Coverage 72.90% 72.85% -0.05%
==========================================
Files 72 72
Lines 37275 36390 -885
==========================================
- Hits 27176 26513 -663
+ Misses 10099 9877 -222 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Not sure why CI is failing. I'd appreciate any pointers how I can try to reproduce those locally and debug. EDIT: Managed to reproduce the dist tests locally. |
|
Hm, the dist tests are running into this issue: seanmonstar/reqwest#2988 |
|
@sylvestre could you approve the CI run please. I think my latest commit has fixed the |
|
Blocked by apache/opendal#7701 and the following opendal release. |
|
@sylvestre With de7fa43 I'm patching the opendal dependency to my branch of apache/opendal#7701. This should make the CI of this PR pass. But to merge this PR, we'll have to wait until my opendal fix is released. This commit is just for me to check if there's anything else I need to fix after this. Could you approve the CI run one more time, please? Totally understandable if you don't want to approve this with such external changes included in the PR. Happy to wait until the opendal fix is through in that case. |
|
sure, done |
de7fa43 to
833205b
Compare
|
Converting to draft until there's a new opendal version released. |
|
@flip1995 apache/opendal#7701 was included in 0.58. |
|
Yes, but version 0.58.0 was yanked and I'm waiting for release 0.58.1: apache/opendal#7920 Don't worry, I'm subscribed to the opendal GH project for releases. So as soon as that lands, I will bump to 0.58.1 here (latest commit already contains all of the fallout work necessary for that) and finish up this PR 👍 |
833205b to
efbfc38
Compare
|
@sylvestre This is now ready for another CI run and a subsequent review. I rebased on latest master, re-organized the commits and updated the PR description to list out all the changes that were required by the dump. |
Merging this PR will regress 4 benchmarks
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | cache_entry_create_large |
4.9 ms | 5.5 ms | -11.17% |
| ❌ | Simulation | build_workflow_incremental |
6.7 ms | 7.4 ms | -10.72% |
| ❌ | Simulation | cache_entry_roundtrip_large |
5.5 ms | 5.8 ms | -5.02% |
| ❌ | Simulation | compression_high_compressibility |
2.4 ms | 2.5 ms | -3.41% |
| ⚡ | Memory | hash_large_data |
324 B | 64 B | ×5.1 |
| ⚡ | Memory | hash_header_file |
324 B | 64 B | ×5.1 |
| ⚡ | Memory | cache_key_generation |
324 B | 64 B | ×5.1 |
| ⚡ | Memory | time_macro_finder_with_macros |
324 B | 64 B | ×5.1 |
| ⚡ | Memory | time_macro_finder_no_macros |
324 B | 64 B | ×5.1 |
| ⚡ | Memory | hash_multiple_files |
260 B | 64 B | ×4.1 |
| ⚡ | Simulation | time_macro_finder_chunked |
1,026.7 µs | 862.9 µs | +18.98% |
| ⚡ | Simulation | time_macro_finder_no_macros |
3 ms | 2.8 ms | +5.74% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing flip1995:gcs-reqsign-fix (160d965) with main (46e96ab)
Footnotes
-
6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
|
The Clippy commit is best reviewed with hiding whitespace changes. The Clippy fixes are probably necessary due to the MSRV bump. |
Xuanwo
left a comment
There was a problem hiding this comment.
Thank you for helping bump this!
|
please split this PR |
aaa58fd to
5e44d36
Compare
c4b3f2c to
1ac671e
Compare
|
I've split out the MSRV bump to #2793. I still kept the commit in this PR, but will remove it and rebase once the other PR is merged. I rebased on master to resolve the nvcc conflict and the last Windows Clippy finding should be fixed now as well. I also moved most of the Clippy fixes to #2793, as they are necessary due to the MSRV bump. |
- Required bump of reqwest to 0.13.0
- Rename and remove features deprecated in that release
- Remove direct `reqsign` dependency that was not used in the code
- Add new (optional) opendal-* dependencies that were split out of opendal
I first did just a partial Cargo.lock update for only the dependencies that were bumped in this PR. But the churn was quite big when just doing that. So I figured why not do a full, clean `cargo update` of the `Cargo.lock` file.
- `HttpClientLayer` was removed and now has to be built from the `OperationContext` - `LoggingLayer` was moved to its own crate - `allow_anonymous` was deprecated in favor of `skip_signature` - Use `sha256` instead of `sha1`, as that is quasi-deprecated. I'm not sure if this is actually necessary. I think it fixed some issue in the tests? In any case, I think this is a good change - Check if `native_certs` are available when building a reqwest client, and if not set the TLS certs to an empty vector. With reqwest 0.13, the client would fail otherwise.
This fixes the Clippy findings after the dep bump and `cargo update`.
1ac671e to
160d965
Compare
|
PR is rebased, the 2 commits merged in #2793 removed 👍 Do you want me to look into the 4 perf regressions? I might need some guidance on where to start with that though. |
|
@codspeedbot fix this regression |
Looked into it — here's what I found and what I changed. Root causeThe regressions are not caused by the opendal/reqwest work. They come from the I confirmed this by isolating zstd in a standalone binary under callgrind: compressing identical input at level 3 costs ~6.8% more instructions with 1.5.7 (21.9M → 23.4M instructions for 2 MiB). The head flamegraphs also show two new 1.5.7 functions, Then I rebuilt the benchmarks on this branch with only the zstd stack downgraded to the
So 3 of the 4 are fully explained by the upstream library bump. The fixPinning zstd back didn't seem right, so I instead went after what the profile actually pointed at. In The reason: Measured locally, same machine and same lockfile, only this change:
Nothing regressed, and all four originally-flagged benchmarks now land below the Pushed as Summary
Was this response helpful? React with 👍 or 👎 to help us improve CodSpeedBot. |
Hm, if this is caused by a dep bump, I can revert the |
|
yeah, it would be great! thanks codspeed! |
Motivation
authorized_usercredential apache/opendal#6287The gcs cache can currently not be used with
authorized_userapplication-default credentials, as this was not supported inreqsignversion 0.16.5, whichopendalversion0.55.0depended on. This was fixed in a later version of reqsign and since has been updated inopendalWith this, the gcs cache should Just Work ™️ after a
gcloud auth application-default login.Changes
I split this PR into the following commits for easier commit-by-commit review:
Bump MSRV to 1.91.0
opendal 0.58.1 has an MSRV of 1.91.0, so sccache needs to match this in order to bump the opendal dependency.
Bump opendal to 0.58.1
reqsigndependency that was not used in the codeRun cargo update
I first did just a partial Cargo.lock update for only the dependencies that were bumped in this PR. But the churn was quite big when just doing that. So I figured why not do a full, clean
cargo updateof theCargo.lockfile.Fix fallout in code
HttpClientLayerwas removed and now has to be built from theOperationContextLoggingLayerwas moved to its own crateallow_anonymouswas deprecated in favor ofskip_signaturesha256instead ofsha1, as that is quasi-deprecated. I'm not sure if this is actually necessary. I think it fixed some issue in the tests? In any case, I think this is a good changenative_certsare available when building a reqwest client, and if not set the TLS certs to an empty vector. With reqwest 0.13, the client would fail otherwise.