[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17542908#comment-17542908 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett opened a new pull request, #31: URL: https://github.com/apache/qpid-cpp/pull/31 If cannot deliver incoming message due to queue limit then RELEASE message rather than closing link. > 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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17528293#comment-17528293 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett commented on PR #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1110027629 Thank you @grs > 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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17528193#comment-17528193 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett commented on PR #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1109840460 @grs could this be considered for merging now that the tests are passing? I appreciate that it doesn't contain some of the possible improvements, but it does prevent a segfault happening. > 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: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17494760#comment-17494760 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett commented on pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1044904375 P.S.: It also includes a small fix that I did previously that stops an undeletable QMF queue object being created if an invalid selector is specified. -- 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17494759#comment-17494759 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett commented on pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1044902513 I haven't been able to determine the specific reason why the tests were failing. I am having difficulty running the HA tests locally (Perhaps my machine is a little underpowered for running a failover cluster). However, if I removed the code I had put in to call `abort_pending()` then the tests passed. Perhaps it those calls were interfering with the synchronisation between members of the HA cluster. I have left in the check for NULL when processing the pending acknowledgements and so this PR still achieves the original aim of preventing the SegFaults I had encountered. I hope it can now be considered for merging. I will squash the commits in preparation. -- 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17494477#comment-17494477 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett commented on pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1044188113 Thank you @grs for looking at the failure. The changes I have made could affect what a sending client receives. Depending on the specific conditions, the client might see a link being disconnected, rather than the whole broker crashing - and the whole connection dropping. I will investigate. -- 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17493401#comment-17493401 ] ASF GitHub Bot commented on QPID-8577: -- grs commented on pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29#issuecomment-1041982654 It appears that this causes one of the automated tests to fail. In particular test_reject in the ha_tests.py. From what I can see in the log, it looks like the sending client (which tries to send more than it is allowed), is being disconnected. I'm not sure why your change should cause this, but running the tests in CI without them passes on all tests. -- 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492825#comment-17492825 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett opened a new pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29 As per Phase One of QPID-8577 - Check for valid link before processing pending "delivery accept". - Remove pending "delivery accept" from session when closing link after 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org
[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0
[ https://issues.apache.org/jira/browse/QPID-8577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17492598#comment-17492598 ] ASF GitHub Bot commented on QPID-8577: -- pjfawcett opened a new pull request #29: URL: https://github.com/apache/qpid-cpp/pull/29 As per Phase One of QPID-8577 - Check for valid link before processing pending "delivery accept". - Remove pending "delivery accept" from session when closing link after 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. To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org > 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.1#820001) - To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org