Closed bernhardkaindl closed 2 years ago
I did some research and found out that kombu client creates a response queue implicitly after a request has been sent to the server. If the server finishes handling the request before the response queue is created then the response message will be lost. In such case the client hangs forever waiting for the response from the server.
The bug is fixed in https://github.com/dapper91/pjrpc/pull/76
When
examples/kombu_server.py
andkombu_client.py
communicate, the communication suddenly stops:After a few iterations of the loop, the client no longer prints the output of the
sum(1,2)
RPC calls.I see in the rabbitmq log that server and client stay connected, but the client does not continue sending requests:
In the kombu_server log, I see that the server sends the response for the sum method, but the client does not have any logger calls about sending requests or receiving responses.
This is with a kombu_client.py which requests one
sum(1,2)
and sends onetick()
. The tick after the sum is not received:The server still receives heartbeats and and answers to other clients.
Just a suggestion / hint for diagnosis: I think logging of requests and responses shoud be added to the kombu client to aid in tracing, and
should be added to server and client: For kombu, the even the debug logging is not too verbose.