-
Notifications
You must be signed in to change notification settings - Fork 923
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
fix(share/eds): dagstore shard restore reflection workaround #2559
Merged
walldiss
merged 4 commits into
celestiaorg:main
from
walldiss:fix-dagstore-struct-clone
Aug 14, 2023
Merged
fix(share/eds): dagstore shard restore reflection workaround #2559
walldiss
merged 4 commits into
celestiaorg:main
from
walldiss:fix-dagstore-struct-clone
Aug 14, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Codecov Report
@@ Coverage Diff @@
## main #2559 +/- ##
==========================================
- Coverage 51.05% 51.03% -0.02%
==========================================
Files 158 158
Lines 10398 10398
==========================================
- Hits 5309 5307 -2
- Misses 4622 4628 +6
+ Partials 467 463 -4
|
walldiss
force-pushed
the
fix-dagstore-struct-clone
branch
from
August 11, 2023 12:14
226e518
to
89fe8a1
Compare
walldiss
force-pushed
the
fix-dagstore-struct-clone
branch
from
August 11, 2023 12:15
89fe8a1
to
bf10944
Compare
walldiss
requested review from
renaynay,
Wondertan,
vgonkivs and
distractedm1nd
as code owners
August 11, 2023 12:41
renaynay
approved these changes
Aug 14, 2023
Let's link the issue on the dagstore here |
Wondertan
approved these changes
Aug 14, 2023
Linking |
renaynay
pushed a commit
to renaynay/celestia-node
that referenced
this pull request
Aug 23, 2023
…aorg#2559) Turns out `dagstore` has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer). Before `dagstore` is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy of `mount.FileMount` instead of `mount.Mount` interface.
walldiss
added a commit
to walldiss/celestia-node
that referenced
this pull request
Sep 22, 2023
…aorg#2559) Turns out `dagstore` has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer). Before `dagstore` is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy of `mount.FileMount` instead of `mount.Mount` interface. (cherry picked from commit 003c2c4)
walldiss
added a commit
that referenced
this pull request
Sep 22, 2023
Turns out `dagstore` has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer). Before `dagstore` is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy of `mount.FileMount` instead of `mount.Mount` interface. (cherry picked from commit 003c2c4)
walldiss
added a commit
to walldiss/celestia-node
that referenced
this pull request
Sep 22, 2023
…aorg#2559) Turns out `dagstore` has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer). Before `dagstore` is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy of `mount.FileMount` instead of `mount.Mount` interface. (cherry picked from commit 003c2c4)
walldiss
added a commit
to walldiss/celestia-node
that referenced
this pull request
Sep 25, 2023
…aorg#2559) Turns out `dagstore` has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer). Before `dagstore` is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy of `mount.FileMount` instead of `mount.Mount` interface. (cherry picked from commit 003c2c4)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Turns out
dagstore
has bug in its restore shard code. For each shard it attempts to create deep copy of registered type, but copies only basic struct fields of the mount type. In out case it means, that it copies a pointer. That causes all shards to point to the same mount (same pointer).Before
dagstore
is fixed to take into account possibility of pointers/interface (and any other reference type) in mount type struct fields, we will use direct copy ofmount.FileMount
instead ofmount.Mount
interface.