[
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.