You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Charles E. Rolke (Jira)" <ji...@apache.org> on 2019/10/11 17:35:00 UTC

[jira] [Commented] (DISPATCH-975) Policy has no provision for limiting user message size

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

Charles E. Rolke commented on DISPATCH-975:
-------------------------------------------

h3. This proposal adds:

|| Vhost || ||
| maxSenderMessageSize     | maximum message size in bytes users may send into the router network |
| maxReceiverMessageSize  | maximum message size in bytes users may receive from the router network |

|| vhostUserGroupSettings || ||
| maxSenderMessageSize       | optional override for Vhost maxSenderMessageSize |
| maxReceiverMessageSize     | optional override for Vhost maxReceiverMessageSize |

|| vhostStats || ||
| maxSenderSizeDenied     | number of ingress messages denied by max message size |
| maxReceiverSizeDenied   | number of egress messages denied by max message size |

|| Policy ||  ||
| messageSizeDenied       | count of ingress and egress denials due to message size exceeding max allowed |

h3. Other considerations

* Separate limits are specified for messages being injected into the router network and for messages being received from the router network.
* Interrouter connections are never subject to size limits.
* Connectors may specify a policyVhost to enforce the Vhost max message sizes
* What is the *size* of a message? An AMQP message may have seven sections only one of which is the user application data. If, say, one wishes to limit a user's payload strings to by 1,000 bytes then the policy max size must be somewhat larger to account for message overhead. Message overhead includes delivery- and message-annotations, message properties, application-properties, and the message footer. At a minimum about 50 (decimal) bytes of overhead are included in the message size calculation. These bytes are not part of the main message payload application data.
** There is no limit to the size of the message overhead sections. For this reason their content must be included in the max size limit equations.
** Note that message annotation bytes injected by qdrouterd to carry message routing information are *not* counted in the message size calculation.

h3. Implementation details

* Policy size checks will be enforced in qd_message_send and qd_message_receive
** When qd_message_receive detects a message coming in that is "too big" then outgoing copies of the message are aborted and the incoming message is set to 'discard'.
** When qd_message_send detects a message going out that is "too big" then it aborts the outgoing message the same was as if the incoming message had been aborted.
* Aborted outgoing messages may cut off the only destination for an incoming message. In that case the incoming message will set to 'discard'.


> Policy has no provision for limiting user message size
> ------------------------------------------------------
>
>                 Key: DISPATCH-975
>                 URL: https://issues.apache.org/jira/browse/DISPATCH-975
>             Project: Qpid Dispatch
>          Issue Type: Bug
>            Reporter: Charles E. Rolke
>            Assignee: Charles E. Rolke
>            Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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