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
The retrieval adapters implementation of UnsealSector depends on GetSectorInfo, which can return a sector info with no CommD.
To our knowledge this only happens if the sector is not finished sealing. We handle this by just (passing an undefined CommD to ReadPiece)[https://github.com/filecoin-project/lotus/blob/master/markets/retrievaladapter/provider.go#L66) (the PR we changed this was here -- previously we were getting panics from nil pointer deferencing)
The implementation of ReadPiece is here. ReadPiece only uses CommD when it needs to unseal the sector. We believe that any time we get a nil CommD from GetSectorInfo it means that sealing isn't finished, so we should have unsealed piece lying around and we shouldn’t need CommD.
However, we're seeing unseal hangs in certain of multi-miner setups.
The retrieval adapters implementation of UnsealSector depends on GetSectorInfo, which can return a sector info with no CommD.
To our knowledge this only happens if the sector is not finished sealing. We handle this by just (passing an undefined CommD to ReadPiece)[https://github.com/filecoin-project/lotus/blob/master/markets/retrievaladapter/provider.go#L66) (the PR we changed this was here -- previously we were getting panics from nil pointer deferencing)
The implementation of ReadPiece is here. ReadPiece only uses CommD when it needs to unseal the sector. We believe that any time we get a nil CommD from GetSectorInfo it means that sealing isn't finished, so we should have unsealed piece lying around and we shouldn’t need CommD.
However, we're seeing unseal hangs in certain of multi-miner setups.
As a starting point, we should add an error check if we get to the point of unsealing but https://github.com/filecoin-project/lotus/blob/master/extern/sector-storage/manager.go#L260 but have an undefined commD -- currently we just drop down all the way to the Rust code without this check which could have unpredictable results
The text was updated successfully, but these errors were encountered: