Skip to content

[BUG] Coordinator leaks request/future state when submit_to_stage fails #162

@pikaxinge

Description

@pikaxinge

Summary

Coordinator keeps stale request state when entry-stage submission fails.

When submit_to_stage raises in _submit_request, the coordinator can retain:

  • _requests[request_id]
  • _completion_futures[request_id]

This leaves partially-created request state in memory.

Impact

  • State accumulation in long-running services
  • Increased memory/GC pressure under repeated submit failures
  • Inconsistent request bookkeeping after failed submit

Repro (minimal)

  1. Create a coordinator with one entry stage.
  2. Make control_plane.submit_to_stage(...) raise an exception.
  3. Call await coordinator.submit(request_id, request).
  4. Observe leaked keys in _requests / _completion_futures.

Expected

On any submit failure, coordinator should fully rollback request bookkeeping.

Related PR

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions