Skip to content

v2.0.6 slotless subscription potentially causes assert failures in msgq.cc #88

@OxygenLiu

Description

@OxygenLiu

gomsgq shadow mode for the carState subscription (NewSubscriber("carState", ..., true, true)). This causes intermittent assert((uint64_t)size < q->size) failures in msgq.cc, resulting in SIGABRT crashes.

The shadow reader has no tracked position in the ring buffer. When the writer (card) laps the untracked reader, the reader picks up a partially overwritten message — the size field is corrupted, tripping the assert. This is timing-dependent: it happens more often under CPU load (e.g. during model inference) when the reader falls behind.

Suggestion

Could the subscription mode be configurable, e.g. via MAPD_SETTINGS JSON? Let forks decide whether to use regular or slotless subscription.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions