You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
The lotus-soup testground end-to-end test has to ability to send concurrent deals from multiple clients to the same miner. When that happens, sometimes some of the deals are blocked in StorageDealAwaitingPreCommit state, even though the sectors that the miner included those deals in, passed through all stages, up to the final Proving state.
It appears that the problem is with the SectorCommittedManager.OnDealSectorPreCommitted function as well as the messageEvents type. It appears that the miner processes PreCommit messages for some deals (as there are multiple concurrent deals submitted to it), but not for all deals, and the messages do not match the expected parameters, for example:
For every deal we inspect messages on chain, but somehow we don't see all messages at:
// Check through the deal IDs associated with this message
for _, did := range params.DealIDs {
if did == res.DealID {
Related (or a separate bug) is the fact that when creating a devnet with 3 clients and a total of 3 deals (1 per client) to 1 miner, we sometimes end up with 4 sectors, namely:
ID State OnChain Active Expiration Deals DealWeight
11 Proving YES NO 642417 (in 31 weeks 6 days) 1 7.974MiB
12 Proving YES NO 642417 (in 31 weeks 6 days) 1 7.974MiB
13 Proving YES NO 642417 (in 31 weeks 6 days) 1 7.974MiB
14 WaitDeals NO NO n/a CC
It is not clear why the miner creates sector 14, when we fired only 3 deals to it.
Describe the bug
The
lotus-soup
testground end-to-end test has to ability to send concurrent deals from multiple clients to the same miner. When that happens, sometimes some of the deals are blocked in StorageDealAwaitingPreCommit state, even though the sectors that the miner included those deals in, passed through all stages, up to the final Proving state.It appears that the problem is with the
SectorCommittedManager.OnDealSectorPreCommitted
function as well as themessageEvents
type. It appears that the miner processes PreCommit messages for some deals (as there are multiple concurrent deals submitted to it), but not for all deals, and the messages do not match the expected parameters, for example:For every deal we inspect messages on chain, but somehow we don't see all messages at:
At https://github.com/filecoin-project/lotus/blob/master/markets/storageadapter/ondealsectorcommitted.go , the
matched
callback is called for every PreCommit message, however thecalled
callback is not - so if the DealID does not match one of theparams.DealIDs
, the deal gets stuck.Version (run
lotus version
):4688da5
To Reproduce
Steps to reproduce the behavior:
Expected behavior
It is expected that all client deals succeed within 4-5min.
The text was updated successfully, but these errors were encountered: