-
Notifications
You must be signed in to change notification settings - Fork 170
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: Endless Loop / Lockup with heartbeat checker
#750
Comments
Hey, thanks for the report. Taking look into it. |
I just found out, that this whole loop starts with the following error:
After that comes up once, it stays in endless logging of
|
What I did as a temporary fix for now is wrapping the whole consumer creation in a loop and then I tested with the v0.20.0 too, which I used before the update to 0.24.0 and I am seeing the same behavior. |
Thanks for the update. Missing idle heartbeat should stop the consumer ultimately and not cause any growth in resources utilisation. Will fix this. |
The issue has been resolved. |
Hey,
I found a problem with the
heartbeat checker
from theasync_nats
with Jetstream and a durable consumer.I had most probably the same problem already in v0.20.0, but now since the update to 0.24.0 for that application, I just did see some more logs about the issue, which I added for better debugging.
The app is running in a kind of unstable IoT wireless network and issues and problems arise sometimes. After a short network issue, the resource usage jumps up and needs a full additional core, because of my new debug logs, it is spamming the console like crazy. The biggest problem is, that I did not find any way to reproduce this error. I just know for sure, that it happened quite a few times already over the last weeks and most often comes up during the night, where the network is a bit more under load because of pretty heavy backups and more traffic (less during the day, since its a pilot project not in production yet).
In my case, since it is running in a K8s cluster, I could just
panic!()
for now and let K8s restart the application. Yes I could just add a short sleep at that point, but I am not sure, if the consumer loop does still work in that situationErr(Custom { kind: Other, error: "unexpected termination of heartbeat checker" })
My code pieces are quite a bit split up and I merged them together here. The problem comes up in the line at the bottom basically, where I added the
// >>> ...
comment.If something is still unclear, please let me know, how I can help out.
The text was updated successfully, but these errors were encountered: