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 pin hangs despite available providers for content #4394
Comments
|
When in doubt, blame bitswap. |
|
I thought this was just me (though I'm not using ipfs-cluster). Glad it isn't! |
|
I'm not 100% sure if this is the same thing since in this case I encountered it during a |
This deadlock would happen when calling SessionsForBlock (holding bitswap.sessLk) while the session's main loop was trying to deregister the session (taking bitswap.sessLk). I've also defensively added selects on contexts for two other channel writes just in case. fixes #4394 ...well, it fixes *a* deadlock showing up in that issue, there may be more. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
|
I can confirm, this is (well, looks like) a bitswap deadlock on the |
This deadlock would happen when calling SessionsForBlock (holding bitswap.sessLk) while the session's main loop was trying to deregister the session (taking bitswap.sessLk). I've also defensively added selects on contexts for two other channel writes just in case. fixes #4394 ...well, it fixes *a* deadlock showing up in that issue, there may be more. License: MIT Signed-off-by: Steven Allen <steven@stebalien.com>
|
Thanks @Stebalien , happy to give it a go after it's merged or before, how ever you want it |
|
@hsanjuan It's been merged. |
|
I'm going to leave this open until you confirm that it has been fixed. |
|
hey @Stebalien , thanks! I have run the tests a couple of times, and things have improved significantly, the only failure is not related I think. I think the issues have been fixed. |
hsanjuan commentedNov 15, 2017
Version information: go-ipfs version: 0.4.13-rc1-5d23fd7 (docker:master)
Type: Bug
Severity: Medium
Description:
We have discovered that some of our Kubernetes-ipfs/ipfs-cluster tests fail because of a hanging ipfs-pin-add operations.
The problem affects at least 0.4.11, 0.4.12 and 5d23fd7 (master).
Whenever reproduced, the output of
ipfs diag cmds -vis like:Note that a
pin ls --recursiverequest happening a few seconds after the hangingpin addone seems blocked too, but doing a manualpin lsrequest returns fine while in this situation. The given hash has providers as found byipfs dht findprovs(2 at least).Aborting
go-ipfsproduces the following stack trace: https://ipfs.io/ipfs/QmeAZo8H5QiRNWBxw89YE8WMzJnNc46cpYrzFkMVTSqVeSThe tests which usually show this behaviour do the following more or less:
pin addipfs request)The result is that the CID it is not pinned, but "pinning" in some ipfs daemon, despite considerable delays. The problem shows up randomly and is not 100% reproducible. The cluster size is 5, and containers are running with minikube (locally). So network conditions are unlikely to be bad.
Bitswap issue? Pin locking issue? Any pointers are welcome...
The text was updated successfully, but these errors were encountered: