From 6982efa287b862a6b3c41a6cd1d507c00726cd7d Mon Sep 17 00:00:00 2001 From: kant777 <61204489+kant777@users.noreply.github.com> Date: Tue, 23 Sep 2025 08:08:18 -0700 Subject: [PATCH 1/4] remove context timeouts --- cl/singlenode/payloadstore/postgres.go | 48 +++++++++++++------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/cl/singlenode/payloadstore/postgres.go b/cl/singlenode/payloadstore/postgres.go index e7bd56b89..c5e99142e 100644 --- a/cl/singlenode/payloadstore/postgres.go +++ b/cl/singlenode/payloadstore/postgres.go @@ -37,9 +37,9 @@ func NewPostgresRepository(ctx context.Context, dsn string, logger *slog.Logger) return nil, fmt.Errorf("failed to create postgres connection pool: %w", err) } - pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) - defer cancel() - if err := pool.Ping(pingCtx); err != nil { + // pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) + // defer cancel() + if err := pool.Ping(ctx); err != nil { pool.Close() l.Error("Failed to close database connection after error", "error", err) return nil, fmt.Errorf("failed to ping postgres: %w", err) @@ -62,9 +62,9 @@ func NewPostgresRepository(ctx context.Context, dsn string, logger *slog.Logger) CREATE INDEX IF NOT EXISTS idx_block_height ON execution_payloads(block_height); CREATE INDEX IF NOT EXISTS idx_inserted_at ON execution_payloads(inserted_at); ` - execCtx, execCancel := context.WithTimeout(ctx, 10*time.Second) - defer execCancel() - if _, err := pool.Exec(execCtx, schemaCreationQuery); err != nil { + //execCtx, execCancel := context.WithTimeout(ctx, 10*time.Second) + //defer execCancel() + if _, err := pool.Exec(ctx, schemaCreationQuery); err != nil { pool.Close() l.Error("Failed to close database connection after error", "error", err) return nil, fmt.Errorf("failed to create execution_payloads table: %w", err) @@ -81,9 +81,9 @@ func NewPostgresFollower(ctx context.Context, dsn string, logger *slog.Logger) ( return nil, fmt.Errorf("failed to open postgres connection: %w", err) } - pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) - defer cancel() - if err := pool.Ping(pingCtx); err != nil { + //pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) + //defer cancel() + if err := pool.Ping(ctx); err != nil { pool.Close() return nil, fmt.Errorf("failed to ping postgres: %w", err) } @@ -103,10 +103,10 @@ func (r *PostgresRepository) SavePayload(ctx context.Context, info *types.Payloa inserted_at = NOW(); ` - insertCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - defer cancel() + //insertCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + //defer cancel() - result, err := r.pool.Exec(insertCtx, query, info.PayloadID, info.ExecutionPayload, info.BlockHeight) + result, err := r.pool.Exec(ctx, query, info.PayloadID, info.ExecutionPayload, info.BlockHeight) if err != nil { r.logger.Error( "Failed to insert payload into postgres", @@ -146,10 +146,10 @@ func (r *PostgresRepository) GetPayloadsSince(ctx context.Context, sinceHeight u LIMIT $2; ` - queryCtx, cancel := context.WithTimeout(ctx, 10*time.Second) - defer cancel() + //queryCtx, cancel := context.WithTimeout(ctx, 10*time.Second) + //defer cancel() - rows, err := r.pool.Query(queryCtx, query, sinceHeight, limit) + rows, err := r.pool.Query(ctx, query, sinceHeight, limit) if err != nil { r.logger.Error( "Failed to query payloads since height", @@ -207,11 +207,11 @@ func (r *PostgresRepository) GetPayloadByHeight(ctx context.Context, height uint WHERE block_height = $1; ` - queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - defer cancel() + //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + //defer cancel() var payload types.PayloadInfo - err := r.pool.QueryRow(queryCtx, query, height).Scan( + err := r.pool.QueryRow(ctx, query, height).Scan( &payload.PayloadID, &payload.ExecutionPayload, &payload.BlockHeight, @@ -249,11 +249,11 @@ func (r *PostgresRepository) GetLatestPayload(ctx context.Context) (*types.Paylo LIMIT 1; ` - queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - defer cancel() + //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + //defer cancel() var payload types.PayloadInfo - err := r.pool.QueryRow(queryCtx, query).Scan( + err := r.pool.QueryRow(ctx, query).Scan( &payload.PayloadID, &payload.ExecutionPayload, &payload.BlockHeight, @@ -288,11 +288,11 @@ func (r *PostgresRepository) GetLatestHeight(ctx context.Context) (uint64, error ORDER BY block_height DESC LIMIT 1; ` - queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - defer cancel() + //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + //defer cancel() var h int64 - err := r.pool.QueryRow(queryCtx, query).Scan(&h) + err := r.pool.QueryRow(ctx, query).Scan(&h) if err != nil { if err == sql.ErrNoRows { // Empty table -> new chain return 0, nil From 56774a9e735e4fdce16f2328f908022de9d1d099 Mon Sep 17 00:00:00 2001 From: kant Date: Tue, 23 Sep 2025 08:17:53 -0700 Subject: [PATCH 2/4] removing context timeouts --- cl/singlenode/payloadstore/postgres.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cl/singlenode/payloadstore/postgres.go b/cl/singlenode/payloadstore/postgres.go index c5e99142e..7f3f2ee07 100644 --- a/cl/singlenode/payloadstore/postgres.go +++ b/cl/singlenode/payloadstore/postgres.go @@ -5,7 +5,7 @@ import ( "database/sql" "fmt" "log/slog" - "time" + // "time" "github.com/jackc/pgx/v5/pgxpool" _ "github.com/lib/pq" From 15f04714257c46923a2d59fb3a073c42abcfd7cc Mon Sep 17 00:00:00 2001 From: kant Date: Tue, 23 Sep 2025 11:51:07 -0700 Subject: [PATCH 3/4] removing context timeouts --- cl/singlenode/singlenode.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cl/singlenode/singlenode.go b/cl/singlenode/singlenode.go index fbbde649d..2da399f34 100644 --- a/cl/singlenode/singlenode.go +++ b/cl/singlenode/singlenode.go @@ -367,7 +367,7 @@ func (app *SingleNodeApp) produceBlock() error { if app.payloadRepo != nil { // Save payload to repository - saveCtx, saveCancel := context.WithTimeout(app.appCtx, 200*time.Millisecond) + saveCtx, saveCancel := context.WithTimeout(app.appCtx, 30*time.Second) defer saveCancel() saveStart := time.Now() From b0576c3d3d9a0f103ffc4fed1f906f429367b84b Mon Sep 17 00:00:00 2001 From: kant Date: Tue, 23 Sep 2025 21:19:21 -0700 Subject: [PATCH 4/4] removing contexts since the timeout is set in the parent context --- cl/singlenode/payloadstore/postgres.go | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/cl/singlenode/payloadstore/postgres.go b/cl/singlenode/payloadstore/postgres.go index 7f3f2ee07..0c2ef4773 100644 --- a/cl/singlenode/payloadstore/postgres.go +++ b/cl/singlenode/payloadstore/postgres.go @@ -5,7 +5,6 @@ import ( "database/sql" "fmt" "log/slog" - // "time" "github.com/jackc/pgx/v5/pgxpool" _ "github.com/lib/pq" @@ -37,8 +36,6 @@ func NewPostgresRepository(ctx context.Context, dsn string, logger *slog.Logger) return nil, fmt.Errorf("failed to create postgres connection pool: %w", err) } - // pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) - // defer cancel() if err := pool.Ping(ctx); err != nil { pool.Close() l.Error("Failed to close database connection after error", "error", err) @@ -62,8 +59,6 @@ func NewPostgresRepository(ctx context.Context, dsn string, logger *slog.Logger) CREATE INDEX IF NOT EXISTS idx_block_height ON execution_payloads(block_height); CREATE INDEX IF NOT EXISTS idx_inserted_at ON execution_payloads(inserted_at); ` - //execCtx, execCancel := context.WithTimeout(ctx, 10*time.Second) - //defer execCancel() if _, err := pool.Exec(ctx, schemaCreationQuery); err != nil { pool.Close() l.Error("Failed to close database connection after error", "error", err) @@ -81,8 +76,6 @@ func NewPostgresFollower(ctx context.Context, dsn string, logger *slog.Logger) ( return nil, fmt.Errorf("failed to open postgres connection: %w", err) } - //pingCtx, cancel := context.WithTimeout(ctx, 5*time.Second) - //defer cancel() if err := pool.Ping(ctx); err != nil { pool.Close() return nil, fmt.Errorf("failed to ping postgres: %w", err) @@ -103,9 +96,6 @@ func (r *PostgresRepository) SavePayload(ctx context.Context, info *types.Payloa inserted_at = NOW(); ` - //insertCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - //defer cancel() - result, err := r.pool.Exec(ctx, query, info.PayloadID, info.ExecutionPayload, info.BlockHeight) if err != nil { r.logger.Error( @@ -146,9 +136,6 @@ func (r *PostgresRepository) GetPayloadsSince(ctx context.Context, sinceHeight u LIMIT $2; ` - //queryCtx, cancel := context.WithTimeout(ctx, 10*time.Second) - //defer cancel() - rows, err := r.pool.Query(ctx, query, sinceHeight, limit) if err != nil { r.logger.Error( @@ -207,9 +194,6 @@ func (r *PostgresRepository) GetPayloadByHeight(ctx context.Context, height uint WHERE block_height = $1; ` - //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - //defer cancel() - var payload types.PayloadInfo err := r.pool.QueryRow(ctx, query, height).Scan( &payload.PayloadID, @@ -249,9 +233,6 @@ func (r *PostgresRepository) GetLatestPayload(ctx context.Context) (*types.Paylo LIMIT 1; ` - //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - //defer cancel() - var payload types.PayloadInfo err := r.pool.QueryRow(ctx, query).Scan( &payload.PayloadID, @@ -288,8 +269,6 @@ func (r *PostgresRepository) GetLatestHeight(ctx context.Context) (uint64, error ORDER BY block_height DESC LIMIT 1; ` - //queryCtx, cancel := context.WithTimeout(ctx, 30*time.Second) - //defer cancel() var h int64 err := r.pool.QueryRow(ctx, query).Scan(&h)