-
Notifications
You must be signed in to change notification settings - Fork 1.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
[Deal Making Issue] Storage AND Retrieval deals time out waiting for an Accept message #6343
Comments
cc @jacobheun @whyrusleeping @mgoelzer @dirkmc . |
Note: Need to confirm that this is indeed a Markets v1.3.0/data-transfer v1.5.0 regression by seeing repeated success running a Lotus v1.9.0 client against a Lotus v1.9.0 miner. |
I think I've identified a strong root cause for this bug: For Storage deals:
Here's the logs a miner sent me on #minerx which shows something like this happening on the mainnet:
|
As an aside, we should also fix the following problems I saw in the code while debugging the above:
|
Great work Aarsh 👍 The theory that graphsync requests for data are getting backed up on the client makes sense, and is behaviour that we've seen cause other issues in the past, so I have high confidence that is the root cause here. |
Yes, this theory makes sense to me, I think, for Storage Deals. Something to know about the simultaneous response limit:
General thoughts:
|
Basic Information
go-fil-markets
v1.3.0 andgo-data-transfer
v1.5.0, we ‘ve introduced a “channel monitor” that times out storage and retrieval deals if the other peer dosen’t send anAccept
message before a stipulated timeout. That happens here.Describe the problem
For Storage Deals
This describes an occurrence of this problem when @whyrusleeping ran a storage deal via Estuary(depending on
go-data-transfer
v1.5.0) against @magik6k 's miner(depending on Markets v1.3.0 and data-transfer v1.5.0):Accepted
response as a part of the Graphsync request the provider will send to the client.Accept
OR if the client failed to process it correctly after receiving it.For Retrieval Deals
Accept
response is either NOT sent by the Miner in the initial Graphsync response or is NOT processed correctly by the Client.Accept
message would solve the issue but we've seen instances where theAccept
message simply does NOT arrive from the miner.Accept
message as part of the Graphsync response to the clien's Graphsync request is at https://github.com/filecoin-project/go-data-transfer/blob/3a130c3f4d33e422b08a3175748e0c718156b6a5/transport/graphsync/graphsync.go#L446.Accept
message is at https://github.com/filecoin-project/go-data-transfer/blob/3a130c3f4d33e422b08a3175748e0c718156b6a5/impl/events.go#L185.The text was updated successfully, but these errors were encountered: