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

rosetta-cli check with --lookup-balance-block=false doesn't find reconciliation errors unless --interesting-accounts is given #65

Closed
metajack opened this issue Jul 14, 2020 · 1 comment · Fixed by #66 or coinbase/mesh-cli#56
Labels
bug Something isn't working

Comments

@metajack
Copy link

Describe the bug

In testing of a Rosetta implementation on a blockchain that should contain reconciliation errors, the check command fails to find the errors unless --interesting-accounts is used. This seems to be caused by the reconciliation checks becoming overly delayed so as to never happen.

To Reproduce

Run rosetta-cli check --lookup-balance-by-block=false --interesting-accounts interesting.json and watch it find reconciliation errors.

Run rosetta-cli check --lookup-balance-by-block=false and let it spin forever and never find any reconciliation problems.

Expected behavior

I expect the same errors to be found, though perhaps in different amounts of time.

@metajack metajack added the bug Something isn't working label Jul 14, 2020
@patrick-ogrady
Copy link
Contributor

patrick-ogrady commented Jul 14, 2020

Thanks for posting this issue @metajack! You found a very annoying bug that only affects check when --lookup-balance-by-block=false.

This issue can occur if an account (in this case, ones that have reconciliation issues) are skipped while check is catching up to tip and never show up in blocks again.

When accounts are skipped, they are not added to the inactive reconciliation queue (either initially or when taken from the inactive queue 😬 ): https://github.com/coinbase/rosetta-sdk-go/blob/6fcf086bc01df22380c3809332641cb870683d9b/reconciler/reconciler.go#L446-L456

This behavior also occurs if we are less than the highWaterMark: https://github.com/coinbase/rosetta-sdk-go/blob/6fcf086bc01df22380c3809332641cb870683d9b/reconciler/reconciler.go#L275-L277

We will work a fix in for this very soon!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment