superfly/corrosion

Subscription channel can run out of capacity and drop events

Offen

#183 geöffnet am 11.04.2024

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Rust (83 Forks)auto 404
buggood first issuehelp wanted

Repository-Metriken

Stars
 (1.817 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

The broadcast channel used by subscriptions (https://github.com/superfly/corrosion/blob/93561d180e3ebbdd275c9b80b9663b6dcb46e2fa/crates/corro-agent/src/api/public/pubsub.rs#L621) can run out of capacity and skip the events in case the data is read really fast from the disk.

Somehow, in this case, forward_sub_to_sender simply stops forwarding any event - https://github.com/superfly/corrosion/blob/93561d180e3ebbdd275c9b80b9663b6dcb46e2fa/crates/corro-agent/src/api/public/pubsub.rs#L728

It looks like the select! never matches RecvError::Lagged for some reasons.

Contributor Guide