Skip to content

Hub asserts when out of buffers #6166

Open
Open

Description

@thomas-bc
F´ Version
Affected Component

Problem Description

See

Fw::Buffer outgoing = allocate_out(0, static_cast<U32>(size + sizeof(U32) + sizeof(U32) + sizeof(FwBuffSizeType)));
auto serialize = outgoing.getSerializer();
// Write data to our buffer
status = serialize.serializeFrom(static_cast<U32>(type));
FW_ASSERT(status == Fw::FW_SERIALIZE_OK, static_cast<FwAssertArgType>(status));

If the Hub's buffer manager ever runs out of buffers, the Hub immediately asserts. Is this desired? Opening this to discuss at CCB

Activity

  1. thomas-bc commented on Oct 9, 2026

    @thomas-bc
    CollaboratorAuthor

    CCB: don't assert, add event and counter

  2. thomas-bc commented on Oct 11, 2026

    @thomas-bc
    CollaboratorAuthor

    The difficulty is that in a deployment where the hub is the event/telemetry sink (event connections instance hub), the hub's own failure event re-enters eventIn which means an unbounded recursion, which seems worse than the original assert. Some options:

    1. Throttled event + counter emitted from a new run: Svc.Sched port
    2. Throttled event only, carrying the running error count as an argument - but the count stops being observable once the throttle kicks in.
  3. moved this from CCB to Backlog in F´ Developmenton Oct 13, 2026
  4. added this to the Release v4.5.0 milestone on Oct 13, 2026
  5. thomas-bc commented on Oct 21, 2026

    @thomas-bc
    CollaboratorAuthor

    I'm not a huge fan of adding event/telemetry and the hassle this introduces (see #6166 (comment)). I wonder if it'd be better to just silently drop, return a status code where possible (on cmdRespOut for commands), and count of the BufferManager to report telemetry on number of packet dropped (== num of allocation failures). It's less featureful, but gets rid of the added complexity that JPL-Devin#278 introduces. Although it's really not that much complexity...

  6. added a commit that references this issue on Nov 5, 2026
    b06a9c7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions