Skip to content

Conversation

@JoeHowarth
Copy link
Contributor

@JoeHowarth JoeHowarth commented Oct 23, 2025

This PR moves the indexer read-back verification to an asynchronous task to avoid blocking the main indexing flow. The change spawns a tokio task to perform the validation check for the first transaction in a block, allowing the indexing operation to complete without waiting for the verification to finish.

@Copilot Copilot AI review requested due to automatic review settings October 23, 2025 18:30
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR moves the indexer read-back verification to an asynchronous task to avoid blocking the main indexing flow. The change spawns a tokio task to perform the validation check for the first transaction in a block, allowing the indexing operation to complete without waiting for the verification to finish.

Key Changes:

  • Wrapped the transaction verification logic in a tokio::spawn async task
  • Updated error logging format from {e} to {e:?} for better debug output

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +196 to +198
tokio::spawn({
let tx_index_archiver = tx_index_archiver.clone();
async move {
Copy link

Copilot AI Oct 23, 2025

Choose a reason for hiding this comment

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

The spawned task does not handle potential panics or task failures. Consider using a named task handle or adding error logging if the spawned task fails, as errors in detached tasks can be silently lost.

Copilot uses AI. Check for mistakes.
Comment on lines +196 to +199
tokio::spawn({
let tx_index_archiver = tx_index_archiver.clone();
async move {
if let Some(tx) = first {
Copy link

Copilot AI Oct 23, 2025

Choose a reason for hiding this comment

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

The spawned task captures first by move, but first may be used after this point in the parent function. Verify that first is not accessed after line 231, or clone it before spawning if needed.

Suggested change
tokio::spawn({
let tx_index_archiver = tx_index_archiver.clone();
async move {
if let Some(tx) = first {
let first_for_spawn = first.clone();
tokio::spawn({
let tx_index_archiver = tx_index_archiver.clone();
async move {
if let Some(tx) = first_for_spawn {

Copilot uses AI. Check for mistakes.
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