superfly/corrosion

Subscription channel can run out of capacity and drop events

Ouverte

#183 ouverte le 11 avr. 2024

 (2 commentaires) (0 réaction) (0 personne assignée)Rust (83 forks)auto 404
buggood first issuehelp wanted

Métriques du dépôt

Stars
 (1 817 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

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.

Guide contributeur