-
Notifications
You must be signed in to change notification settings - Fork 1.4k
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
Backfill stream returns after first iteration when parallelism is set to 1 #13279
Comments
these two are conflicting, which one is it? @0xalex88 to me it feels like you're mixing your actual issue together with this repro? but I'm not exactly sure @shekhirin the reason this test setup fails is because we don't have that block 1 in the test database setup hence the stream returns an error. so imo this repro seems unrelated |
@shekhirin the second repro is a logic bug if parallelism is one because we can end up returning None here reth/crates/exex/exex/src/backfill/stream.rs Line 113 in 37f3933
but never spawn the second task for block 2 |
in the first quote I'm mentioning my use case, where backfilling from block 0 to block 13M (chain tip) spawns a task with range 0..=50k but nothing more, so the remaining 50k-13M blocks are not backfilled in the second quote I'm pointing out the case where the test fails when parallelism = 2, which is correct (because there's one more block range to process) but the same test doesn't fail (even if it should) when parallelism = 1 |
gotcha, was a bit confused at first, maybe because it's late here. there's indeed an issue with parallelism 1 |
it wasn't very clear, my bad! |
Describe the bug
Not sure if it's expected but I was trying to use parallelism = 1 in a backfill job and in that case, the stream ends after returning a single chunk, instead of continuing executing the next chunk in the full backfill range.
Steps to reproduce
Simplest reproduction I've found is in the test_batch test, if you change the code to:
so backfilling one block at a time it fails because
assert!(backfill_stream.next().await.is_none())
is not none (as expected) however when usingso adding the stream parallelism 1,
next()
returns none, ending the streamNode logs
Platform(s)
No response
Container Type
Not running in a container
What version/commit are you on?
v1.1.3
What database version are you on?
2
Which chain / network are you on?
dev
What type of node are you running?
Archive (default)
What prune config do you use, if any?
No response
If you've built Reth from source, provide the full command you used
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: