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

DisputWindowPost executes successfully but without a reward! #11703

Closed
4 of 11 tasks
arvin-lau opened this issue Mar 11, 2024 · 4 comments
Closed
4 of 11 tasks

DisputWindowPost executes successfully but without a reward! #11703

arvin-lau opened this issue Mar 11, 2024 · 4 comments
Labels
kind/bug Kind: Bug

Comments

@arvin-lau
Copy link

Checklist

  • This is not a security-related bug/issue. If it is, please follow please follow the security policy.
  • 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, 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 fvm/fevm - Lotus FVM and FEVM interactions
  • lotus miner/worker - sealing
  • lotus miner - proving(WindowPoSt/WinningPoSt)
  • lotus JSON-RPC API
  • lotus message management (mpool)
  • Other

Lotus Version

Daemon:  1.25.2+mainnet+git.60a61b483.dirty+api1.5.0
Local: lotus version 1.25.2+mainnet+git.60a61b483.dirty

Repro Steps

https://filfox.info/en/message/bafy2bzacedeupksdrvt7ujn62xrk6peinaa27czhakkr3osyut2jzqym4pihq?t=1

Describe the Bug

Sending DisputWindowPost succeeded but no reward, the last DisputWindowPust succeeded with a reward, I'm wondering if the reward was canceled or if there was a problem with the lotus

Logging Information

https://filfox.info/en/message/bafy2bzacedeupksdrvt7ujn62xrk6peinaa27czhakkr3osyut2jzqym4pihq?t=1
@Stebalien
Copy link
Member

The reward comes from the Miner Actor's balance, and this Miner had no balance. It looks like they:

  1. Submitted a bad window post.
  2. Terminated the sectors in that window post (burning some FIL, but also unlocking their pledge).
  3. Withdrew their pledge.

This is definitely an... interesting edge case. But there isn't really a way to "pay out" in this case because there simply isn't any FIL.

@arvin-lau
Copy link
Author

The reward comes from the Miner Actor's balance, and this Miner had no balance. It looks like they:

  1. Submitted a bad window post.
  2. Terminated the sectors in that window post (burning some FIL, but also unlocking their pledge).
  3. Withdrew their pledge.

This is definitely an... interesting edge case. But there isn't really a way to "pay out" in this case because there simply isn't any FIL.

Thank you for your reply.

@Stebalien
Copy link
Member

Closing in favor of #11715 (with a description of how this should be fixed).

@Stebalien
Copy link
Member

And thanks for reporting this!

@rjan90 rjan90 added this to FilOz Mar 13, 2024
@rjan90 rjan90 moved this to ☑️Done (Archive) in FilOz Mar 13, 2024
Stebalien pushed a commit that referenced this issue Apr 10, 2024
…miner has no balance to pay rewards (#11800)

In #11703, a user came across an edge case where an SP:

1. Submitted a bad PoSt.
2. Terminated their sectors.
3. Withdrew all funds (after paying all fees).

This left the SP's miner actor with a bad proof but without any funds to pay for disputes. On the other hand, given that the sectors have been terminated and termination fees were already paid we don't really care about fining the SP for the bad proofs anyways.

But... we still don't want to submit dispute messages in this case because doing so isn't free and doesn't really serve a purpose.

So add a check to fetch miner wallet balance and only send disputing messages if balance is non zero.

fixes #11715
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Kind: Bug
Projects
Status: ☑️ Done (Archive)
Development

No branches or pull requests

2 participants