Skip to content

[receive] announce_timeout causes early break in check_timeouts and does not clean up all timed out universes #44

Open

Description

@bruingineer

Describe the bug
When announce_timeout is enabled, the timeout scan stops prematurely and does not reliably check all sources and universes. Due to an inverted loop-break condition, only the first source in the map may be checked. Even after correcting this condition, the function removes and reports only a single timed-out universe per call, leaving other expired universes and sources unchecked until future calls.

Expected behaviour
All sources and universes should be scanned for timeouts on each invocation. Any universe whose last_recv.elapsed() is greater than or equal to the configured timeout (per ANSI E1.31-2018 data loss and discovery timeout rules) should be removed. If timeout announcements are enabled, the implementation should either report all detected timeouts or clearly document and consistently enforce a “one timeout per call” policy while still ensuring all expired state is eventually cleaned up.

Activity

  1. bruingineer commented on Dec 29, 2025

    @bruingineer
    ContributorAuthor

    Addressing this should, at a minimum, cause a +x.x.1 version change. The best way to solve would probably be to return a list of all timed-out universe(s), which would be an API change and warrant a +x.1.x version change.

  2. changed the title [-][BUG] announce_timeout causes early break in check_timeouts and does not clean up all timed out universes[/-] [+][receive] announce_timeout causes early break in check_timeouts and does not clean up all timed out universes[/+] on Dec 30, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions