-
Notifications
You must be signed in to change notification settings - Fork 21
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
Test I/O failures #349
Comments
Out of interest, what are we intending the code to do here? I guess there are two main faults: wrong data returned; and some unknown read/write failure. For "wrong data returned" I guess all bets are off (so, use checksums or similar). For the "unknown failure", I guess you should probably stop, or possibly ignore and continue (probably not so good)? |
For "wrong data returned"-type failures, we probably already do about as much as we can: values are stored with their hashes in the pack file, so any invalid data returned by Index (e.g. incorrect file offsets) will generally translate to "unexpected hash" failures in Irmin almost immediately. The more serious class of unsound behaviour is false-positives / false-negatives for I think in the case of "unknown failures" we'd ideally want the code to stop, but we can test two properties of the stop:
As it stands, (1) is certainly not the case. IIRC, starting a Tezos node with the wrong Relatedly, we should probably take a more critical look at the various With regard to (2), we've had bugs due to unexpected exceptions in an asynchronous worker thread not being properly propagated to the parent (including a particularly nasty one due to |
Using for instance a fault injection library https://github.com/CraigFe/ocaml-fiu.
The text was updated successfully, but these errors were encountered: