We recently encountered a situation where our unit tests were sending a known-bad string of nonsense as a message header. We were surprised to find that this apparently caused our ~6 month old build of qpidd to crash upon receiving the message.
I tested our most recent build of qpidd and found that while the broker (correctly) did not crash, there is still some upper limit on the length of message headers. In the test below, I tried to send a test message with a header ~67kB in length, and received the following error on the broker side: 2010-01-26 14:29:13 error cluster(10.72.40.166:23674 READY) aborting connection 10.72.40.166:23674-4805: illegal-argument: Not enough data for field table. (qpid/framing/FieldTable.cpp:204) 2010-01-26 14:29:13 error cluster(10.72.40.166:23674 READY) aborting connection 10.72.40.166:23674-4805: framing-error: Framing version unsupported (qpid/framing/AMQFrame.cpp:113) Without looking at the code, I presume the upper limit to be 2^16 bytes. I have a few questions: 1) Are max message and header lengths documented anywhere? 2) Does the client do anything to validate the message and header length? We're using the Java JMS client FWIW. It's obviously sort of absurd to be sending headers this long, but I thought I'd bring it up anyway. Thanks, Sandy
