feat(bench): enable sponsored session opens - #430
Conversation
Co-authored-by: Ludo Galabru <ludo.galabru@solana.org> Signed-off-by: Ludo Galabru <ludo.galabru@solana.org>
Co-authored-by: Ludo Galabru <ludo.galabru@solana.org> Signed-off-by: Ludo Galabru <ludo.galabru@solana.org>
Co-authored-by: Ludo Galabru <ludo.galabru@solana.org> Signed-off-by: Ludo Galabru <ludo.galabru@solana.org>
Co-authored-by: Ludo Galabru <ludo.galabru@solana.org> Signed-off-by: Ludo Galabru <ludo.galabru@solana.org>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Greptile SummaryThis change improves benchmark fixture recovery by journaling pending setup and teardown operations, but a confirmed transaction failure leaves its pending journal entry in place. Every later resume then stops on the same terminal failure, preventing automated reconciliation or cleanup until an operator manually alters the journal. Merge safety: do not merge until terminal transaction failures have a durable acknowledgement or recovery path. Confidence Score: 4/5The pending-transaction recovery path is unsafe for confirmed transaction failures because it cannot progress beyond the retained terminal journal record. A focused executable test exercised the recovery method twice against a local RPC response containing a confirmed instruction error. Both attempts failed on the same journal entry, directly confirming the affected behavior. Files Needing Attention: rust/bench/src/fixtures.rs needs a durable terminal-failure handling policy and regression coverage for repeated resume attempts.
What T-Rex did
|
| if let Some(status) = rpc.signature_status(signature).await? { | ||
| if let Some(error) = status.err { | ||
| bail!( | ||
| "pending {} transaction {} failed: {error:?}", | ||
| transaction.operation, | ||
| transaction.signature | ||
| ); | ||
| } |
There was a problem hiding this comment.
Failed transaction remains pending
When a submitted setup or teardown transaction has a confirmed error, this branch returns before removing or terminally acknowledging its pending journal record. Each subsequent resume reads the same record and fails again before reconciliation can continue, leaving funded fixture operations unable to recover without manual journal intervention. Persistently clear or mark the entry terminal before returning the error, and add coverage for repeated resumes.
Artifacts
Executed focused Rust harness for a confirmed failed pending transaction
- Temporary Rust test source uses a local JSON-RPC server that returns a confirmed transaction error and invokes reconciliation twice; it exercises the exact pending-journal path and was removed from tracked source afterward.
Focused test output showing a failed pending record remains across two resumes
- Captured output from the executed cargo test shows both reconciliation calls return the terminal transaction error while the pending journal count remains one after each call, proving the resume loop.
Summary
Verification
Stacked on feat/pay-bench-pingora so it includes the bounded fixture executor.