[rabbitmq-discuss] Strange error report - any ideas anyone?

Tony Garnock-Jones tonyg at lshift.net
Fri Feb 22 13:04:43 GMT 2008


Hi Michael,

Michael Arnoldus wrote:
> Yesterday I had avery weird failure on one of components communicating
> on AMQP. In the rabbit-log we have
> =INFO REPORT==== 21-Feb-2008::15:20:09 === Syntax error collecting
> method content: {amqp,frame_error,none}
> =INFO REPORT==== 21-Feb-2008::15:20:09 === Sending exception: Channel 4,
> Reason {amqp,syntax_error,'basic.publish'}

In the 1.2.0 codebase, this is caused by either

 - a non-content-header frame arriving, when a content-header is
   expected; or,

 - a content-header frame arriving, as expected, but with a class ID
   that doesn't match the class of the preceding method frame; or

 - a non-content-body frame arriving, when a content-body is expected

A likely cause of this is sharing of a single Channel object between
multiple threads without sufficient mutual-exclusion. A publish, with
associated content, is ending up being interleaved with other frames on
the same channel. Could this, a Channel shared between threads, be
what's happening?

Just as an aside, that particular piece of code has been changed in our
CVS HEAD a little, so the precise error report will be a little
different for that case in future. The changes in that code are for
bringing the error reporting closer into line with the definitions of
frame-error, syntax-error and command-invalid in the specification.

Regards,
  Tony
-- 
 [][][] Tony Garnock-Jones     | Mob: +44 (0)7905 974 211
   [][] LShift Ltd             | Tel: +44 (0)20 7729 7060
 []  [] http://www.lshift.net/ | Email: tonyg at lshift.net




More information about the rabbitmq-discuss mailing list