-
-
Notifications
You must be signed in to change notification settings - Fork 92
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
heartbeat is sent even after io loop panicked #401
Comments
I also implemented the way @mjanssen suggested here: #389 (comment) it works correctly when you gracefully shutdown your rmq cluster. if you force shutdown a rmq cluster, either:
|
any ideas, @Keruspe |
while my rmq cluster was completely off. if I restart my pod it will fetch that a connection cannot be established and will wait until my rmq cluster is back. |
after 6-7 minutes it got an error:
and successfully restarted. |
After running tcpdump on the client we noticed that heartbeats get occasionally sent (to the pre-termination IP) but there is no response and the reconnection happens at completely random intervals eg. 1 service reconnects straight away and 3 others wait for up to 25 minutes. |
I thought it was already the case. If you have a pure testing environment to which I could get tmp access it could help if the issue turns out to be... not that obvious |
the easiest way to reproduce it locally (using rabbitmq in docker with the default configuration):
let connection = Connection::connect(
&addr,
ConnectionProperties::default()
.with_executor(tokio_executor_trait::Tokio::current())
.with_reactor(tokio_reactor_trait::Tokio),
)
.await?;
connection.on_error(|error| panic!("{}", error));
let channel = connection.create_channel().await?;
channel.on_error(|error| panic!("{}", error));
2024-04-20T13:05:15.522848Z ERROR error doing IO error=IOError(Kind(ConnectionAborted))
2024-04-20T13:05:15.522870Z ERROR Connection error error=IO error: connection aborted
thread 'lapin-io-loop' panicked at /my-path.../x.rs:
IO error: connection aborted
stack backtrace:
0: rust_begin_unwind
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/std/src/panicking.rs:645:5
1: core::panicking::panic_fmt
at /rustc/07dca489ac2d933c78d3c5158e3f43beefeb02ce/library/core/src/panicking.rs:72:14
2: core::panicking::panic_display
2024-04-20T13:05:16.763136Z DEBUG send heartbeat
2024-04-20T13:05:16.763422Z TRACE send_frame channel=0
2024-04-20T13:05:16.763460Z TRACE wake channel=0
2024-04-20T13:05:26.766356Z DEBUG send heartbeat
2024-04-20T13:05:26.766625Z TRACE send_frame channel=0
2024-04-20T13:05:26.766658Z TRACE wake channel=0
2024-04-20T13:05:36.768294Z DEBUG send heartbeat
2024-04-20T13:05:36.768708Z TRACE send_frame channel=0
2024-04-20T13:05:36.768760Z TRACE wake channel=0
2024-04-20T13:05:46.770914Z DEBUG send heartbeat
2024-04-20T13:05:46.771068Z TRACE send_frame channel=0
2024-04-20T13:05:46.771093Z TRACE wake channel=0
2024-04-20T13:05:56.774126Z DEBUG send heartbeat
2024-04-20T13:05:56.774387Z TRACE send_frame channel=0
2024-04-20T13:05:56.774492Z TRACE wake channel=0 |
Can you give #404 a try? |
#403 solved the issue. |
Hello!
I am using
tokio
and trying to implement the reconnection flow.I found out that even if your app panicked, the heartbeat is still sent.
after it panicked, you can see that there is no response but it still sends it.
The way I got it is:
The text was updated successfully, but these errors were encountered: