-
-
Notifications
You must be signed in to change notification settings - Fork 3k
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
ipfs object patch does not work with HAMT-sharded directories #7421
Comments
Per 2021-05-03 verbal, many ipfs commands won't work if you don't observe these limits. Idea is to print errors and potentially allow a force flag? We really want #7022 to get in place. |
@schomatis I believe we want Just raising this so we don't miss it. |
@lidel can't we close this issue out since If the complaint is that |
Agree that investing significant dev time into deprecated Still, there is a footgun gap that I believe we should address somehow:
If we keep current behavior, people will be producing problematic blocks with the object API, and we will see content routing errors caused by this. @aschmahmann thoughts on reducing scope here to just checking the size of block produced by
|
Yep, erroring in that case sounds very reasonable to me. |
My takeaway from the last couple of comments is to execute only on the error implementation. (If after landing the sharding work we can incorporate that here with minimal effort will also try to do that but only as a secondary objective.) |
That's my understanding as well. Lets handle the error case and then
resolve.
…On Mon, Sep 6, 2021 at 7:33 AM Lucas Molas ***@***.***> wrote:
Me takeaway from the last couple of comments is to execute *only* on the
error implementation.
(If after landing the sharding work we can incorporate that here with
minimal effort will also try to do that but only as a secondary objective.)
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
<#7421 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAU3I2VCLLIYFAWMPP5RB3UATGLRANCNFSM4NTNQIWQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
I've merged the bare minimum implemented in #8414 This way folks who use Given |
@lidel Small nit: #8414 applies the same check for all 4 |
Version information:
Description:
Problem 1:
object patch
does not work with sharded dirsipfs object patch add-link
is not HAMT-awarehamt-sharded-directory
hamt-sharded-directory
Details / Repro
Given this specific HAMT directory (note
stript.js
being already present):Really confusing thing happens when I attempt to
ipfs object patch add-link
above directory to add a new CID (bafkreidfofyuw4ywqwjjdgxyhjictt7f2iufxto2v5n4rnm4atp57ajjne
) using already existing namescript.js
, and then inspect result via CLI:Namely, unexpected part is
ript.js
:Problem 2:
object patch
does not produce sharded dirs(This requires Problem 1 to be fixed first)
Patching a regular dir and adding new items to it means a block can grow indefinitely.
This is a separate problem, because while everything "works fine locally", the block grows to the point (>1MB) where it can't be exchanged over bitswap, effectively making it unavailable to other peers.
The fix here is to detect when a newly produced dir is over the limit of the maximum block that can be sent over bitswap sesssion, and re-create it using HAMT sharding, and return a CID of
hamt-sharded-directory
.The text was updated successfully, but these errors were encountered: