Arnaud Cogoluègnes created PROTON-2794:
------------------------------------------
Summary: Transfer ID does not wrap as expected
Key: PROTON-2794
URL: https://issues.apache.org/jira/browse/PROTON-2794
Project: Qpid Proton
Issue Type: Bug
Components: protonj2
Affects Versions: protonj2-1.0.0-M19
Reporter: Arnaud Cogoluègnes
Assignee: Timothy A. Bish
When ProtonJ 2 creates a session and the peer replies with a large
{{next-outgoing-id}} in the {{begin}} response (e.g. 4294967292), a receiver on
the session throws an exception later on when it detects the
{{next-incoming-id}} is greater than the limit of a uint32.
Corresponding code:
[https://github.com/apache/qpid-protonj2/blob/d5144af7818b2695747782bacc410580d3ec7943/protonj2/src/main/java/org/apache/qpid/protonj2/types/transport/Flow.java#L153-L155]
[https://github.com/apache/qpid-protonj2/blob/d5144af7818b2695747782bacc410580d3ec7943/protonj2/src/main/java/org/apache/qpid/protonj2/engine/impl/ProtonSessionIncomingWindow.java#L138]
The {{transfer-id}} is a {{sequence-no}}, so it must follow
[RFC-1982|https://www.ietf.org/rfc/rfc1982.txt] and so wrap around (sections
2.8.9 and 2.8.10 of the AMQP 1.0 spec).
So from my understanding, the {{nextIncomingId}} field should be set to 0 when
it "overflows" and no exception should be thrown.
Other fields like {{delivery-count}} may have the same problem.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]