-
Notifications
You must be signed in to change notification settings - Fork 43
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
ZKR_DB_KEY_NOT_FOUND while proving batch 75948 on Bali #1482
Comments
Some notes from the investigation so far: The prover logs show this as the missing information from the witness:
I ran a binary search for when this slot was changed on Bali and it was updated in block 6958864. This block belongs to batch 74981, so 966 batches prior to the one the prover is having trouble with which seems strange that it would need this slot at all. My hunch at the moment is that this issue is somehow related to the info tree index changes. The problem on the prover stems from the changeL2Block routine which seems to confirm this theory. |
Agreed to close this issue on 11/19. |
Reopening the issue as it happened again on Bali for batch 79374. First batch on forkID 12, but this happened previously on forkID 11, so it looks like it is not related. Prover logs and witness can be found here: https://gist.github.com/ToniRamirezM/32c38a587cbd2eae9a740caab8d9611b |
Moving this from current milestone as not required for milestone. |
Hi @fractasy did you gain nay more insight on this issue re thread here https://0xpolygon.slack.com/archives/C05SVKVLZ1A/p1733940581915119 cc: @ToniRamirezM |
During OKX upgrade to Fork 13, the first batch after the upgrade caused the same error. Again, adding the L2 GER contract address in the I think knowing it seems to always happen after a fork upgrade gives more information an opens a new investigation path. |
My hunch here is that the problem relates to an info tree index change after the network has been offline for a little while. Whilst the network is offline some more info tree index changes reach a finalised state so the sequencer immediately makes a jump on the first block it creates. Why this creates a problem in the witness I'm not sure of, but it's a starting point for investigation. |
Comments from @krlosMata: I think the issue could be related to the re-usage of the l1InfoTree Index, as @hexoscott mention. If the same A fix could be to always include that KEY when there is a != 0 l1InfoTreeIndex, even if it is re-used |
I believe this is the issue based on the feebback from krlosMata. the index re-use is only a thing when migrating an RPC datadir to the sequencer where the last key is used again so that the sequencer can have it's own record of where it's at. No problem protocol wise, but because we don't write it to storage the 2nd time around it's missing in the witness. The good news is that we can fix this in place using historical data to ensure the missing key does indeed show after making some code changes. |
It looks like an issue with the witness generation. It was detected on CDK-Erigon v2.60.0-beta9.
https://app.datadoghq.com/logs?query=host%3Agke-zkevm-bali-pool-prover-8de10c2f-tgnj.europe-west1-d.c.prj-polygonlabs-zkevm-test.internal%20service%3Azkevm-bali%20container_id%3Abb3ef65d6725c7bde954e60429e7e1384fa290cddc5ec20e034910f770c2a0aa%20filename%3A1.log&agg_m=count&agg_m_source=base&agg_t=count&cols=host%2Cservice&context_event=AZMmpCZWAAAq-BxZD_qnuQAK&fromUser=true&messageDisplay=inline&refresh_mode=sliding&storage=hot&stream_sort=time%2Cdesc&to_event=AwAAAZMmpCNv1GOUtgAAABhBWk1tcENaV0FBQXEtQnhaRF9xbnVRQVIAAAAkMDE5MzI2YTctNzU1Zi00NmMzLTkxNTQtZDU4OWY0YjI2ODE2AAAUaw&viz=&from_ts=1731519811468&to_ts=1731520111472&live=false
The text was updated successfully, but these errors were encountered: