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

ASF GitHub Bot commented on QPID-8577:
--------------------------------------

asfgit merged PR #29:
URL: https://github.com/apache/qpid-cpp/pull/29




> problems when delivering to full queues using AMQP 1.0
> ------------------------------------------------------
>
>                 Key: QPID-8577
>                 URL: https://issues.apache.org/jira/browse/QPID-8577
>             Project: Qpid
>          Issue Type: Bug
>          Components: C++ Broker
>    Affects Versions: qpid-cpp-1.39.0
>            Reporter: Pete Fawcett
>            Priority: Major
>
> Problems have been observed when sending messages to the broker using AMQP 
> 1.0.
> The problems occur if the the messages being sent are routed to an output 
> queue but cannot be delivered to the queue because of size limits defined on 
> the queue.
> In certain circumstances this scenario can result in the broker crashing with 
> a segmentation fault.
> When a message cannot be delivered to a queue, due to insufficient space, an 
> exception is thrown.  This results in the link being closed and an error 
> returned to the client.
> If previous messages sent from the client have activated "flow control" (due 
> to the queue getting close to full) then the acknowledgments (acks) for those 
> messages are held as "pending" in the owning session.  When messages are 
> removed from the destination queue, and flow control allows flow to restart, 
> the session attempts to deliver the pending acks.
> If there has been a link failure, then the pending acks are no longer valid - 
> the pointer to the owning link has been reset to NULL.  The current code 
> doesn't check the validity of the link pointer and causes a Seg Fault when it 
> tries to send the acks,
> The proposal is to address this problem in two phases:
> * Phase One
> ** Add defensive code to prevent Seg Fault
> ** Remove pending acks from session if the link is being closed
> * Phase Two
> ** Investigate 'returning' the problematic message rather than closing the 
> link with an error code
> Avoiding closing the link seems preferable as it could reduce the number of 
> messages that might otherwise be resent by the client.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to