You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The reason why it happened with one of our buckets was due to the entry write/remove cadence, every few days as opposed to the other buckets being every few seconds. This means the call recurses on every heartbeat msg (5000ms) until it overflows its stack or an entry is modified/removed.
Although the function looks tail call optimized, rust does not guarantee TCO.
Next steps, we’ll fork and make a PR upstream that removes this recursive call.
The text was updated successfully, but these errors were encountered:
While using the Watch client to subscribe to new msgs I would notice that one of our threads would overflow its stack. This was specific to a bucket and wouldn’t happen with the other bucket Watches. After some digging I found this recursive call:
https://github.com/nats-io/nats.rs/blob/main/nats/src/jetstream/push_subscription.rs#L133
The reason why it happened with one of our buckets was due to the entry write/remove cadence, every few days as opposed to the other buckets being every few seconds. This means the call recurses on every heartbeat msg (5000ms) until it overflows its stack or an entry is modified/removed.
Although the function looks tail call optimized, rust does not guarantee TCO.
Next steps, we’ll fork and make a PR upstream that removes this recursive call.
The text was updated successfully, but these errors were encountered: