fix: forget the partition record with the keys that describe it

`forget_cached_keys` is the one place that means "this slot holds nothing
you can trust", and it left the partition record behind. A reused slot
rebuilds regardless — its content id changed, so the arena takes the build
path and the record is overwritten — but that made the safety an accident
of another code path rather than something this function guarantees.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
PanosandClaude Opus 5 committed 2026-09-08 16:42:39 +03:00
1 parent d46c00281f
commit 5eb762e88d
1 file changed
+6
+6
View File
@@ -4987,6 +4987,12 @@ impl Pipeline {
self.silhouette_key = (usize::MAX, u64::MAX, [u32::MAX; 3], false);
self.silhouette_source_key = (usize::MAX, usize::MAX, u64::MAX);
self.render_sig = u64::MAX;
// The partition record describes uploads this slot is no longer
// entitled to reuse. A reused slot rebuilds anyway, because its content
// id changed, but leaving a stale record here would make that an
// accident rather than a guarantee.
self.partition_contributors.clear();
self.partition_depth_generation = u64::MAX;
}
/// Catch errors delivered after the previous upload/submit completed.