[ 
https://issues.apache.org/jira/browse/QPID-4583?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13579255#comment-13579255
 ] 

Steven Hardy commented on QPID-4583:
------------------------------------

I don't believe this is a good solution (although it may be a viable workaround 
in some circumstances I guess)

The problem is you've got no way to detect the binary encoding has happened on 
the receiver side, also this requires users to know about internal 
implementation details of the qpid codec, since nothing in the amqp spec 
suggests a limitation on map element sizes (only the total size).

It seems to me that the problem here is python-qpid map encoding should not use 
str16, and it should not encode every element in the map individually as a 
string, it would make more sense IMHO to convert the entire dict into a format 
which could be sent over the transport as a vbin32 - this seems to be implied 
by the amqp spec since the maximum allowable size of a map (plus the count) is 
the same as a vbin32.
                
> python-qpid limits map element size to 65535 bytes
> --------------------------------------------------
>
>                 Key: QPID-4583
>                 URL: https://issues.apache.org/jira/browse/QPID-4583
>             Project: Qpid
>          Issue Type: Bug
>          Components: Python Client
>    Affects Versions: 0.20
>         Environment: Tested on Fedora 17, python-qpid-0.20-1.fc17.noarch
>            Reporter: Steven Hardy
>            Assignee: Gordon Sim
>
> It seems that we hit a limit of 65535 bytes when encoding a map via 
> python-qpid, because the map elements are encoded as a str16 (write_map in 
> codec010.py)
> Looking at the amqp 0-10 spec, it says "An encoded map may contain up to 
> (4294967295 - 4) octets worth of encoded entries.", and I don't see any 
> specified limit for individual map elements.  This limitation does not appear 
> to exist when testing on rabbitmq, so I'm wondering if it's possible to work 
> out a way to remove this limit when using qpid.
> Reproducer:
> git clone https://gist.github.com/hardys/4951857
> cd 4951857
> python reproducer.py

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to