[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Attachment: AMQCPP-534.patch.txt > Closing connection with setTransportListener to NULL may cause core dump > > > Key: AMQCPP-534 > URL: https://issues.apache.org/jira/browse/AMQCPP-534 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Transports >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Fix For: 3.8.4, 3.9.0 > > Attachments: AMQCPP-534.patch.txt > > > This happen in random; and will cause core dump under Solaris 10. > {panel:title=Core dump happened on thread #22 which is a thread for IO for > activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) > 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax > (dbx) where -h > current thread: t@22 > =>[1] > activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, > 0xfa567ce0), at 0xfcbef02c > [2] activemq::transport::TransportFilter::onCommand(0x116c3700, > 0xfa567d20), at 0xfcb7ae15 > [3] > activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, > 0xfa567d70), at 0xfcc5ff05 > [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, > 0xfa567de0), at 0xfcb7ae15 > [5] > activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, > 0xfa567e40), at 0xfcbf69f7 > [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, > 0xfa567e90), at 0xfcb7ae15 > [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at > 0xfcb78a49 > [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 > [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 > [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f > [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 > [12] _thr_setup(0xfac2a200), at 0xfc0771c0 > [13] _lwp_start(), at 0xfc0774b0 > {noformat} > {panel} > {panel:title=Stack trace for the main > thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > - lwp# 1 / thread# 1 > fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b > fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e > fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db > fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 > fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 > fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e > fcd21550 bool > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long > long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, > 1bbc1e10, 493e0, 0, 0, 8046434) + 110 > fcd1f051 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d > fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 > fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) > (f3b1730, 493e0, 0) + e5 > fcbd26d3 void activemq::transport::failover::FailoverTransport::close() > (efde3f8) + 327 > fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 > fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) > (eef0fb8, 0, 0) + 52f > fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 > 0888e6ec main (7, 80475dc, 80475fc) + 149 > 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a > {noformat} > {panel} > This is happen only during the disconnect. So, what i suspected is that there > have an concurrent issue between the ActiveMQConnection, TransportFilter, > FailoverTransportListener. > As i dig into the code, i see during the disconnection, the transport > listener will being set to NULL at the very first stage. However, the another > thread may have access to the pointer of the null transport listener as the > NULL check is not thread safe. > {noformat} > void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { > try { > // Clear the listener, we don't care about async errors at this point. > this->config->transport->setTransportListener(NULL); > [...] > {noformat} > {noformat} > void FailoverTransportListener::onCommand(const Pointer command) { > if (command == NULL) { > return; > } > if (command->isResponse()) { > Pointer response = command.dynamicCast(); > parent->processR
[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Attachment: (was: AMQCPP-534.patch.txt) > Closing connection with setTransportListener to NULL may cause core dump > > > Key: AMQCPP-534 > URL: https://issues.apache.org/jira/browse/AMQCPP-534 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Transports >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > This happen in random; and will cause core dump under Solaris 10. > {panel:title=Core dump happened on thread #22 which is a thread for IO for > activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) > 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax > (dbx) where -h > current thread: t@22 > =>[1] > activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, > 0xfa567ce0), at 0xfcbef02c > [2] activemq::transport::TransportFilter::onCommand(0x116c3700, > 0xfa567d20), at 0xfcb7ae15 > [3] > activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, > 0xfa567d70), at 0xfcc5ff05 > [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, > 0xfa567de0), at 0xfcb7ae15 > [5] > activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, > 0xfa567e40), at 0xfcbf69f7 > [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, > 0xfa567e90), at 0xfcb7ae15 > [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at > 0xfcb78a49 > [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 > [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 > [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f > [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 > [12] _thr_setup(0xfac2a200), at 0xfc0771c0 > [13] _lwp_start(), at 0xfc0774b0 > {noformat} > {panel} > {panel:title=Stack trace for the main > thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > - lwp# 1 / thread# 1 > fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b > fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e > fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db > fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 > fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 > fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e > fcd21550 bool > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long > long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, > 1bbc1e10, 493e0, 0, 0, 8046434) + 110 > fcd1f051 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d > fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 > fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) > (f3b1730, 493e0, 0) + e5 > fcbd26d3 void activemq::transport::failover::FailoverTransport::close() > (efde3f8) + 327 > fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 > fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) > (eef0fb8, 0, 0) + 52f > fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 > 0888e6ec main (7, 80475dc, 80475fc) + 149 > 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a > {noformat} > {panel} > This is happen only during the disconnect. So, what i suspected is that there > have an concurrent issue between the ActiveMQConnection, TransportFilter, > FailoverTransportListener. > As i dig into the code, i see during the disconnection, the transport > listener will being set to NULL at the very first stage. However, the another > thread may have access to the pointer of the null transport listener as the > NULL check is not thread safe. > {noformat} > void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { > try { > // Clear the listener, we don't care about async errors at this point. > this->config->transport->setTransportListener(NULL); > [...] > {noformat} > {noformat} > void FailoverTransportListener::onCommand(const Pointer command) { > if (command == NULL) { > return; > } > if (command->isResponse()) { > Pointer response = command.dynamicCast(); > parent->processResponse(response); > } > if (!parent->isInitialized()) { >
[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Attachment: AMQCPP-534.patch.txt > Closing connection with setTransportListener to NULL may cause core dump > > > Key: AMQCPP-534 > URL: https://issues.apache.org/jira/browse/AMQCPP-534 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Transports >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-534.patch.txt > > > This happen in random; and will cause core dump under Solaris 10. > {panel:title=Core dump happened on thread #22 which is a thread for IO for > activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) > 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax > (dbx) where -h > current thread: t@22 > =>[1] > activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, > 0xfa567ce0), at 0xfcbef02c > [2] activemq::transport::TransportFilter::onCommand(0x116c3700, > 0xfa567d20), at 0xfcb7ae15 > [3] > activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, > 0xfa567d70), at 0xfcc5ff05 > [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, > 0xfa567de0), at 0xfcb7ae15 > [5] > activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, > 0xfa567e40), at 0xfcbf69f7 > [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, > 0xfa567e90), at 0xfcb7ae15 > [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at > 0xfcb78a49 > [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 > [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 > [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f > [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 > [12] _thr_setup(0xfac2a200), at 0xfc0771c0 > [13] _lwp_start(), at 0xfc0774b0 > {noformat} > {panel} > {panel:title=Stack trace for the main > thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > - lwp# 1 / thread# 1 > fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b > fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e > fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db > fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 > fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 > fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e > fcd21550 bool > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long > long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, > 1bbc1e10, 493e0, 0, 0, 8046434) + 110 > fcd1f051 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d > fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 > fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) > (f3b1730, 493e0, 0) + e5 > fcbd26d3 void activemq::transport::failover::FailoverTransport::close() > (efde3f8) + 327 > fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 > fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) > (eef0fb8, 0, 0) + 52f > fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 > 0888e6ec main (7, 80475dc, 80475fc) + 149 > 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a > {noformat} > {panel} > This is happen only during the disconnect. So, what i suspected is that there > have an concurrent issue between the ActiveMQConnection, TransportFilter, > FailoverTransportListener. > As i dig into the code, i see during the disconnection, the transport > listener will being set to NULL at the very first stage. However, the another > thread may have access to the pointer of the null transport listener as the > NULL check is not thread safe. > {noformat} > void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { > try { > // Clear the listener, we don't care about async errors at this point. > this->config->transport->setTransportListener(NULL); > [...] > {noformat} > {noformat} > void FailoverTransportListener::onCommand(const Pointer command) { > if (command == NULL) { > return; > } > if (command->isResponse()) { > Pointer response = command.dynamicCast(); > parent->processResponse(response); > } > if (!
[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Patch Info: Patch Available > Closing connection with setTransportListener to NULL may cause core dump > > > Key: AMQCPP-534 > URL: https://issues.apache.org/jira/browse/AMQCPP-534 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Transports >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > This happen in random; and will cause core dump under Solaris 10. > {panel:title=Core dump happened on thread #22 which is a thread for IO for > activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) > 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax > (dbx) where -h > current thread: t@22 > =>[1] > activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, > 0xfa567ce0), at 0xfcbef02c > [2] activemq::transport::TransportFilter::onCommand(0x116c3700, > 0xfa567d20), at 0xfcb7ae15 > [3] > activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, > 0xfa567d70), at 0xfcc5ff05 > [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, > 0xfa567de0), at 0xfcb7ae15 > [5] > activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, > 0xfa567e40), at 0xfcbf69f7 > [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, > 0xfa567e90), at 0xfcb7ae15 > [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at > 0xfcb78a49 > [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 > [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 > [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f > [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 > [12] _thr_setup(0xfac2a200), at 0xfc0771c0 > [13] _lwp_start(), at 0xfc0774b0 > {noformat} > {panel} > {panel:title=Stack trace for the main > thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > - lwp# 1 / thread# 1 > fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b > fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e > fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db > fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 > fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 > fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e > fcd21550 bool > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long > long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, > 1bbc1e10, 493e0, 0, 0, 8046434) + 110 > fcd1f051 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d > fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 > fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) > (f3b1730, 493e0, 0) + e5 > fcbd26d3 void activemq::transport::failover::FailoverTransport::close() > (efde3f8) + 327 > fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 > fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) > (eef0fb8, 0, 0) + 52f > fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 > 0888e6ec main (7, 80475dc, 80475fc) + 149 > 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a > {noformat} > {panel} > This is happen only during the disconnect. So, what i suspected is that there > have an concurrent issue between the ActiveMQConnection, TransportFilter, > FailoverTransportListener. > As i dig into the code, i see during the disconnection, the transport > listener will being set to NULL at the very first stage. However, the another > thread may have access to the pointer of the null transport listener as the > NULL check is not thread safe. > {noformat} > void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { > try { > // Clear the listener, we don't care about async errors at this point. > this->config->transport->setTransportListener(NULL); > [...] > {noformat} > {noformat} > void FailoverTransportListener::onCommand(const Pointer command) { > if (command == NULL) { > return; > } > if (command->isResponse()) { > Pointer response = command.dynamicCast(); > parent->processResponse(response); > } > if (!parent->isInitialized()) { > parent->setIni
[jira] [Updated] (AMQCPP-562) Reduce memory delete and allocation in ArrayList
[ https://issues.apache.org/jira/browse/AMQCPP-562?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-562: Attachment: AMQCPP-562.patch.txt > Reduce memory delete and allocation in ArrayList > > > Key: AMQCPP-562 > URL: https://issues.apache.org/jira/browse/AMQCPP-562 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Minor > Attachments: AMQCPP-562.patch.txt > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (AMQCPP-562) Reduce memory delete and allocation in ArrayList
Jeremy Leung created AMQCPP-562: --- Summary: Reduce memory delete and allocation in ArrayList Key: AMQCPP-562 URL: https://issues.apache.org/jira/browse/AMQCPP-562 Project: ActiveMQ C++ Client Issue Type: Improvement Components: Decaf Affects Versions: 3.8.3 Reporter: Jeremy Leung Assignee: Timothy Bish Priority: Minor -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (AMQCPP-561) Memory Leak in ActiveMQConsumerKernel while calling deliverAcks
Jeremy Leung created AMQCPP-561: --- Summary: Memory Leak in ActiveMQConsumerKernel while calling deliverAcks Key: AMQCPP-561 URL: https://issues.apache.org/jira/browse/AMQCPP-561 Project: ActiveMQ C++ Client Issue Type: Bug Components: Other C++ Clients Affects Versions: 3.8.3 Reporter: Jeremy Leung Assignee: Timothy Bish -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Closed] (AMQCPP-561) Memory Leak in ActiveMQConsumerKernel while calling deliverAcks
[ https://issues.apache.org/jira/browse/AMQCPP-561?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung closed AMQCPP-561. --- Resolution: Duplicate > Memory Leak in ActiveMQConsumerKernel while calling deliverAcks > --- > > Key: AMQCPP-561 > URL: https://issues.apache.org/jira/browse/AMQCPP-561 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Other C++ Clients >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (AMQCPP-556) setMessageListener on active session may leads to deadlock
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Summary: setMessageListener on active session may leads to deadlock (was: Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel) > setMessageListener on active session may leads to deadlock > -- > > Key: AMQCPP-556 > URL: https://issues.apache.org/jira/browse/AMQCPP-556 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-556.patch > > > When we create a new *MessageConsumer* with a *MessageListener* from a > session, the session will be stopped before the updates of the message > listener and restarted afterward if the session already started. > However, if there have more than one consumers already started; calling > *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many > messages coming in. > {panel:title=Stack Trace when the sample program run into deadlock} > 26989: ./SimpleAsyncConsumer > - lwp# 1 / thread# 1 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (8078ef0, 808bc28, 0) + 5e > fdb2403f _cond_wait (8078ef0, 808bc28) + 64 > fdb24081 cond_wait (8078ef0, 808bc28) + 21 > fdb240ba pthread_cond_wait (8078ef0, 808bc28) + 1b > fe7217b6 void > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,decaf::internal::util::concurrent::CompletionCondition&) > (8078ef0, 808bc28, 8046e14) + 36 > fe71f400 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (808f8d0, 0, 0, 0, fe758acd) + 160 > fe758aeb void decaf::lang::Thread::join() (808ea18) + 2b > fe56b727 void activemq::threads::DedicatedTaskRunner::shutdown() (808f788) + > f7 > fe3f417a void activemq::core::ActiveMQSessionExecutor::stop() (808cb30) + 2da > fe48af48 void activemq::core::kernels::ActiveMQSessionKernel::stop() > (808c240) + 18 > fe44362a void > activemq::core::kernels::ActiveMQConsumerKernel::setMessageListener(cms::MessageListener*) > (80917d8, 8047384) + f2 > fe3aa8c3 void > activemq::core::ActiveMQConsumer::setMessageListener(cms::MessageListener*) > (808f4e8, 8047384) + 73{color} > 08055170 void SimpleAsyncConsumer::runConsumer() (8047380) + 610 > 080530d3 main (1, 80474b8, 80474c0) + 2a3 > 08052d5a _start (1, 8047618, 0, 804762e, 804763a, 8047674) + 7a > - lwp# 10 / thread# 10 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f188, 808bc48, 0) + 5e > fdb2403f _cond_wait (808f188, 808bc48) + 64 > fdb24081 cond_wait (808f188, 808bc48) + 21 > fdb240ba pthread_cond_wait (808f188, 808bc48) + 1b > fe721666 void > decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) > (808f188, 808bc48) + 1e > fe71dab3 void > __unnamed_syh4PZ6vdUWCx::doMonitorEnter(decaf::internal::util::concurrent::MonitorHandle*,decaf::internal::util::concurrent::ThreadHandle*) > (806c740, 808f8d0) + 8f > fe71fd0b void > decaf::internal::util::concurrent::Threading::enterMonitor(decaf::internal::util::concurrent::MonitorHandle*) > (806c740) + 27 > fe7aaa78 void decaf::util::concurrent::Mutex::lock() (808ec34) + 4c > fe7aa2d4 void decaf::util::concurrent::Lock::lock() (fd71fb84) + 2c > fe7aa023 decaf::util::concurrent::Lock::Lock #Nvariant > 1(decaf::util::concurrent::Synchronizable*,const bool) (fd71fb84, 808ec34, 1) > + 43 > fe44b7a4 void > activemq::core::kernels::ActiveMQConsumerKernel::dispatch(const > decaf::lang::Pointer&) > (808ebb8, fd71feb0) + 49c > fe3f4371 void activemq::core::ActiveMQSessionExecutor::dispatch(const > decaf::lang::Pointer&) > (808cb30, fd71feb0) + 11d > fe3f45be bool activemq::core::ActiveMQSessionExecutor::iterate() (808cb30) + > a2 > fe56b88a void activemq::threads::DedicatedTaskRunner::run() (808f788) + > 8e{color} > fe75889e void decaf::lang::Thread::run() (808ea18) + 1a > fe71cfbb void __unnamed_syh4PZ6vdUWCx::runCallback(void*) (808f8d0) + 2b > fe71cf52 void*__unnamed_syh4PZ6vdUWCx::threadEntryMethod(void*) (808f8d0) + > ee > fdb28ffb _thr_setup (fd814200) + 4e > fdb29300 _lwp_start (fd814200, 0, 0, fd71fff8, fdb29300, fd814200) > - lwp# 11 / thread# 11 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f5d8, 808bbc8, 0) + 5e > fdb2403f _cond_wait (808f5d8, 808bbc8) + 64 > fdb24081 cond_wait (808f5d8, 808bbc8) + 21 > fdb240ba pthread_cond_wait (808f5d8, 808bbc8) + 1b > fe721666 void > decaf::internal::util::concurren
[jira] [Updated] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Attachment: (was: AMQCPP-556.patch) > Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel > -- > > Key: AMQCPP-556 > URL: https://issues.apache.org/jira/browse/AMQCPP-556 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-556.patch > > > When we create a new *MessageConsumer* with a *MessageListener* from a > session, the session will be stopped before the updates of the message > listener and restarted afterward if the session already started. > However, if there have more than one consumers already started; calling > *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many > messages coming in. > {panel:title=Stack Trace when the sample program run into deadlock} > 26989: ./SimpleAsyncConsumer > - lwp# 1 / thread# 1 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (8078ef0, 808bc28, 0) + 5e > fdb2403f _cond_wait (8078ef0, 808bc28) + 64 > fdb24081 cond_wait (8078ef0, 808bc28) + 21 > fdb240ba pthread_cond_wait (8078ef0, 808bc28) + 1b > fe7217b6 void > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,decaf::internal::util::concurrent::CompletionCondition&) > (8078ef0, 808bc28, 8046e14) + 36 > fe71f400 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (808f8d0, 0, 0, 0, fe758acd) + 160 > fe758aeb void decaf::lang::Thread::join() (808ea18) + 2b > fe56b727 void activemq::threads::DedicatedTaskRunner::shutdown() (808f788) + > f7 > fe3f417a void activemq::core::ActiveMQSessionExecutor::stop() (808cb30) + 2da > fe48af48 void activemq::core::kernels::ActiveMQSessionKernel::stop() > (808c240) + 18 > fe44362a void > activemq::core::kernels::ActiveMQConsumerKernel::setMessageListener(cms::MessageListener*) > (80917d8, 8047384) + f2 > fe3aa8c3 void > activemq::core::ActiveMQConsumer::setMessageListener(cms::MessageListener*) > (808f4e8, 8047384) + 73{color} > 08055170 void SimpleAsyncConsumer::runConsumer() (8047380) + 610 > 080530d3 main (1, 80474b8, 80474c0) + 2a3 > 08052d5a _start (1, 8047618, 0, 804762e, 804763a, 8047674) + 7a > - lwp# 10 / thread# 10 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f188, 808bc48, 0) + 5e > fdb2403f _cond_wait (808f188, 808bc48) + 64 > fdb24081 cond_wait (808f188, 808bc48) + 21 > fdb240ba pthread_cond_wait (808f188, 808bc48) + 1b > fe721666 void > decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) > (808f188, 808bc48) + 1e > fe71dab3 void > __unnamed_syh4PZ6vdUWCx::doMonitorEnter(decaf::internal::util::concurrent::MonitorHandle*,decaf::internal::util::concurrent::ThreadHandle*) > (806c740, 808f8d0) + 8f > fe71fd0b void > decaf::internal::util::concurrent::Threading::enterMonitor(decaf::internal::util::concurrent::MonitorHandle*) > (806c740) + 27 > fe7aaa78 void decaf::util::concurrent::Mutex::lock() (808ec34) + 4c > fe7aa2d4 void decaf::util::concurrent::Lock::lock() (fd71fb84) + 2c > fe7aa023 decaf::util::concurrent::Lock::Lock #Nvariant > 1(decaf::util::concurrent::Synchronizable*,const bool) (fd71fb84, 808ec34, 1) > + 43 > fe44b7a4 void > activemq::core::kernels::ActiveMQConsumerKernel::dispatch(const > decaf::lang::Pointer&) > (808ebb8, fd71feb0) + 49c > fe3f4371 void activemq::core::ActiveMQSessionExecutor::dispatch(const > decaf::lang::Pointer&) > (808cb30, fd71feb0) + 11d > fe3f45be bool activemq::core::ActiveMQSessionExecutor::iterate() (808cb30) + > a2 > fe56b88a void activemq::threads::DedicatedTaskRunner::run() (808f788) + > 8e{color} > fe75889e void decaf::lang::Thread::run() (808ea18) + 1a > fe71cfbb void __unnamed_syh4PZ6vdUWCx::runCallback(void*) (808f8d0) + 2b > fe71cf52 void*__unnamed_syh4PZ6vdUWCx::threadEntryMethod(void*) (808f8d0) + > ee > fdb28ffb _thr_setup (fd814200) + 4e > fdb29300 _lwp_start (fd814200, 0, 0, fd71fff8, fdb29300, fd814200) > - lwp# 11 / thread# 11 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f5d8, 808bbc8, 0) + 5e > fdb2403f _cond_wait (808f5d8, 808bbc8) + 64 > fdb24081 cond_wait (808f5d8, 808bbc8) + 21 > fdb240ba pthread_cond_wait (808f5d8, 808bbc8) + 1b > fe721666 void > decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) > (808f5d8, 808b
[jira] [Updated] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Attachment: AMQCPP-556.patch > Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel > -- > > Key: AMQCPP-556 > URL: https://issues.apache.org/jira/browse/AMQCPP-556 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-556.patch > > > When we create a new *MessageConsumer* with a *MessageListener* from a > session, the session will be stopped before the updates of the message > listener and restarted afterward if the session already started. > However, if there have more than one consumers already started; calling > *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many > messages coming in. > {panel:title=Stack Trace when the sample program run into deadlock} > 26989: ./SimpleAsyncConsumer > - lwp# 1 / thread# 1 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (8078ef0, 808bc28, 0) + 5e > fdb2403f _cond_wait (8078ef0, 808bc28) + 64 > fdb24081 cond_wait (8078ef0, 808bc28) + 21 > fdb240ba pthread_cond_wait (8078ef0, 808bc28) + 1b > fe7217b6 void > decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,decaf::internal::util::concurrent::CompletionCondition&) > (8078ef0, 808bc28, 8046e14) + 36 > fe71f400 bool > decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long > long,int) (808f8d0, 0, 0, 0, fe758acd) + 160 > fe758aeb void decaf::lang::Thread::join() (808ea18) + 2b > fe56b727 void activemq::threads::DedicatedTaskRunner::shutdown() (808f788) + > f7 > fe3f417a void activemq::core::ActiveMQSessionExecutor::stop() (808cb30) + 2da > fe48af48 void activemq::core::kernels::ActiveMQSessionKernel::stop() > (808c240) + 18 > fe44362a void > activemq::core::kernels::ActiveMQConsumerKernel::setMessageListener(cms::MessageListener*) > (80917d8, 8047384) + f2 > fe3aa8c3 void > activemq::core::ActiveMQConsumer::setMessageListener(cms::MessageListener*) > (808f4e8, 8047384) + 73{color} > 08055170 void SimpleAsyncConsumer::runConsumer() (8047380) + 610 > 080530d3 main (1, 80474b8, 80474c0) + 2a3 > 08052d5a _start (1, 8047618, 0, 804762e, 804763a, 8047674) + 7a > - lwp# 10 / thread# 10 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f188, 808bc48, 0) + 5e > fdb2403f _cond_wait (808f188, 808bc48) + 64 > fdb24081 cond_wait (808f188, 808bc48) + 21 > fdb240ba pthread_cond_wait (808f188, 808bc48) + 1b > fe721666 void > decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) > (808f188, 808bc48) + 1e > fe71dab3 void > __unnamed_syh4PZ6vdUWCx::doMonitorEnter(decaf::internal::util::concurrent::MonitorHandle*,decaf::internal::util::concurrent::ThreadHandle*) > (806c740, 808f8d0) + 8f > fe71fd0b void > decaf::internal::util::concurrent::Threading::enterMonitor(decaf::internal::util::concurrent::MonitorHandle*) > (806c740) + 27 > fe7aaa78 void decaf::util::concurrent::Mutex::lock() (808ec34) + 4c > fe7aa2d4 void decaf::util::concurrent::Lock::lock() (fd71fb84) + 2c > fe7aa023 decaf::util::concurrent::Lock::Lock #Nvariant > 1(decaf::util::concurrent::Synchronizable*,const bool) (fd71fb84, 808ec34, 1) > + 43 > fe44b7a4 void > activemq::core::kernels::ActiveMQConsumerKernel::dispatch(const > decaf::lang::Pointer&) > (808ebb8, fd71feb0) + 49c > fe3f4371 void activemq::core::ActiveMQSessionExecutor::dispatch(const > decaf::lang::Pointer&) > (808cb30, fd71feb0) + 11d > fe3f45be bool activemq::core::ActiveMQSessionExecutor::iterate() (808cb30) + > a2 > fe56b88a void activemq::threads::DedicatedTaskRunner::run() (808f788) + > 8e{color} > fe75889e void decaf::lang::Thread::run() (808ea18) + 1a > fe71cfbb void __unnamed_syh4PZ6vdUWCx::runCallback(void*) (808f8d0) + 2b > fe71cf52 void*__unnamed_syh4PZ6vdUWCx::threadEntryMethod(void*) (808f8d0) + > ee > fdb28ffb _thr_setup (fd814200) + 4e > fdb29300 _lwp_start (fd814200, 0, 0, fd71fff8, fdb29300, fd814200) > - lwp# 11 / thread# 11 > {color:red} fdb29379 lwp_park (0, 0, 0) > fdb23b6b cond_wait_queue (808f5d8, 808bbc8, 0) + 5e > fdb2403f _cond_wait (808f5d8, 808bbc8) + 64 > fdb24081 cond_wait (808f5d8, 808bbc8) + 21 > fdb240ba pthread_cond_wait (808f5d8, 808bbc8) + 1b > fe721666 void > decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) > (808f5d8, 808bbc8) + 1e >
[jira] [Updated] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Description: When we create a new *MessageConsumer* with a *MessageListener* from a session, the session will be stopped before the updates of the message listener and restarted afterward if the session already started. However, if there have more than one consumers already started; calling *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many messages coming in. {panel:title=Stack Trace when the sample program run into deadlock} 26989: ./SimpleAsyncConsumer - lwp# 1 / thread# 1 {color:red} fdb29379 lwp_park (0, 0, 0) fdb23b6b cond_wait_queue (8078ef0, 808bc28, 0) + 5e fdb2403f _cond_wait (8078ef0, 808bc28) + 64 fdb24081 cond_wait (8078ef0, 808bc28) + 21 fdb240ba pthread_cond_wait (8078ef0, 808bc28) + 1b fe7217b6 void decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,decaf::internal::util::concurrent::CompletionCondition&) (8078ef0, 808bc28, 8046e14) + 36 fe71f400 bool decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long long,int) (808f8d0, 0, 0, 0, fe758acd) + 160 fe758aeb void decaf::lang::Thread::join() (808ea18) + 2b fe56b727 void activemq::threads::DedicatedTaskRunner::shutdown() (808f788) + f7 fe3f417a void activemq::core::ActiveMQSessionExecutor::stop() (808cb30) + 2da fe48af48 void activemq::core::kernels::ActiveMQSessionKernel::stop() (808c240) + 18 fe44362a void activemq::core::kernels::ActiveMQConsumerKernel::setMessageListener(cms::MessageListener*) (80917d8, 8047384) + f2 fe3aa8c3 void activemq::core::ActiveMQConsumer::setMessageListener(cms::MessageListener*) (808f4e8, 8047384) + 73{color} 08055170 void SimpleAsyncConsumer::runConsumer() (8047380) + 610 080530d3 main (1, 80474b8, 80474c0) + 2a3 08052d5a _start (1, 8047618, 0, 804762e, 804763a, 8047674) + 7a - lwp# 10 / thread# 10 {color:red} fdb29379 lwp_park (0, 0, 0) fdb23b6b cond_wait_queue (808f188, 808bc48, 0) + 5e fdb2403f _cond_wait (808f188, 808bc48) + 64 fdb24081 cond_wait (808f188, 808bc48) + 21 fdb240ba pthread_cond_wait (808f188, 808bc48) + 1b fe721666 void decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) (808f188, 808bc48) + 1e fe71dab3 void __unnamed_syh4PZ6vdUWCx::doMonitorEnter(decaf::internal::util::concurrent::MonitorHandle*,decaf::internal::util::concurrent::ThreadHandle*) (806c740, 808f8d0) + 8f fe71fd0b void decaf::internal::util::concurrent::Threading::enterMonitor(decaf::internal::util::concurrent::MonitorHandle*) (806c740) + 27 fe7aaa78 void decaf::util::concurrent::Mutex::lock() (808ec34) + 4c fe7aa2d4 void decaf::util::concurrent::Lock::lock() (fd71fb84) + 2c fe7aa023 decaf::util::concurrent::Lock::Lock #Nvariant 1(decaf::util::concurrent::Synchronizable*,const bool) (fd71fb84, 808ec34, 1) + 43 fe44b7a4 void activemq::core::kernels::ActiveMQConsumerKernel::dispatch(const decaf::lang::Pointer&) (808ebb8, fd71feb0) + 49c fe3f4371 void activemq::core::ActiveMQSessionExecutor::dispatch(const decaf::lang::Pointer&) (808cb30, fd71feb0) + 11d fe3f45be bool activemq::core::ActiveMQSessionExecutor::iterate() (808cb30) + a2 fe56b88a void activemq::threads::DedicatedTaskRunner::run() (808f788) + 8e{color} fe75889e void decaf::lang::Thread::run() (808ea18) + 1a fe71cfbb void __unnamed_syh4PZ6vdUWCx::runCallback(void*) (808f8d0) + 2b fe71cf52 void*__unnamed_syh4PZ6vdUWCx::threadEntryMethod(void*) (808f8d0) + ee fdb28ffb _thr_setup (fd814200) + 4e fdb29300 _lwp_start (fd814200, 0, 0, fd71fff8, fdb29300, fd814200) - lwp# 11 / thread# 11 {color:red} fdb29379 lwp_park (0, 0, 0) fdb23b6b cond_wait_queue (808f5d8, 808bbc8, 0) + 5e fdb2403f _cond_wait (808f5d8, 808bbc8) + 64 fdb24081 cond_wait (808f5d8, 808bbc8) + 21 fdb240ba pthread_cond_wait (808f5d8, 808bbc8) + 1b fe721666 void decaf::internal::util::concurrent::PlatformThread::waitOnCondition(_pthread_cond*,_pthread_mutex*) (808f5d8, 808bbc8) + 1e fe71dab3 void __unnamed_syh4PZ6vdUWCx::doMonitorEnter(decaf::internal::util::concurrent::MonitorHandle*,decaf::internal::util::concurrent::ThreadHandle*) (806c7a0, 8093c18) + 8f fe71fd0b void decaf::internal::util::concurrent::Threading::enterMonitor(decaf::internal::util::concurrent::MonitorHandle*) (806c7a0) + 27 fe7aaa78 void decaf::util::concurrent::Mutex::lock() (80798b0) + 4c fe7aa2d4 void decaf::util::concurrent::Lock::lock() (fd73fda4) + 2c fe7aa023 decaf::util::concurrent::Lock::Lock #Nvariant 1(decaf::util::concurrent::Synchronizable*,const bool) (fd73fda4, 80798b0, 1) + 43 fe434d3d decaf::lang::Pointeractivemq::core::SimplePriorityMessageDispatchChann
[jira] [Updated] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Description: When we create a new *MessageConsumer* with a *MessageListener* from a session, the session will be stopped before the updates of the message listener and restarted afterward if the session already started. However, if there have more than one consumers already started; calling *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many messages coming in. > Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel > -- > > Key: AMQCPP-556 > URL: https://issues.apache.org/jira/browse/AMQCPP-556 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-556.patch > > > When we create a new *MessageConsumer* with a *MessageListener* from a > session, the session will be stopped before the updates of the message > listener and restarted afterward if the session already started. > However, if there have more than one consumers already started; calling > *ActiveMQSessionKernel::stop()* may goes into a deadlock if there have many > messages coming in. -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
[ https://issues.apache.org/jira/browse/AMQCPP-556?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-556: Attachment: AMQCPP-556.patch > Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel > -- > > Key: AMQCPP-556 > URL: https://issues.apache.org/jira/browse/AMQCPP-556 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl >Affects Versions: 3.8.3 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-556.patch > > -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (AMQCPP-556) Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel
Jeremy Leung created AMQCPP-556: --- Summary: Stop ActiveMQSessionKernel should also stop the ActiveMQConsumerKernel Key: AMQCPP-556 URL: https://issues.apache.org/jira/browse/AMQCPP-556 Project: ActiveMQ C++ Client Issue Type: Bug Components: CMS Impl Affects Versions: 3.8.3 Reporter: Jeremy Leung Assignee: Timothy Bish -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Updated] (AMQCPP-548) Too many temporary std::string in Mutex and decaf::lang::Integer::toString(int)
[ https://issues.apache.org/jira/browse/AMQCPP-548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-548: Attachment: AMQCPP-548-1.patch I think we no longer need the variable length as the vector buffer already contains such information. > Too many temporary std::string in Mutex and > decaf::lang::Integer::toString(int) > > > Key: AMQCPP-548 > URL: https://issues.apache.org/jira/browse/AMQCPP-548 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Fix For: 3.8.4, 3.9.0 > > Attachments: AMQCPP-548-1.patch, AMQCPP-548.patch > > > Every Mutex will associated with a MutexProperties and the name of the Mutex > is actually generated by the DEFAULT_NAME_PREFIX plus a call to > Integer::toString( ++id ). > From the profiling of our application (highly multi-threaded), we found that > many times are spent in the std::basic_string allocation and deallocation > inside the functions decaf::lang::Integer::toString(int) and > decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Commented] (AMQCPP-548) Too many temporary std::string in Mutex and decaf::lang::Integer::toString(int)
[ https://issues.apache.org/jira/browse/AMQCPP-548?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14086029#comment-14086029 ] Jeremy Leung commented on AMQCPP-548: - The chagnes for RVO is mainly in favor to SunStudio 11 compiler which doesn't support NRVO > Too many temporary std::string in Mutex and > decaf::lang::Integer::toString(int) > > > Key: AMQCPP-548 > URL: https://issues.apache.org/jira/browse/AMQCPP-548 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-548.patch > > > Every Mutex will associated with a MutexProperties and the name of the Mutex > is actually generated by the DEFAULT_NAME_PREFIX plus a call to > Integer::toString( ++id ). > From the profiling of our application (highly multi-threaded), we found that > many times are spent in the std::basic_string allocation and deallocation > inside the functions decaf::lang::Integer::toString(int) and > decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (AMQCPP-548) Too many temporary std::string in Mutex and decaf::lang::Integer::toString(int)
[ https://issues.apache.org/jira/browse/AMQCPP-548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-548: Summary: Too many temporary std::string in Mutex and decaf::lang::Integer::toString(int) (was: Too many std::string copy in decaf::lang::Integer::toString(int)) > Too many temporary std::string in Mutex and > decaf::lang::Integer::toString(int) > > > Key: AMQCPP-548 > URL: https://issues.apache.org/jira/browse/AMQCPP-548 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-548.patch > > > Every Mutex will associated with a MutexProperties and the name of the Mutex > is actually generated by the DEFAULT_NAME_PREFIX plus a call to > Integer::toString( ++id ). > From the profiling of our application (highly multi-threaded), we found that > many times are spent in the std::basic_string allocation and deallocation > inside the functions decaf::lang::Integer::toString(int) and > decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (AMQCPP-548) Too many std::string copy in decaf::lang::Integer::toString(int)
[ https://issues.apache.org/jira/browse/AMQCPP-548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-548: Patch Info: Patch Available > Too many std::string copy in decaf::lang::Integer::toString(int) > > > Key: AMQCPP-548 > URL: https://issues.apache.org/jira/browse/AMQCPP-548 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-548.patch > > > Every Mutex will associated with a MutexProperties and the name of the Mutex > is actually generated by the DEFAULT_NAME_PREFIX plus a call to > Integer::toString( ++id ). > From the profiling of our application (highly multi-threaded), we found that > many times are spent in the std::basic_string allocation and deallocation > inside the functions decaf::lang::Integer::toString(int) and > decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (AMQCPP-548) Too many std::string copy in decaf::lang::Integer::toString(int)
[ https://issues.apache.org/jira/browse/AMQCPP-548?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-548: Attachment: AMQCPP-548.patch > Too many std::string copy in decaf::lang::Integer::toString(int) > > > Key: AMQCPP-548 > URL: https://issues.apache.org/jira/browse/AMQCPP-548 > Project: ActiveMQ C++ Client > Issue Type: Improvement > Components: Decaf >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-548.patch > > > Every Mutex will associated with a MutexProperties and the name of the Mutex > is actually generated by the DEFAULT_NAME_PREFIX plus a call to > Integer::toString( ++id ). > From the profiling of our application (highly multi-threaded), we found that > many times are spent in the std::basic_string allocation and deallocation > inside the functions decaf::lang::Integer::toString(int) and > decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Created] (AMQCPP-548) Too many std::string copy in decaf::lang::Integer::toString(int)
Jeremy Leung created AMQCPP-548: --- Summary: Too many std::string copy in decaf::lang::Integer::toString(int) Key: AMQCPP-548 URL: https://issues.apache.org/jira/browse/AMQCPP-548 Project: ActiveMQ C++ Client Issue Type: Improvement Components: Decaf Affects Versions: 3.8.2 Reporter: Jeremy Leung Assignee: Timothy Bish Every Mutex will associated with a MutexProperties and the name of the Mutex is actually generated by the DEFAULT_NAME_PREFIX plus a call to Integer::toString( ++id ). >From the profiling of our application (highly multi-threaded), we found that >many times are spent in the std::basic_string allocation and deallocation >inside the functions decaf::lang::Integer::toString(int) and >decaf::lang::Integer::toString(int, int). -- This message was sent by Atlassian JIRA (v6.2#6252)
[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Description: This happen in random; and will cause core dump under Solaris 10. {panel:title=Core dump happened on thread #22 which is a thread for IO for activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} {noformat} t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax (dbx) where -h current thread: t@22 =>[1] activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, 0xfa567ce0), at 0xfcbef02c [2] activemq::transport::TransportFilter::onCommand(0x116c3700, 0xfa567d20), at 0xfcb7ae15 [3] activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, 0xfa567d70), at 0xfcc5ff05 [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, 0xfa567de0), at 0xfcb7ae15 [5] activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, 0xfa567e40), at 0xfcbf69f7 [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, 0xfa567e90), at 0xfcb7ae15 [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at 0xfcb78a49 [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 [12] _thr_setup(0xfac2a200), at 0xfc0771c0 [13] _lwp_start(), at 0xfc0774b0 {noformat} {panel} {panel:title=Stack trace for the main thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} {noformat} - lwp# 1 / thread# 1 fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e fcd21550 bool decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, 1bbc1e10, 493e0, 0, 0, 8046434) + 110 fcd1f051 bool decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) (f3b1730, 493e0, 0) + e5 fcbd26d3 void activemq::transport::failover::FailoverTransport::close() (efde3f8) + 327 fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) (eef0fb8, 0, 0) + 52f fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 0888e6ec main (7, 80475dc, 80475fc) + 149 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a {noformat} {panel} This is happen only during the disconnect. So, what i suspected is that there have an concurrent issue between the ActiveMQConnection, TransportFilter, FailoverTransportListener. As i dig into the code, i see during the disconnection, the transport listener will being set to NULL at the very first stage. However, the another thread may have access to the pointer of the null transport listener as the NULL check is not thread safe. {noformat} void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { try { // Clear the listener, we don't care about async errors at this point. this->config->transport->setTransportListener(NULL); [...] {noformat} {noformat} void FailoverTransportListener::onCommand(const Pointer command) { if (command == NULL) { return; } if (command->isResponse()) { Pointer response = command.dynamicCast(); parent->processResponse(response); } if (!parent->isInitialized()) { parent->setInitialized(true); } if (command->isConnectionControl()) { parent->handleConnectionControl(command); } if (parent->getTransportListener() != NULL) { parent->getTransportListener()->onCommand(command); } } {noformat} {noformat} void TransportFilter::onCommand(const Pointer command) { if (!this->impl->started.get() || this->impl->closed.get()) { return; } try { if (this->listener != NULL) { this->listener->onCommand(command); } } catch (...) { } } {noformat} was: This happen in random; and will cause core dump under Solaris 10. {panel:title=
[jira] [Updated] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
[ https://issues.apache.org/jira/browse/AMQCPP-534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-534: Description: This happen in random; and will cause core dump under Solaris 10. {panel:title=Core dump happened on thread #22 which is a thread for IO for activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} {noformat} t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax (dbx) where -h current thread: t@22 =>[1] activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, 0xfa567ce0), at 0xfcbef02c [2] activemq::transport::TransportFilter::onCommand(0x116c3700, 0xfa567d20), at 0xfcb7ae15 [3] activemq::wireformat::openwire::OpenWireFormatNegotiator::onCommand(0x116c3700, 0xfa567d70), at 0xfcc5ff05 [4] activemq::transport::TransportFilter::onCommand(0x10bdaaa0, 0xfa567de0), at 0xfcb7ae15 [5] activemq::transport::inactivity::InactivityMonitor::onCommand(0x10bdaaa0, 0xfa567e40), at 0xfcbf69f7 [6] activemq::transport::TransportFilter::onCommand(0x1027cbc0, 0xfa567e90), at 0xfcb7ae15 [7] activemq::transport::IOTransport::fire(0x1bbc4ab8, 0xfa567ef0), at 0xfcb78a49 [8] activemq::transport::IOTransport::run(0x1bbc4ab8), at 0xfcb79827 [9] decaf::lang::Thread::run(0x1c2080a0), at 0xfcd58512 [10] __unnamed_syh4P47F8S2uD::runCallback(0x1c21c138), at 0xfcd1cc2f [11] __unnamed_syh4P47F8S2uD::threadEntryMethod(0x1c21c138), at 0xfcd1cbc6 [12] _thr_setup(0xfac2a200), at 0xfc0771c0 [13] _lwp_start(), at 0xfc0774b0 {noformat} {panel} {panel:title=Stack trace for the main thread|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} {noformat} - lwp# 1 / thread# 1 fc07750b __lwp_park (163995d8, 1bbc1e10, 8046358) + b fc071d07 cond_wait_queue (163995d8, 1bbc1e10, 8046358) + 5e fc072084 cond_wait_common (163995d8, 1bbc1e10, 8046358) + 1db fc0722b6 _cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 51 fc072321 cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 24 fc07235d pthread_cond_timedwait (163995d8, 1bbc1e10, 80463c8) + 1e fcd21550 bool decaf::internal::util::concurrent::PlatformThread::interruptibleWaitOnCondition(_pthread_cond*,_pthread_mutex*,long long,int,decaf::internal::util::concurrent::CompletionCondition&) (163995d8, 1bbc1e10, 493e0, 0, 0, 8046434) + 110 fcd1f051 bool decaf::internal::util::concurrent::Threading::join(decaf::internal::util::concurrent::ThreadHandle*,long long,int) (1bbe5660, 493e0, 0, 0, fcd5877a) + 13d fcd587a0 void decaf::lang::Thread::join(long long) (1c20d270, 493e0, 0) + 38 fcb61945 void activemq::threads::CompositeTaskRunner::shutdown(long long) (f3b1730, 493e0, 0) + e5 fcbd26d3 void activemq::transport::failover::FailoverTransport::close() (efde3f8) + 327 fcb7b799 void activemq::transport::TransportFilter::close() (118b49e0) + 191 fc940003 void activemq::core::ActiveMQConnection::disconnect(long long) (eef0fb8, 0, 0) + 52f fc93c3f3 void activemq::core::ActiveMQConnection::close() (eef0fb8) + b47 0888e6ec main (7, 80475dc, 80475fc) + 149 0888dd6a _start (7, 9e7dafc, 804775d, 8047760, 8047769, 804777f) + 7a {noformat} {panel} This is happen only during the disconnect. So, what i suspected is that there have an concurrent issue between the ActiveMQConnection and the TransportFilter. As i dig into the code, i see during the disconnection, the transport listener will being set to NULL at the very first stage. {noformat} void ActiveMQConnection::disconnect(long long lastDeliveredSequenceId) { try { // Clear the listener, we don't care about async errors at this point. this->config->transport->setTransportListener(NULL); [...] {noformat} > Closing connection with setTransportListener to NULL may cause core dump > > > Key: AMQCPP-534 > URL: https://issues.apache.org/jira/browse/AMQCPP-534 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Transports >Affects Versions: 3.8.2 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > This happen in random; and will cause core dump under Solaris 10. > {panel:title=Core dump happened on thread #22 which is a thread for IO for > activemq|borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1|bgColor=#CE} > {noformat} > t@22 (l@22) terminated by signal SEGV (no mapping at the fault address) > 0xfcbef02c: onCommand+0x0370: movl (%edi),%eax > (dbx) where -h > current thread: t@22 > =>[1] > activemq::transport::failover::FailoverTransportListener::onCommand(0x1c20d280, > 0xfa567ce0), at 0xfcbef02c > [2] activemq::transport::TransportFilter::onCommand(0x116c3700, > 0xfa567d20), at 0xfcb7ae15 > [3] > active
[jira] [Created] (AMQCPP-534) Closing connection with setTransportListener to NULL may cause core dump
Jeremy Leung created AMQCPP-534: --- Summary: Closing connection with setTransportListener to NULL may cause core dump Key: AMQCPP-534 URL: https://issues.apache.org/jira/browse/AMQCPP-534 Project: ActiveMQ C++ Client Issue Type: Bug Components: Transports Affects Versions: 3.8.2 Reporter: Jeremy Leung Assignee: Timothy Bish -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (AMQCPP-515) Stomp frame mishandled duplicate headers
[ https://issues.apache.org/jira/browse/AMQCPP-515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-515: Attachment: AMQCPP-515.patch > Stomp frame mishandled duplicate headers > > > Key: AMQCPP-515 > URL: https://issues.apache.org/jira/browse/AMQCPP-515 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.8.0 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: AMQCPP-515.patch > > > http://stomp.github.io/stomp-specification-1.1.html#Repeated_Header_Entries -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (AMQCPP-515) Stomp frame mishandled duplicate headers
[ https://issues.apache.org/jira/browse/AMQCPP-515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-515: Patch Info: Patch Available > Stomp frame mishandled duplicate headers > > > Key: AMQCPP-515 > URL: https://issues.apache.org/jira/browse/AMQCPP-515 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.8.0 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > http://stomp.github.io/stomp-specification-1.1.html#Repeated_Header_Entries -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (AMQCPP-515) Stomp frame mishandled duplicate headers
[ https://issues.apache.org/jira/browse/AMQCPP-515?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-515: Description: http://stomp.github.io/stomp-specification-1.1.html#Repeated_Header_Entries > Stomp frame mishandled duplicate headers > > > Key: AMQCPP-515 > URL: https://issues.apache.org/jira/browse/AMQCPP-515 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.8.0 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > http://stomp.github.io/stomp-specification-1.1.html#Repeated_Header_Entries -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Created] (AMQCPP-515) Stomp frame mishandled duplicate headers
Jeremy Leung created AMQCPP-515: --- Summary: Stomp frame mishandled duplicate headers Key: AMQCPP-515 URL: https://issues.apache.org/jira/browse/AMQCPP-515 Project: ActiveMQ C++ Client Issue Type: Bug Components: Stomp Affects Versions: 3.8.0 Reporter: Jeremy Leung Assignee: Timothy Bish -- This message was sent by Atlassian JIRA (v6.1#6144)
[jira] [Updated] (AMQCPP-489) Compilation Error Fix for Sun Studio under Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-489: Attachment: patch.AMQCPP-489.txt > Compilation Error Fix for Sun Studio under Solaris 10 > - > > Key: AMQCPP-489 > URL: https://issues.apache.org/jira/browse/AMQCPP-489 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf, Example Code >Affects Versions: 3.7.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Attachments: patch.AMQCPP-489.txt > > > Some errors affect the compilation of the library under Solaris 10 with Sun > Studio -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-489) Fix for Sun Studio
[ https://issues.apache.org/jira/browse/AMQCPP-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-489: Description: Some errors affect the compilation of the library under Solaris 10 with Sun Studio > Fix for Sun Studio > -- > > Key: AMQCPP-489 > URL: https://issues.apache.org/jira/browse/AMQCPP-489 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf, Example Code >Affects Versions: 3.7.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > > Some errors affect the compilation of the library under Solaris 10 with Sun > Studio -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-489) Compilation Error Fix for Sun Studio under Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-489?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-489: Summary: Compilation Error Fix for Sun Studio under Solaris 10 (was: Fix for Sun Studio) > Compilation Error Fix for Sun Studio under Solaris 10 > - > > Key: AMQCPP-489 > URL: https://issues.apache.org/jira/browse/AMQCPP-489 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf, Example Code >Affects Versions: 3.7.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > > Some errors affect the compilation of the library under Solaris 10 with Sun > Studio -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (AMQCPP-489) Fix for Sun Studio
Jeremy Leung created AMQCPP-489: --- Summary: Fix for Sun Studio Key: AMQCPP-489 URL: https://issues.apache.org/jira/browse/AMQCPP-489 Project: ActiveMQ C++ Client Issue Type: Bug Components: Decaf, Example Code Affects Versions: 3.7.0 Environment: Solaris 10 Reporter: Jeremy Leung Assignee: Timothy Bish Priority: Blocker -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13647152#comment-13647152 ] Jeremy Leung commented on AMQCPP-476: - Thanks Timothy. Overlooked that there have a readFully function. > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 > Apollo > AMQ >Reporter: Jeremy Leung >Assignee: Timothy Bish > Fix For: 3.7.0 > > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | JAVA PUBLISHER | > or > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | C++ PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13645433#comment-13645433 ] Jeremy Leung commented on AMQCPP-476: - Is the fix okay? > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 > Apollo > AMQ >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | JAVA PUBLISHER | > or > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | C++ PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Environment: Solaris 10 Apollo AMQ was:Solaris 10 > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 > Apollo > AMQ >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | JAVA PUBLISHER | > or > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | C++ PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Description: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | JAVA PUBLISHER | or | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | C++ PUBLISHER | was: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | or | C++ CONSUMER | <- | APOLLO 1.6 | <- | C++ PUBLISHER | > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | JAVA PUBLISHER | > or > | C++ CONSUMER | <- | APOLLO 1.6 / AMQ 5.4.2 | <- | C++ PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Comment Edited] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628784#comment-13628784 ] Jeremy Leung edited comment on AMQCPP-476 at 4/11/13 9:32 AM: -- I forgot this can be reproduced easily by using the BytesMessage instead of TextMessage. I have added the Bulk send test for stomp with BytesMessage and can reproduce the problems. activemq::test::stomp::StompSimpleRollbackTest::testRollbacks. : OK activemq::test::stomp::StompTransactionTest::testSendReceiveTransactedBatches. : OK activemq::test::stomp::StompTransactionTest::testSendRollback. : OK activemq::test::stomp::StompTransactionTest::testWithTTLSet. : OK activemq::test::stomp::StompSlowListenerTest::testSlowListener. : OK activemq::test::stomp::StompSimpleTest::testAutoAck. : OK activemq::test::stomp::StompSimpleTest::testClientAck. : OK activemq::test::stomp::StompSimpleTest::testProducerWithNullDestination. : OK activemq::test::stomp::StompSimpleTest::testSyncReceive. : OK activemq::test::stomp::StompSimpleTest::testSyncReceiveClientAck. : OK activemq::test::stomp::StompSimpleTest::testMultipleConnections. : OK activemq::test::stomp::StompSimpleTest::testMultipleSessions. : OK activemq::test::stomp::StompSimpleTest::testReceiveAlreadyInQueue. : OK activemq::test::stomp::StompSimpleTest::testQuickCreateAndDestroy. : OK activemq::test::stomp::StompExpirationTest::testExpired. : OK activemq::test::stomp::StompExpirationTest::testNotExpired. : OK activemq::test::stomp::StompDurableTest::testDurableConsumer. : assertionF activemq::test::stomp::StompCmsConnectionStartStopTest::testStoppedConsumerHoldsMessagesTillStarted. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testMultipleConnectionStops. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testConcurrentSessionCreateWithStart. : OK activemq::test::stomp::StompCmsTemplateTest::testBasics. : OK activemq::test::stomp::StompCmsTemplateTest::testReceiveException. : OK activemq::test::stomp::StompCmsTemplateTest::testSendException. : OK activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive. : assertionF activemq::test::stomp::StompAsyncSenderTest::testAsyncSends. : OK !!!FAILURES!!! Test Results: Run: 25 Failures: 2 Errors: 0 1) test: activemq::test::stomp::StompDurableTest::testDurableConsumer (F) line: 75 activemq/test/DurableTest.cpp assertion failed - Expression: received.get() != NULL - Failed to receive all messages in batch 2) test: activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive (F) line: 108 activemq/test/BulkMessageTest.cpp unexpected exception caught - Caught: cms::CMSException - What(): StompWireFormat::readStompBody: Read Content Length, and no trailing null was (Author: jeremyleung): I forgot this can be reproduced easily by using the BytesMessage instead of TextMessage. I have added the Bulk send test for stomp with BytesMessage and can reproduce the problems. activemq::test::stomp::StompSimpleRollbackTest::testRollbacks. : OK activemq::test::stomp::StompTransactionTest::testSendReceiveTransactedBatches. : OK activemq::test::stomp::StompTransactionTest::testSendRollback. : OK activemq::test::stomp::StompTransactionTest::testWithTTLSet. : OK activemq::test::stomp::StompSlowListenerTest::testSlowListener. : OK activemq::test::stomp::StompSimpleTest::testAutoAck. : OK activemq::test::stomp::StompSimpleTest::testClientAck. : OK activemq::test::stomp::StompSimpleTest::testProducerWithNullDestination. : OK activemq::test::stomp::StompSimpleTest::testSyncReceive. : OK activemq::test::stomp::StompSimpleTest::testSyncReceiveClientAck. : OK activemq::test::stomp::StompSimpleTest::testMultipleConnections. : OK activemq::test::stomp::StompSimpleTest::testMultipleSessions. : OK activemq::test::stomp::StompSimpleTest::testReceiveAlreadyInQueue. : OK activemq::test::stomp::StompSimpleTest::testQuickCreateAndDestroy. : OK activemq::test::stomp::StompExpirationTest::testExpired. : OK activemq::test::stomp::StompExpirationTest::testNotExpired. : OK activemq::test::stomp::StompDurableTest::testDurableConsumer. : assertionF activemq::test::stomp::StompCmsConnectionStartStopTest::testStoppedConsumerHoldsMessagesTillStarted. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testMultipleConnectionStops. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testConcurrentSessionCreateWithStart. : OK activemq::test::stomp::StompCmsTemplateTest::testBasics. : OK activemq::test::stomp::StompCmsTemplateTest::testReceiveException. : OK activemq::test::stomp::StompCmsTemplateTest::testSendException. : OK activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive. : OK activemq::test::stomp::StompAsyncSenderTest::testAsyncSends. : OK !!!FAILURES!!! Test Results: Run: 25 Failures: 1 Errors: 0 1) test: acti
[jira] [Comment Edited] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628784#comment-13628784 ] Jeremy Leung edited comment on AMQCPP-476 at 4/11/13 9:29 AM: -- I forgot this can be reproduced easily by using the BytesMessage instead of TextMessage. I have added the Bulk send test for stomp with BytesMessage and can reproduce the problems. activemq::test::stomp::StompSimpleRollbackTest::testRollbacks. : OK activemq::test::stomp::StompTransactionTest::testSendReceiveTransactedBatches. : OK activemq::test::stomp::StompTransactionTest::testSendRollback. : OK activemq::test::stomp::StompTransactionTest::testWithTTLSet. : OK activemq::test::stomp::StompSlowListenerTest::testSlowListener. : OK activemq::test::stomp::StompSimpleTest::testAutoAck. : OK activemq::test::stomp::StompSimpleTest::testClientAck. : OK activemq::test::stomp::StompSimpleTest::testProducerWithNullDestination. : OK activemq::test::stomp::StompSimpleTest::testSyncReceive. : OK activemq::test::stomp::StompSimpleTest::testSyncReceiveClientAck. : OK activemq::test::stomp::StompSimpleTest::testMultipleConnections. : OK activemq::test::stomp::StompSimpleTest::testMultipleSessions. : OK activemq::test::stomp::StompSimpleTest::testReceiveAlreadyInQueue. : OK activemq::test::stomp::StompSimpleTest::testQuickCreateAndDestroy. : OK activemq::test::stomp::StompExpirationTest::testExpired. : OK activemq::test::stomp::StompExpirationTest::testNotExpired. : OK activemq::test::stomp::StompDurableTest::testDurableConsumer. : assertionF activemq::test::stomp::StompCmsConnectionStartStopTest::testStoppedConsumerHoldsMessagesTillStarted. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testMultipleConnectionStops. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testConcurrentSessionCreateWithStart. : OK activemq::test::stomp::StompCmsTemplateTest::testBasics. : OK activemq::test::stomp::StompCmsTemplateTest::testReceiveException. : OK activemq::test::stomp::StompCmsTemplateTest::testSendException. : OK activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive. : OK activemq::test::stomp::StompAsyncSenderTest::testAsyncSends. : OK !!!FAILURES!!! Test Results: Run: 25 Failures: 1 Errors: 0 1) test: activemq::test::stomp::StompDurableTest::testDurableConsumer (F) line: 75 activemq/test/DurableTest.cpp assertion failed - Expression: received.get() != NULL - Failed to receive all messages in batch was (Author: jeremyleung): I forgot this can be reproduced by using the BytesMessage instead of TextMessage. activemq::test::stomp::StompSimpleRollbackTest::testRollbacks. : OK activemq::test::stomp::StompTransactionTest::testSendReceiveTransactedBatches. : OK activemq::test::stomp::StompTransactionTest::testSendRollback. : OK activemq::test::stomp::StompTransactionTest::testWithTTLSet. : OK activemq::test::stomp::StompSlowListenerTest::testSlowListener. : OK activemq::test::stomp::StompSimpleTest::testAutoAck. : OK activemq::test::stomp::StompSimpleTest::testClientAck. : OK activemq::test::stomp::StompSimpleTest::testProducerWithNullDestination. : OK activemq::test::stomp::StompSimpleTest::testSyncReceive. : OK activemq::test::stomp::StompSimpleTest::testSyncReceiveClientAck. : OK activemq::test::stomp::StompSimpleTest::testMultipleConnections. : OK activemq::test::stomp::StompSimpleTest::testMultipleSessions. : OK activemq::test::stomp::StompSimpleTest::testReceiveAlreadyInQueue. : OK activemq::test::stomp::StompSimpleTest::testQuickCreateAndDestroy. : OK activemq::test::stomp::StompExpirationTest::testExpired. : OK activemq::test::stomp::StompExpirationTest::testNotExpired. : OK activemq::test::stomp::StompDurableTest::testDurableConsumer. : assertionF activemq::test::stomp::StompCmsConnectionStartStopTest::testStoppedConsumerHoldsMessagesTillStarted. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testMultipleConnectionStops. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testConcurrentSessionCreateWithStart. : OK activemq::test::stomp::StompCmsTemplateTest::testBasics. : OK activemq::test::stomp::StompCmsTemplateTest::testReceiveException. : OK activemq::test::stomp::StompCmsTemplateTest::testSendException. : OK activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive. : assertionF activemq::test::stomp::StompAsyncSenderTest::testAsyncSends. : OK !!!FAILURES!!! Test Results: Run: 25 Failures: 1 Errors: 0 1) test: activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive (F) line: 108 activemq/test/BulkMessageTest.cpp unexpected exception caught - Caught: cms::CMSException - What(): StompWireFormat::readStompBody: Read Content Length, and no trailing null > Reading of Stomp Frame with content length may throw excecption > --
[jira] [Issue Comment Deleted] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Comment: was deleted (was: The problems can't reproduce with C++ publisher and consumer. Attached the test programs. ) > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Description: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | or | C++ CONSUMER | <- | APOLLO 1.6 | <- | C++ PUBLISHER | was: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | > or > | C++ CONSUMER | <- | APOLLO 1.6 | <- | C++ PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Attachment: unit_test.txt > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt, > unit_test.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628784#comment-13628784 ] Jeremy Leung commented on AMQCPP-476: - I forgot this can be reproduced by using the BytesMessage instead of TextMessage. activemq::test::stomp::StompSimpleRollbackTest::testRollbacks. : OK activemq::test::stomp::StompTransactionTest::testSendReceiveTransactedBatches. : OK activemq::test::stomp::StompTransactionTest::testSendRollback. : OK activemq::test::stomp::StompTransactionTest::testWithTTLSet. : OK activemq::test::stomp::StompSlowListenerTest::testSlowListener. : OK activemq::test::stomp::StompSimpleTest::testAutoAck. : OK activemq::test::stomp::StompSimpleTest::testClientAck. : OK activemq::test::stomp::StompSimpleTest::testProducerWithNullDestination. : OK activemq::test::stomp::StompSimpleTest::testSyncReceive. : OK activemq::test::stomp::StompSimpleTest::testSyncReceiveClientAck. : OK activemq::test::stomp::StompSimpleTest::testMultipleConnections. : OK activemq::test::stomp::StompSimpleTest::testMultipleSessions. : OK activemq::test::stomp::StompSimpleTest::testReceiveAlreadyInQueue. : OK activemq::test::stomp::StompSimpleTest::testQuickCreateAndDestroy. : OK activemq::test::stomp::StompExpirationTest::testExpired. : OK activemq::test::stomp::StompExpirationTest::testNotExpired. : OK activemq::test::stomp::StompDurableTest::testDurableConsumer. : assertionF activemq::test::stomp::StompCmsConnectionStartStopTest::testStoppedConsumerHoldsMessagesTillStarted. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testMultipleConnectionStops. : OK activemq::test::stomp::StompCmsConnectionStartStopTest::testConcurrentSessionCreateWithStart. : OK activemq::test::stomp::StompCmsTemplateTest::testBasics. : OK activemq::test::stomp::StompCmsTemplateTest::testReceiveException. : OK activemq::test::stomp::StompCmsTemplateTest::testSendException. : OK activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive. : assertionF activemq::test::stomp::StompAsyncSenderTest::testAsyncSends. : OK !!!FAILURES!!! Test Results: Run: 25 Failures: 1 Errors: 0 1) test: activemq::test::stomp::StompBulkMessageTest::testBulkMessageSendReceive (F) line: 108 activemq/test/BulkMessageTest.cpp unexpected exception caught - Caught: cms::CMSException - What(): StompWireFormat::readStompBody: Read Content Length, and no trailing null > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13628534#comment-13628534 ] Jeremy Leung commented on AMQCPP-476: - The problems can't reproduce with C++ publisher and consumer. Attached the test programs. > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Attachment: Publisher.java > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, Publisher.java, StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Attachment: consumer.cpp > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: consumer.cpp, StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Description: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. X--XXXXX | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | X--XXXXX was: To Reproduce 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > X--XXXXX > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | > X--XXXXX -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Description: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | was: -- HOW TO REPRODUCE -- 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" -- BLOCK DIAGRAM -- All components are in different hosts and all run under Solaris 10 environment. X--XXXXX | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | X--XXXXX > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: StompFrame.cpp.patch.txt > > > -- HOW TO REPRODUCE -- > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" > -- BLOCK DIAGRAM -- > All components are in different hosts and all run under Solaris 10 > environment. > | C++ CONSUMER | <- | APOLLO 1.6 | <- | JAVA PUBLISHER | -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Patch Info: Patch Available > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: StompFrame.cpp.patch.txt > > > To Reproduce > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Attachment: StompFrame.cpp.patch.txt src/main/activemq/wireformat/stomp/StompFrame.cpp > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > Attachments: StompFrame.cpp.patch.txt > > > To Reproduce > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
[ https://issues.apache.org/jira/browse/AMQCPP-476?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-476: Description: To Reproduce 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. 2) Setup a publisher to send a messages from java JMS interface to Topic XXX continually. (with org.fusesource.stomp.jms.*) 3) An exception is thrown in consumer from StompWireFormat::readStompBody() with description "Read Content Length, and no trailing null" > Reading of Stomp Frame with content length may throw excecption > --- > > Key: AMQCPP-476 > URL: https://issues.apache.org/jira/browse/AMQCPP-476 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Stomp >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish > > To Reproduce > 1) Setup a consumer to listen for messages on Topic XXX using CMS with stomp. > 2) Setup a publisher to send a messages from java JMS interface to Topic XXX > continually. (with org.fusesource.stomp.jms.*) > 3) An exception is thrown in consumer from StompWireFormat::readStompBody() > with description "Read Content Length, and no trailing null" -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (AMQCPP-476) Reading of Stomp Frame with content length may throw excecption
Jeremy Leung created AMQCPP-476: --- Summary: Reading of Stomp Frame with content length may throw excecption Key: AMQCPP-476 URL: https://issues.apache.org/jira/browse/AMQCPP-476 Project: ActiveMQ C++ Client Issue Type: Bug Components: Stomp Affects Versions: 3.6.0 Environment: Solaris 10 Reporter: Jeremy Leung Assignee: Timothy Bish -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-475) Fix for Atomics Helper for Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-475: Labels: atomic solaris (was: ) > Fix for Atomics Helper for Solaris 10 > - > > Key: AMQCPP-475 > URL: https://issues.apache.org/jira/browse/AMQCPP-475 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Labels: atomic, solaris > Attachments: patchfile.txt > > > activemq-cpp/src/main/decaf/internal/util/concurrent/unix/Atomics is not > compile-able under Solaris 10 with Sun Studio 11 (CC: Sun C++ 5.8 Patch > 121018-20). > The Attached Patch Fixed: > - Atomics::compareAndSet32 and Atomics::compareAndSet is not working as > expected and will caused the IOTransport not started correctly > - CC Compiler Errors -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-475) Fix for Atomics Helper for Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-475: Description: activemq-cpp/src/main/decaf/internal/util/concurrent/unix/Atomics is not compile-able under Solaris 10 with Sun Studio 11 (CC: Sun C++ 5.8 Patch 121018-20). The Attached Patch Fixed: - Atomics::compareAndSet32 and Atomics::compareAndSet is not working as expected and will caused the IOTransport not started correctly - CC Compiler Errors > Fix for Atomics Helper for Solaris 10 > - > > Key: AMQCPP-475 > URL: https://issues.apache.org/jira/browse/AMQCPP-475 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Attachments: patchfile.txt > > > activemq-cpp/src/main/decaf/internal/util/concurrent/unix/Atomics is not > compile-able under Solaris 10 with Sun Studio 11 (CC: Sun C++ 5.8 Patch > 121018-20). > The Attached Patch Fixed: > - Atomics::compareAndSet32 and Atomics::compareAndSet is not working as > expected and will caused the IOTransport not started correctly > - CC Compiler Errors -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-475) Fix for Atomics Helper for Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-475: Patch Info: Patch Available > Fix for Atomics Helper for Solaris 10 > - > > Key: AMQCPP-475 > URL: https://issues.apache.org/jira/browse/AMQCPP-475 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Attachments: patchfile.txt > > > activemq-cpp/src/main/decaf/internal/util/concurrent/unix/Atomics is not > compile-able under Solaris 10 with Sun Studio 11 (CC: Sun C++ 5.8 Patch > 121018-20). > The Attached Patch Fixed: > - Atomics::compareAndSet32 and Atomics::compareAndSet is not working as > expected and will caused the IOTransport not started correctly > - CC Compiler Errors -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-475) Fix for Atomics Helper for Solaris 10
[ https://issues.apache.org/jira/browse/AMQCPP-475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-475: Summary: Fix for Atomics Helper for Solaris 10 (was: Fix for Atomics Helper for Solaris) > Fix for Atomics Helper for Solaris 10 > - > > Key: AMQCPP-475 > URL: https://issues.apache.org/jira/browse/AMQCPP-475 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Attachments: patchfile.txt > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (AMQCPP-475) Fix for Atomics Helper for Solaris
[ https://issues.apache.org/jira/browse/AMQCPP-475?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jeremy Leung updated AMQCPP-475: Attachment: patchfile.txt activemq-cpp/src/main/decaf/internal/util/concurrent/unix > Fix for Atomics Helper for Solaris > -- > > Key: AMQCPP-475 > URL: https://issues.apache.org/jira/browse/AMQCPP-475 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: Decaf >Affects Versions: 3.6.0 > Environment: Solaris 10 >Reporter: Jeremy Leung >Assignee: Timothy Bish >Priority: Blocker > Attachments: patchfile.txt > > -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Created] (AMQCPP-475) Fix for Atomics Helper for Solaris
Jeremy Leung created AMQCPP-475: --- Summary: Fix for Atomics Helper for Solaris Key: AMQCPP-475 URL: https://issues.apache.org/jira/browse/AMQCPP-475 Project: ActiveMQ C++ Client Issue Type: Bug Components: Decaf Affects Versions: 3.6.0 Environment: Solaris 10 Reporter: Jeremy Leung Assignee: Timothy Bish Priority: Blocker -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira