Skip to content
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

proving check command for lotus miner must be ran with slow flag #9786

Closed
8 of 18 tasks
travisperson opened this issue Dec 2, 2022 · 2 comments
Closed
8 of 18 tasks
Labels
kind/bug Kind: Bug

Comments

@travisperson
Copy link
Contributor

travisperson commented Dec 2, 2022

Checklist

  • This is not a security-related bug/issue. If it is, please follow please follow the security policy.
  • This is not a question or a support request. If you have any lotus related questions, please ask in the lotus forum.
  • This is not a new feature request. If it is, please file a feature request instead.
  • This is not an enhancement request. If it is, please file a improvement suggestion instead.
  • I have searched on the issue tracker and the lotus forum, and there is no existing related issue or discussion.
  • I am running the Latest release, or the most recent RC(release canadiate) for the upcoming release or the dev branch(master), or have an issue updating to any of these.
  • I did not make any code changes to lotus.

Lotus component

  • lotus daemon - chain sync
  • lotus miner - mining and block production
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt)
  • lotus miner/market - storage deal
  • lotus miner/market - retrieval deal
  • lotus miner/market - data transfer
  • lotus client
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

Lotus Version

Daemon:  1.18.0+calibnet+git.bd10bdf99+api1.5.0
Local: lotus-miner version 1.18.0+calibnet+git.bd10bdf99

Describe the Bug

Running lotus-miner proving check against a valid deadline partition fails with the error ERROR: rg is nil when the --slow flag is not provided.

The storage miner API does not provided a storiface.RGetter when the expensive parameter for CheckProvable is false.

lotus/node/impl/storminer.go

Lines 1298 to 1325 in bd10bdf

func (sm *StorageMinerAPI) CheckProvable(ctx context.Context, pp abi.RegisteredPoStProof, sectors []storiface.SectorRef, expensive bool) (map[abi.SectorNumber]string, error) {
var rg storiface.RGetter
if expensive {
rg = func(ctx context.Context, id abi.SectorID) (cid.Cid, bool, error) {
si, err := sm.Miner.SectorsStatus(ctx, id.Number, false)
if err != nil {
return cid.Undef, false, err
}
if si.CommR == nil {
return cid.Undef, false, xerrors.Errorf("commr is nil")
}
return *si.CommR, si.ReplicaUpdateMessage != nil, nil
}
}
bad, err := sm.StorageMgr.CheckProvable(ctx, pp, sectors, rg)
if err != nil {
return nil, err
}
var out = make(map[abi.SectorNumber]string)
for sid, err := range bad {
out[sid.Number] = err
}
return out, nil
}

This flag should just not exist, or a "fast" storiface.RGetter function needs to be provided when expensive is false.

Logging Information

sudo lotus-miner proving check 0
ERROR: rg is nil

Repo Steps

No response

@Reiers
Copy link

Reiers commented Dec 3, 2022

PR: #9643 - it was my understanding that the issue above was fixed.
(I have tested the PR, and it does work on master)
Similar issue #8560
I will leave it open, if this is something else. 👍

@Reiers Reiers removed the need/triage label Dec 3, 2022
@travisperson
Copy link
Contributor Author

Looks the same, not sure why that didn't show up when I searched issues, I swore I just searched proving check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Kind: Bug
Projects
None yet
Development

No branches or pull requests

2 participants