You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Lite client opens a receiving link to a peer advertising a max frame size of 262,144. The peer responds with a max frame size of 16,384. The Lite client must accept frames with sizes up to the limit it told the peer (262,144) and the client must not send frames larger than what the peer negotiated (16,384).
The issue here is if the peer sends a frame larger than 16K but less than 256K then the Lite client throws.
To my reading the spec isn't clear about how max frame size is negotiated. My friends at Apache Qpid insist that two max frame sizes should be in effect on every link and that a sender's duty is to limit frames to what the peer requested.
◊ ◊◊ 6.611899 Frame 25 127.0.0.1:46798 -> 127.0.0.1:5672 -> open [0]
◊ open [0]
Length: 71
Doff: 2
Type: AMQP (0)
Channel: 0
Performative: open (16)
Arguments
Container-Id: f0cb7a9b-bbe6-43c9-a611-f7bef4b00247
Hostname: 127.0.0.1
Max-Frame-Size: 262144
Channel-Max: 256
◊ ◊◊ 6.612002 Frame 26 127.0.0.1:46798 <- 127.0.0.1:5672 <- open [0]
◊ open [0]
Length: 47
Doff: 2
Type: AMQP (0)
Channel: 0
Performative: open (16)
Arguments
Container-Id: ./streamer
Max-Frame-Size: 16384
Channel-Max: 256
$ Interop.Drain.exe --broker amqp://127.0.0.1:5672 --timeout 120 --count 1 --initial-credit 250 --reset-credit 50 --address example --quiet
Exception Amqp.AmqpException: Invalid frame size:32732, maximum frame size:16384.
at Amqp.ReceiverLink.ReceiveInternal (Amqp.MessageCallback callback, Int32 timeout) <0x413a9c30 + 0x00393> in <filename unknown>:0
at Amqp.ReceiverLink.Receive (TimeSpan timeout) <0x413a9a40 + 0x0002b> in <filename unknown>:0
at Examples.Interop.Drain.Main (System.String[] args) <0x41308020 + 0x0039f> in <filename unknown>:0 .
2
The text was updated successfully, but these errors were encountered:
A Lite client opens a receiving link to a peer advertising a max frame size of 262,144. The peer responds with a max frame size of 16,384. The Lite client must accept frames with sizes up to the limit it told the peer (262,144) and the client must not send frames larger than what the peer negotiated (16,384).
The issue here is if the peer sends a frame larger than 16K but less than 256K then the Lite client throws.
To my reading the spec isn't clear about how max frame size is negotiated. My friends at Apache Qpid insist that two max frame sizes should be in effect on every link and that a sender's duty is to limit frames to what the peer requested.
The text was updated successfully, but these errors were encountered: