superfly/corrosion

Subscription channel can run out of capacity and drop events

Aberta

#183 aberto em 11 de abr. de 2024

 (2 comentários) (0 reação) (0 responsável)Rust (83 forks)auto 404
buggood first issuehelp wanted

Métricas do repositório

Stars
 (1.817 estrelas)
Métricas de merge de PR
 (Métricas PR pendentes)

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.

Guia do colaborador