superfly/corrosion

Subscription channel can run out of capacity and drop events

オープン

#183 opened on 2024/04/11

 (2 件のコメント) (0 件のリアクション) (0 人の担当者)Rust (83 件のフォーク)auto 404
buggood first issuehelp wanted

Repository metrics

Stars
 (1,817 個のスター)
PR merge metrics
 (PR metrics pending)

説明

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.

コントリビューターガイド