Skip to content

[submit] No reconnection logic on connection drop — submitter dies silently under load #200

@obchain

Description

@obchain

Refs #44

File: crates/charon-executor/src/submit.rs

Problem

Submitter::connect creates a single provider/connection pool. No reconnect on drop. Under high volatility, private RPC endpoint load is highest exactly when liquidations are most valuable. Connection drops in that window leave the submitter dead — every submit() returns the same transport error indefinitely. With no Prometheus metrics yet (PR #50), no alert fires.

Fix

Either:
(a) Internal one-shot reconnect inside submit() before returning ConnectionLost
(b) Return SubmitError::ConnectionLost variant; pipeline reconstructs Submitter on next tick

Pick (b) for cleaner failure modes. Add an integration test that drops the underlying TCP connection and verifies subsequent submit() returns ConnectionLost not Timeout.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinglayer:rustRust crates (core / scanner / protocols / executor / cli)pr-reviewFindings from PR review processpriority:p1-coreCore MVP scopestatus:readyScoped and ready to pick up

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions