You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by GitBox <gi...@apache.org> on 2020/04/08 17:34:43 UTC

[GitHub] [qpid-dispatch] ChugR opened a new pull request #717: DISPATCH-975: Enforce max message size on message ingress

ChugR opened a new pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717
 
 
   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.
   
    * 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: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.
   
   TODO:
   
   * No tests yet for multicast or link route.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r409024595
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   Its arguably not that big a deal to the sending client, as anyone sending over the limit is going to have issues either way.
   
   I was more curious given the commentry seems to suggest inter-router connections could be getting killed too in certain cases, which could affect other things besides the one doing the send? Or is that not the case? Though I guess that effect may still be true of link closure too.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r408927858
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   Why close the connection rather than the link?

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r408953750
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   My tests tried only the proton-c clients. I didn't try any proton-j clients. Sorry for the mischaracterization of "any of the proton clients".

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r408943777
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   Earlier versions of this feature tried closing the link with an error. This did not work well with any of the proton clients, in particular the python client used by dispatch self tests. 
   
   See https://issues.apache.org/jira/browse/PROTON-2182
   
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
gemmellr commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r409020190
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   To be clearer, I was talking about the sending link, vs sending connection. In this case the example having both the sender and receiver of the message on the same connection probably confuses matters a touch.
   
   From the error and stacktrace that appears to be more on the receiver side. Perhaps a general issue with handling aborted deliveries? Unclear it relates to choice of whether to close the sending link vs connection, other than the fact both are on the same connection.
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] ChugR commented on issue #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
ChugR commented on issue #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#issuecomment-614084101
 
 
   Fixed at commit a754e18

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
ChugR commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r408383820
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   Good point. Change the error to
       condition name: amqp:connection:forced
       condition description: message size exceeded

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] kgiusti commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
kgiusti commented on a change in pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717#discussion_r408370278
 
 

 ##########
 File path: src/amqp.c
 ##########
 @@ -86,6 +86,7 @@ const char * const QD_AMQP_COND_RESOURCE_DELETED = "amqp:resource-deleted";
 const char * const QD_AMQP_COND_ILLEGAL_STATE = "amqp:illegal-state";
 const char * const QD_AMQP_COND_FRAME_SIZE_TOO_SMALL = "amqp:frame-size-too-small";
 const char * const QD_AMQP_COND_CONNECTION_FORCED = "amqp:connection:forced";
+const char * const QD_AMQP_COND_MESSAGE_SIZE_EXCEEDED = "amqp:connection:message-size-exceeded";
 
 Review comment:
   Not sure if this matters, but AMQP 1.0 defines a link-error for message-size-exceeded, not a connection-error:
   
   [AMQP 1.0 link-error](http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-link-error)

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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


[GitHub] [qpid-dispatch] ChugR closed pull request #717: DISPATCH-975: Enforce max message size on message ingress

Posted by GitBox <gi...@apache.org>.
ChugR closed pull request #717: DISPATCH-975: Enforce max message size on message ingress
URL: https://github.com/apache/qpid-dispatch/pull/717
 
 
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

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