Skip to content

Try reduced power proof on CRCError - #11

Merged
gwoltman merged 1 commit into
gwoltman:masterfrom
Quantum64:master
Aug 22, 2026
Merged

Try reduced power proof on CRCError#11
gwoltman merged 1 commit into
gwoltman:masterfrom
Quantum64:master

Conversation

@Quantum64

@Quantum64 Quantum64 commented Aug 22, 2026

Copy link
Copy Markdown

Proof generation can fail in two different ways. If residue corruption happens in memory before CRC generation, then the proof will generate but fail validation. If residue corruption happens any time after CRC generation, CRCError is raised before a proof is even generated.

CRC errors correctly reduce proof power when loading saved state in ProofSet::effectivePower, but not in proof generation, where they currently crash the process. We should handle both validation failures and CRC errors during proof generation in the same way via power reduction.

Comment thread src/Gpu.cpp
return proofFile;
}
} catch (const CRCError&) {
break;

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We exit to the outer for ( ; ; ) loop so that proofSet.reducePower() runs right away. Retrying via the inner loop is hopeless because this kind of error can't be caused by random GPU memory corruption like a verification error might be.

@gwoltman
gwoltman merged commit 2379071 into gwoltman:master Aug 22, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants