superfly/corrosion

Subscription channel can run out of capacity and drop events

開放

#183 建立於 2024年4月11日

 (2 則留言) (0 個反應) (0 位負責人)Rust (83 個分叉)auto 404
buggood first issuehelp wanted

倉庫指標

星標
 (1,817 顆星)
PR 合併指標
 (PR 指標待抓取)

描述

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.

貢獻者指南