-
Notifications
You must be signed in to change notification settings - Fork 12.7k
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
Use 64 bits for incremental cache in-file positions #104164
Conversation
(rustbot has picked a reviewer for you, use r? to override) |
This comment was marked as outdated.
This comment was marked as outdated.
@bors r+ |
Hi, is it possible to merge this PR a bit more quickly? We (at databend) are affected by this issue every day. Thanks in advance. |
Nominating beta backport, since the change is pretty self-contained. |
@bors rollup=never |
☀️ Test successful - checks-actions |
Finished benchmarking commit (c1a859b): comparison URL. Overall result: no relevant changes - no action needed@rustbot label: -perf-regression Instruction countThis benchmark run did not return any relevant results for this metric. Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
|
…mulacrum [beta] backport * Use nominal_obligations_without_const in wf for FnDef rust-lang#104180 * Don't silently eat label before block in block-like expr rust-lang#103986 * Revert "Update CI to use Android NDK r25b" rust-lang#104628 * rustdoc: Resolve doc links in external traits having local impls rust-lang#104364 * Use 64 bits for incremental cache in-file positions rust-lang#104164 * rustdoc: Do not add external traits to the crate in register_res rust-lang#103649 * Revert "Normalize opaques with escaping bound vars" rust-lang#103509 * Bump to released stable compiler * [beta] Update cargo rust-lang#104486 r? `@Mark-Simulacrum`
Use 64 bits for incremental cache in-file positions We currently use a 32-bit integer to encode byte positions into the incremental cache. This is not enough when the query chache file is >4GB. As the overflow check was a `debug_assert`, it was removed in released compilers, making compilation succeed silently. At the next compilation, cache decoding would try to read unrelated data because of garbled file position, triggering an ICE. Fixes rust-lang#79786 (I'm closing that bug since it the original report and the subsequent questions are probably different instances. A new bug should be opened for new instances of that ICE.)
We currently use a 32-bit integer to encode byte positions into the incremental cache.
This is not enough when the query chache file is >4GB.
As the overflow check was a
debug_assert
, it was removed in released compilers, making compilation succeed silently.At the next compilation, cache decoding would try to read unrelated data because of garbled file position, triggering an ICE.
Fixes #79786
(I'm closing that bug since it the original report and the subsequent questions are probably different instances. A new bug should be opened for new instances of that ICE.)