Closed szegel closed 4 years ago
You are confusing the cause and the effect here. RabbitMQ does not close its session because of a client timeout; it cannot be possibly aware of one. What happens is the plugin runs into an exception and that closes the connection and results in a client-side timeout.
Agreed, thanks for pointing me in the right direction.
Are there any plans to fix this any time soon?
We do not offer an ETA for specific issues. Right now the priority is finishing RabbitMQ 3.8.0. As far as we can tell, this is something specific to one client.
This is open source software so you are welcome to contribute.
On Fri, 23 Aug 2019 at 00:07, szegel notifications@github.com wrote:
Are there any plans to fix this any time soon?
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/rabbitmq/rabbitmq-amqp1.0/issues/91?email_source=notifications&email_token=AAAAIQUITHNUIDYQNIVKUR3QF35ZNA5CNFSM4IHVXQ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD46MYAI#issuecomment-524078081, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAAIQVOGELYIQAY42SLBOTQF35ZNANCNFSM4IHVXQ6Q .
-- Staff Software Engineer, Pivotal/RabbitMQ
What may be helpful to help us investigate this issue is a wireshark capture of the AMQP frames for the simplest interaction that replicates the bug. Then we can see what actual values are passed and possibly reproduce it in our test suite.
3.8.1 resolves this issue.
Interesting. I don't see any PRs that would link to it but we trust your judgement :) In case someone can reproduce it on 3.8.1
or later, let us know and we will reopen.
The test code now works as expected. The message that the qpid client gets from rabbitmq is no message, vs session closed.
And you can re-send over the same session after a timeout has occurred (which you couldn't do before).
@szegel thank you for reporting back!
Hello All,
RabbitMQ AMQP 1.0 errors out and closes the session when an Apache Qpid C++ client receive() call times out. The RabbitMQ server should not close the session, or throw an error when the Qpid C++ client receive() call times out.
I wrote this bug on QPID C++ API: https://issues.apache.org/jira/browse/QPID-8347 I believe that some part of it may be related to the RabbitMQ server.
Source:
Output:
Server Error (Occurs at timeout, 10 seconds in)
connection.createSession()
opens a connection to the Broker that is rejected, andreceiver.fetch(Duration::SECOND * 10);
reconnects (successfully). This is not a major concern for me but may be something worth looking into.Configuration: OS: Ubuntu Bionic QPID C++ version 1.39.0 QPID Proton version 0.28.0 RabbitMQ Broker version 3.7.17-1 Erlang version 21.3.x RabbimtMQ AMQP 1.0 plugin Version 3.7.17