[jira] [Commented] (QPID-8577) problems when delivering to full queues using AMQP 1.0

2022-05-31 Thread ASF GitHub Bot (Jira)


[ 
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

2022-05-27 Thread ASF GitHub Bot (Jira)


[ 
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

2022-04-26 Thread ASF GitHub Bot (Jira)


[ 
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

2022-04-26 Thread ASF GitHub Bot (Jira)


[ 
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

2022-04-26 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-18 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-18 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-18 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-16 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-15 Thread ASF GitHub Bot (Jira)


[ 
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

2022-02-15 Thread ASF GitHub Bot (Jira)


[ 
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