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

ASF subversion and git services commented on DISPATCH-975:
----------------------------------------------------------

Commit a754e1897ece244c97b1d76163e7b96902316627 in qpid-dispatch's branch 
refs/heads/master from Charles E. Rolke
[ https://gitbox.apache.org/repos/asf?p=qpid-dispatch.git;h=a754e18 ]

DISPATCH-975: Enforce max message size on message ingress

MaxMessageSize may be specified globally, per vhost, or per vhost user
group. The global setting applies to all vhosts for which maxMessageSize
is unspecified. The vhost setting applies to all vhost user groups for
which maxMessageSize is unspecified. The vhost user group setting
overrides all other settings. A maxMessageSize setting of zero disables
maxMessageSize enforcement.

Links over which maxMessageSize is being enforced will advertise the
size in the max-message-size field of the Attach frame.

Qpid-dispatch ignores the max-message-size field received in
incoming Attach frames.

Message size for maxMessageSize purposes is calculated to be the
number of AMQP octets in the Annotated Message. This includes the
header, delivery-annotations, message-annotations, properties,
application-properties, application-data, and footer
sections. Administrators and users must be aware that a "message"
consisting a single character string (the application-data) will be
much larger over the wire after properties and annotations have been
inserted.

Max message size is enforced on message/transfer ingress only. Interior
routers form a trusted domain where messages that have entered by one
interior router are allowed to any destination in the system. Edge
routers are not trusted; messages from an edge router must be checked
again by the attached interior router before they are forwarded to the
trusted network. Messages from an interior router to an edge router
is not checked again by the edge router.

 * Transfer size is checked as a message enters an interior router.

  A message that passes an interior router size check is free to go to any
  destination on that router or any other interior or edge router.

 * Transfers size is checked as a message enters an edge router.

  A message that passes an edge router size check is free to go to any
  destination on that edge router. If the message is uplinked to an
  interior router then that interior router may apply another max message
  size check possibly using a different maximum message size setting.

When a message exceeds max size then:

 * Disposition of rejected is returned to the sender for that delivery.
 * Copies of the message being delivered through the router network are aborted.
 * The connection to the sender is closed with:

       condition:   "amqp:connection:forced"
       description: "Message size exceeded"

Self test includes a four-router linear network with two interior and two
edge routers. Tests try oversize and undersize messages with a variety of
sender and receiver attachment points in that network. The test routers
are configured with varying max message sizes.

TODO:

 * No tests yet for link route.
 * No doc book pages describing feature configuration and behavior.


> 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-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to