-
Notifications
You must be signed in to change notification settings - Fork 1k
Error Codes
Here is an overview of the most common error codes and possible fixes.
The block with height <i> found share <x> which is < than <y> of block <j> | Sometimes stratum inserts
2013-10-24 9:03:43 - FATAL --> E0001: The block with height 107643 found share 18 which is < than 19 of block 107642
The findblocks
cron has found a block which has a share ID lower than a previous block found. This can happen with fast block finding coins.
This is not a fatal error yet. findblocks
will try to autofix the issue by changing the shares. It will re-order the shares so a following run should not fail.
E0002: Failed to fetch both offending shares: <x> and <y>. . Block height: <n>
findblocks
was not able to fetch both shares that are causing the Out of Order problem. Sometimes, if blocks have been accounted for already, shares can't be fetched because they were deleted.
Since we already accounted for a block you will need to manually assign a share to this found block <n>
. Some things to keep in mind:
- Do not use a valid
upstream_result
share - Do not include a valid
upstream_result
share in that round - Use more than just a few shares if possible to make it a round
- Add valid block finder ID for block
<n>
- Add valid total shares for block
<n>
E0003: Failed to change shares order!
findblocks
tried to fix the shares order by updating both shares. This failed for some reason.
Nothing automated can be done here. You can go and check for those blocks in question which share_ids did not get updated. Once you find them you can manually switch the solution field between those two shares. That will bring the blocks back in order with the shares.
Failed to reset block in database: <n>
findblocks
successfully changed the out of order shares but failed to update the shares
, share_id
and account_id
information in the block <n>
.
You can manually reset that block and try again.
E0005: Unable to fetch blocks upstream share, aborted: <error>
None of the available shares were matched for this block. This should never happen due to the fallbacks implemented to match a block against a share. If you do have an issue, try assigning your own shares.
See E0002
E0015: Potential Double Payout detected
For each block that is going to be paid out, a new value is stored in the settings table: last_accounted_block_id
. Note that we store the ID of the previously paid out block, not the height. Usually this procedure is pretty solid, but occasionally users run into this error. Most of the time, it was caused by an orphaned block not marked as orphaned at the time the payouts started to run. This is not something MPOS can catch, we do run blockupdate prior to doing a payout, but with some coins blocks are not marked as orphaned in the upstream RPC so MPOS wouldn't know about it. Rare occasions showed that crons did not run through, then manual intervention is required.
If a payout failed in mid-run, first check for previous errors. If the block has not been confirmed yet, you could simply delete all transactions related to this block and try to re-run it. If the block did confirm and you have already paid out users, all you can do is mark it as accounted. The last block being paid out can be found in the settings table under last_accounted_block_id
. That block is probably not marked as accounted. Change the flag.
If users did not get paid out, the cron will not be able to recover if shares have been deleted already.
In case of an orphan block not marked properly, just re-run the cron with the force option.
-
- installation of Redis requires TCL 8.5 or newer TCL Download Page