-
Notifications
You must be signed in to change notification settings - Fork 356
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
pageserver: downloads of evicted layers with pre-v1 local paths panics #7783
Labels
Comments
jcsp
added
t/bug
Issue Type: Bug
c/storage/pageserver
Component: storage: pageserver
labels
May 16, 2024
jcsp
changed the title
pageserver: downloads of v0 layers with v0 local paths panic
pageserver: downloads of evicted layers with pre-v1 local paths panics
May 16, 2024
5 tasks
jcsp
added a commit
that referenced
this issue
May 17, 2024
## Problem - When a layer with legacy local path format is evicted and then re-downloaded, a panic happened because the path downloaded by remote storage didn't match the path stored in Layer. - While investigating, I also realized that secondary locations would have a similar issue with evictions. Closes: #7783 ## Summary of changes - Make remote timeline client take local paths as an input: it should not have its own ideas about local paths, instead it just uses the layer path that the Layer has. - Make secondary state store an explicit local path, populated on scan of local disk at startup. This provides the same behavior as for Layer, that our local_layer_path is a _default_, but the layer path can actually be anything (e.g. an old style one). - Add tests for both cases.
a-masterov
pushed a commit
that referenced
this issue
May 20, 2024
## Problem - When a layer with legacy local path format is evicted and then re-downloaded, a panic happened because the path downloaded by remote storage didn't match the path stored in Layer. - While investigating, I also realized that secondary locations would have a similar issue with evictions. Closes: #7783 ## Summary of changes - Make remote timeline client take local paths as an input: it should not have its own ideas about local paths, instead it just uses the layer path that the Layer has. - Make secondary state store an explicit local path, populated on scan of local disk at startup. This provides the same behavior as for Layer, that our local_layer_path is a _default_, but the layer path can actually be anything (e.g. an old style one). - Add tests for both cases.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This is a regression in not-yet-deployed code via #7660
We load a layer with an old-style name (no generation), evict it, then download it again. The download code uses a new-style path but the old-style path is still in the Layer object.
The text was updated successfully, but these errors were encountered: