-
-
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
fix(fuse): path parsing #10243
fix(fuse): path parsing #10243
Conversation
I confirmed the path fix works, I am able to get data from a $ GOLOG_LOG_LEVEL="error,fuse/ipfs=debug" ipfs daemon --mount
...
$ cat /ipfs/bafkreide4y52wsmgpu2zulfqnj6iswp4vcng4jyujounbymeq3h2rexzk4
test fuse but if CID is
It seems to be caused by (1) failing due to (2):
but I did not debug deeper (might be similar to #9044, #10141 landed in September) @hacdias thoughts? Maybe timebox this to 1h and if this turns out to be a time sink, ok to push this fix to 0.26? |
@lidel I tried a few things, including playing with different versions of dependencies, but I wasn't able to figure out the source issue within an hour. Nevertheless, I also checked out Could you try reproducing with v0.23.0 and updating the title of #10242 if that's the case? It probably goes further back, but to build previous versions we need an older Go version. I may try that later. |
I tested it. This patch makes fuse work for me again. |
@bmwiedemann it does fix part of the problem, but sadly not the whole problem. @lidel maybe we can squeeze the path prefix fix for the 0.25.0 and then figure out what's wrong with the dag-pb handling separately? Or do you think it's better to hold and fix both at once., |
commit a7c6518 was the one that broke FUSE (path prefix part). |
@bmwiedemann yes, we are aware. But we still don't know exactly what's causing the dag-pb handling problem. |
My tests show that the dag-pb handling problem already existed in v0.22.0 and v0.23.0 so maybe the fix was just incomplete. I used this test for these: kubo/cmd/ipfs/ipfs daemon --mount & sleep 5
cat /ipfs/QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o | wc -c
cat /ipfs/bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi | wc -c |
I tried applying this patch to Kubo v0.24.0 in Nixpkgs. With the patch the NixOS test works again. So this fixes #10242 and returns the FUSE functionality to how it was since Kubo v0.13.0. But if I remove the workaround you can see in the test, the test fails again and I get "ERROR fuse/ipfs readonly/readonly_unix.go:113 could not convert protobuf or raw node: expected protobuf dag node" as described in #9044. This has been like that since Kubo v0.13.0, even Kubo v0.23.0 did not work. |
@hacdias I think it is better to hold and fix both at once, 0.25 would be nice, but even if fix slips to 0.26, holding is still a lesser evil imo: If FUSE does not work at all, then users see it and can stay on older version. If it is working "sometimes" (only for One thing we should also fix here, is adding tests for both |
This is still not merged in 0.27 - is there a timeline when we will see working ipfs FUSE again? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Discussed with @hacdias and decided to merge this (only path fix) + document remaining work in #9044 (comment).
This PR fixes missing prefix (closes #10242).