[
https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17544248#comment-17544248
]
ASF GitHub Bot commented on QPID-8577:
--------------------------------------
asfgit merged PR #31:
URL: https://github.com/apache/qpid-cpp/pull/31
> 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]