superfly/corrosion

Subscription channel can run out of capacity and drop events

Aperta

#183 aperta il 11 apr 2024

 (2 commenti) (0 reazioni) (0 assegnatari)Rust (83 fork)auto 404
buggood first issuehelp wanted

Metriche repository

Star
 (1817 stelle)
Metriche merge PR
 (Metriche PR in attesa)

Descrizione

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.

Guida contributor