[rabbitmq-discuss] RabbitMQ 3.3.0 .NET producer/STOMP consumer: bad content-length possible?
Michael Justin
michael.justin at gmx.net
Fri May 23 10:19:49 BST 2014
Hello,
a user of my (Delphi/Free Pascal) STOMP client for RabbitMQ reported
random errors where the client library did find a valid STOMP frame in
the incoming socket data.
The STOMP library reads the number of bytes found in the content-length
header from the socket. A wrong content-length header value would cause
the client to read only a partial body, or past the end of the frame and
- if there are more frames in the socket - into the next frame. (As
STOMP frames must have a terminating NUL byte, this can be detected by
the client).
I tried to exchange messages with bad content-length values between
STOMP clients. But the broker (3.3.0) successfully detects protocol
errors, so the consumer will not receive the 'bad' message.
Could it be that the reason is not a STOMP client sending invalid
frames, but a special case inside the broker, caused by data sent from a
different (non-STOMP) client?
I asked the user which client library is used on the message producer
side. The environment is:
* RabbitMQ Broker version 3.1.5 running on Windows Server 2008 R2
Standard, Service Pack 1
* The messages are sent from a C# .NET application using the RabbitMQ
.NET Client Library version 3.3.0
Suggestions for test cases or other potential causes are very welcome.
Regards
--
Michael Justin
More information about the rabbitmq-discuss
mailing list