[rabbitmq-discuss] ? short-string encoding and rabbitmq 2.0.1

james anderson james.anderson at setf.de
Sat Oct 23 00:38:30 BST 2010


good evening, michael;

thank you for your note;

On 2010-10-22, at 19:22 , Michael Bridgen wrote:

> James,
>
>>> <snip>
>>>> i understand this, and the code in the repository[3] to indicate  
>>>> that
>>>> the 115,6,83 at the start of the fourth line of the content vector,
>>>> above, was decoded as a short 16/signed instead of the intended  
>>>> six byte
>>>> short string. given which state, the subsequent vector
>>>> <<84,82,73,78,71,7,80, ...>> matched no pattern. do i understand  
>>>> these
>>>> events correctly?
>>>
>>> Yes.
>>>
>>> See http://dev.rabbitmq.com/wiki/Amqp091Errata#section_3 for a bit
>>> more information, but in short this is an area where we believe the
>>> spec to be incorrect.
>>
>> ok. it would help, if the page which describes that rabbitmq  
>> implements
>> 0.9.1 were to include something to the effect that the specification
>> which version 2 purports to support is not the one to which the page
>> links, but some other. perhaps it could also include a link to that
>> other specification, or at least to the wiki errata page. perhaps the
>> release notes page could include the topic. or perhaps the release  
>> news
>> page.
>
> In general RabbitMQ tries very hard to implement the letter of the  
> specification; however there are a few things in the published AMQP  
> 0-9-1, as in most specifications, that are either ambiguous or  
> inconsistent.  In those cases we set out in the errata what is it  
> RabbitMQ /does/ do.  This is not an unusual situation.
>
> As an egregious though amusing example, see the published *AMQP  
> 0-8* specification under the heading "4.2.2 Protocol Header".

another author was kind enough some months ago to have cleared up any  
misconceptions and unreasonable expectations which i might have had  
about those passages.

>
> If you are cross because this cost you time and effort, then I  
> sympathise -- we've spent rather a lot of time and effort ourselves  
> trying to implement 0-9-1 in a way that it consistent /and/  
> interoperates with other implementations.
>
>>> The upshot is that there isn't a way to put short strings in tables;
>>> you have to use long strings.
>>
>> evidently.
>> the question remains, whether rabbitmq's intention is that, a library
>> which purports to implement the standard now needs to not only  
>> negotiate
>> protocol version, but also implementation?
>
> Sadly, it is a choice between being faithful to the specification  
> and working with the implementations extant.  For us, too.

i am not cross. independent of any questions of lost time and/or  
unsatisfactory documentation, i am disappointed. the amqp  
specification provides sufficient technical capacity, that an  
argument that the type codes need be identical between versions is  
unfounded. i was not (evidently, fortunately) witness to the history,  
but if the issue is that qpid claimed a combination between an 9.0.1  
and an incompatible set of type codes, then the logical step would  
have been to assign that set and the set in the present 9.0.1  
specification a distinct versions of the specification. given which  
option the choice, above, is difficult to comprehend.



More information about the rabbitmq-discuss mailing list