You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Omar Bashir (JIRA)" <ji...@apache.org> on 2007/10/25 14:02:24 UTC
[jira] Created: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
--------------------------------------------------------------------
Key: AMQCPP-150
URL: https://issues.apache.org/activemq/browse/AMQCPP-150
Project: ActiveMQ C++ Client
Issue Type: Bug
Affects Versions: 2.1
Environment: Ubuntu 6.10
Reporter: Omar Bashir
Assignee: Nathan Mittler
I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Resolved: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish resolved AMQCPP-150.
---------------------------------
Resolution: Fixed
Fixed in trunk
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Timothy Bish
> Fix For: 2.1.1
>
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40506 ]
Timothy Bish commented on AMQCPP-150:
-------------------------------------
I tried to reproduce this issue:
Running a 4.1.1 broker and ActiveMQ-CPP built from trunk. Platform is Fedora 7.
I modified the example to not output anything to speed it up a bit, and to send and receive 1,000,000 messages. It ran to completion without any errors on client or broker.
My recommendations are to try and run with trunk to see if the problem goes away. And also to try and provide sample code that demonstrates the problem.
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Nathan Mittler
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Nathan Mittler (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40515 ]
Nathan Mittler commented on AMQCPP-150:
---------------------------------------
I've put a patch in trunk that I think does the trick. With tight-encoding, when we were unmarshalling compressed long long values, we were not casting the int/short to unsigned before assigning it to the long long. So if the sign bit was set on the int or short, it would also be set on the resulting long long. Changed this to cast the int/short to their unsigned counterparts before assigning to the long long. The unit tests all pass now.
Tim, could you double check the change to verify?
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Timothy Bish
> Fix For: 2.1.1
>
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish updated AMQCPP-150:
--------------------------------
Fix Version/s: 2.1.1
This appears to be a bug in tight Marshalling so its important to get into 2.1.1
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Timothy Bish
> Fix For: 2.1.1
>
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Assigned: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Timothy Bish reassigned AMQCPP-150:
-----------------------------------
Assignee: Timothy Bish (was: Nathan Mittler)
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Timothy Bish
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Commented: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Timothy Bish (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40516 ]
Timothy Bish commented on AMQCPP-150:
-------------------------------------
Everything looks good, tests all pass. Resolved!
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Timothy Bish
> Fix For: 2.1.1
>
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
[jira] Updated: (AMQCPP-150) ActiveMQ-CPP consumer client hanging
after receiving 32767 messages.
Posted by "Omar Bashir (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Omar Bashir updated AMQCPP-150:
-------------------------------
Attachment: CppQueueReceiver.cpp
CppQueueTransmitterOrig.cpp
Hi,
Thank you very much for your reply. I am afraid that I may not be able to
give you the original application for a number of reasons but attached are
a couple of test noddies that replicate the suggested behaviour but only on
activemq-cpp-2.1. If these replicate the problem on activemq 2.1 but not on
trunk, then its probably resolved in the trunk.
I am also not sure if I will be allowed to use trunk for the application I
am writing so I will probably have to code around this problem for the time
being. Is it possible to know the date of the next release.
I shall be grateful for your comments and suggestions.
Best Wishes.
Omar Bashir
(See attached file: CppQueueTransmitterOrig.cpp)
(See attached file: CppQueueReceiver.cpp)
"Timothy Bish
(JIRA)"
<ji...@apache.org> To
omar.bashir@edftrading.com
25/10/2007 14:28 cc
Subject
[jira] Commented: (AMQCPP-150)
ActiveMQ-CPP consumer client
hanging after receiving 32767
messages.
[
https://issues.apache.org/activemq/browse/AMQCPP-150?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_40506
]
Timothy Bish commented on AMQCPP-150:
-------------------------------------
I tried to reproduce this issue:
Running a 4.1.1 broker and ActiveMQ-CPP built from trunk. Platform is
Fedora 7.
I modified the example to not output anything to speed it up a bit, and to
send and receive 1,000,000 messages. It ran to completion without any
errors on client or broker.
My recommendations are to try and run with trunk to see if the problem goes
away. And also to try and provide sample code that demonstrates the
problem.
it a large burst of messages (100 per second). I realised that the client
hangs after receiving 32767 messages and the broker has a log message
dispatched message: MessageAck ...
still behaved the same way. Behaviour remained the same when I reduced
message frequency to one per second. I am using ActiveMQ-CPP-2.1 and
ActiveMQ broker 4.1.1.
disappeared. Then I ran both the Java and C++ consumers concurrently both
listening to the same queue, the C++ client froze after 16 messages whereas
the Java client continued to receive and process messages.
messages, reconnects and then starts transmitting again. The problem
disappears with this configuration. Both Java and C++ clients have now
received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
EDF TRADING IS MOVING
>From 5 November 2007 we can be reached at our new address:
80 Victoria Street, 3rd Floor, Cardinal Place, London, SW1E 5JL
Phone and fax numbers will remain the same.
*********************************************************************
This communication contains confidential information, some or all of which may be privileged. It is for the intended recipient only and others must not disclose, distribute, copy, print or rely on this communication. If an addressing or transmission error has misdirected this communication, please notify the sender by replying to this e-mail and then delete the e-mail. E-mail sent to EDF Trading may be monitored by the company. Thank you.
EDF Trading Markets Limited
71 High Holborn, London WC1V 6ED
A Company registered in England No. 4255974.
Switchboard: 020 7061 4000
EDF Trading Markets Limited is a member of the EDF Trading Limited Group and is authorised and regulated by the Financial Services Authority.
VAT number: GB 735 5479 07
*********************************************************************
> ActiveMQ-CPP consumer client hanging after receiving 32767 messages.
> --------------------------------------------------------------------
>
> Key: AMQCPP-150
> URL: https://issues.apache.org/activemq/browse/AMQCPP-150
> Project: ActiveMQ C++ Client
> Issue Type: Bug
> Affects Versions: 2.1
> Environment: Ubuntu 6.10
> Reporter: Omar Bashir
> Assignee: Nathan Mittler
> Attachments: CppQueueReceiver.cpp, CppQueueTransmitterOrig.cpp
>
>
> I was stress-testing an ActiveMQ-CPP consumer client by transmitting to it a large burst of messages (100 per second). I realised that the client hangs after receiving 32767 messages and the broker has a log message
> INFO PrefetchSubscription - Could not correlate acknowledgment with dispatched message: MessageAck ...
> I changed the size of the message from 40 bytes to over 600 bytes but it still behaved the same way. Behaviour remained the same when I reduced message frequency to one per second. I am using ActiveMQ-CPP-2.1 and ActiveMQ broker 4.1.1.
> I replaced the C++ consumer with the Java consumer and the problem disappeared. Then I ran both the Java and C++ consumers concurrently both listening to the same queue, the C++ client froze after 16 messages whereas the Java client continued to receive and process messages.
> Now, I have the C++ producer client that disconnects after sending 32000 messages, reconnects and then starts transmitting again. The problem disappears with this configuration. Both Java and C++ clients have now received in excess of 230k messages and are still running perfectly well.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.