Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

Client ignores frame max when publishing #84

Closed
squaremo opened this Issue · 3 comments

4 participants

@squaremo

While investigating issue 65 I noticed that the code that writes content frames ignores the frame max setting, and just sends the entire body as one frame.

RabbitMQ admits oversize frames (while being careful itself when framing), which is presumably why no-one has noticed.

@michaelplaing

Actually when rapidly pushing messages a few weeks ago the rabbit reported framing errors and then died causing me to back off of master. I didn't have time then to investigate.

@squaremo

That is likely to be because of reusing buffers (then writing over the contents before they are written to the socket), or perhaps frame interleaving. If you see it again please save the logs!

@rade

As squaremo points out above, the RabbitMQ broker admits oversize frames. But that is a DoS vector and therefore we are planning to change the broker to reject such frames. So this should really be fixed.

NB: the negotiated frame_max limits the total frame size, including header and end marker, which add up to 8 octets in total. Hence body fragmentation should occur in chunks of frame_max-8.

@majek majek referenced this issue from a commit in majek/node-amqp
@majek majek Fix #84 - slice outgoing messages according to frameMax advertised by…
… the server
1b322a5
@postwait postwait closed this in 793d54e
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.