Return-Path: X-Original-To: apmail-activemq-dev-archive@www.apache.org Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id C79EB90F7 for ; Fri, 1 Jun 2012 15:07:25 +0000 (UTC) Received: (qmail 97393 invoked by uid 500); 1 Jun 2012 15:07:24 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 97324 invoked by uid 500); 1 Jun 2012 15:07:23 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 97042 invoked by uid 99); 1 Jun 2012 15:07:23 -0000 Received: from issues-vm.apache.org (HELO issues-vm) (140.211.11.160) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 01 Jun 2012 15:07:23 +0000 Received: from isssues-vm.apache.org (localhost [127.0.0.1]) by issues-vm (Postfix) with ESMTP id 98CD91400E2 for ; Fri, 1 Jun 2012 15:07:23 +0000 (UTC) Date: Fri, 1 Jun 2012 15:07:23 +0000 (UTC) From: "Timothy Bish (JIRA)" To: dev@activemq.apache.org Message-ID: <1935743316.26951.1338563243631.JavaMail.jiratomcat@issues-vm> In-Reply-To: <1714147833.94.1337892867819.JavaMail.jiratomcat@issues-vm> Subject: [jira] [Commented] (AMQCPP-407) Application crashes after stopping message broker MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/AMQCPP-407?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13287468#comment-13287468 ] Timothy Bish commented on AMQCPP-407: ------------------------------------- You can try to modify your IOTransport close to something like this: {code} //////////////////////////////////////////////////////////////////////////////// void IOTransport::close() { class Finalizer { private: Pointer target; public: Finalizer(Pointer target) : target(target) {} ~Finalizer() { try { target->join(); target.reset(NULL); } DECAF_CATCHALL_NOTHROW() } }; try { if (closed) { return; } // Mark this transport as closed. closed = true; Finalizer finalize(thread); // We have to close the input stream before we stop the thread. this will // force us to wake up the thread if it's stuck in a read (which is likely). // Otherwise, the join that follows will block forever. if (inputStream != NULL) { inputStream->close(); inputStream = NULL; } // Close the output stream. if (outputStream != NULL) { outputStream->close(); outputStream = NULL; } // Clear the WireFormat so we can't use it anymore this->wireFormat.reset(NULL); } AMQ_CATCH_RETHROW( IOException ) AMQ_CATCH_EXCEPTION_CONVERT( Exception, IOException ) AMQ_CATCHALL_THROW( IOException ) } {code} > Application crashes after stopping message broker > ------------------------------------------------- > > Key: AMQCPP-407 > URL: https://issues.apache.org/jira/browse/AMQCPP-407 > Project: ActiveMQ C++ Client > Issue Type: Bug > Components: CMS Impl > Affects Versions: 3.4.1 > Environment: Windows xp service pack 3, ActiveMQ broker 5.3.1, apr 1.4.2, apr-util 1.3.9, apr iconv 1.2.1 > Reporter: Helen Huang > Assignee: Timothy Bish > Priority: Blocker > Fix For: 3.4.1 > > Attachments: AttemptedFix1.7z > > > Stopping the message broker would crash our application. The following is the call stack of the fault thread. > Thread 0 - System ID 672 > Entry point msvcr80!endthreadex+61 > Create time 5/24/2012 1:53:56 PM > Time spent in user mode 0 Days 0:0:0.46 > Time spent in kernel mode 0 Days 0:0:0.78 > Function Arg 1 Arg 2 Arg 3 Source > kernel32!InterlockedDecrement+9 00000000 00000000 00242110 > msvcrt!cexit+f 77c10000 00000000 00000001 > ntdll!LdrInitializeThunk+24 77c1f2a1 77c10000 00000000 > ntdll!RtlDestroyEnvironment+178 00000000 0eec256d 00000001 > kernel32!IsValidLocale+8eb 00000003 77e8f3b0 ffffffff > kernel32!ExitProcess+14 00000003 0ec21a04 00000003 > msvcr80!amsg_exit+5e 00000003 00000001 00000000 > msvcr80!exit+d 1795efe0 00000000 ffffffff > user32!MessageBoxIndirectA+23a 00000001 7c91005d 13946b5e > user32!MessageBoxIndirectA+254 13946b5e 00000000 00e30850 > ntdll!RtlFreeHeap+130 0468001b 00000202 1795f110 > activemq_cppu!activemq::core::ActiveMQConnection::onException+fd 1795fe24 7f427d47 1795fe18 > activemq_cppu!activemq::transport::TransportFilter::fire+44 1795fe24 7f427d33 1795fe18 > activemq_cppu!activemq::transport::TransportFilter::fire+44 1795fe24 7f427cef 1795fe18 > activemq_cppu!activemq::transport::TransportFilter::fire+44 1795fe24 1795f60c 0ef4a264 > activemq_cppu!activemq::transport::inactivity::InactivityMonitor::onException+33 1795fe24 7f427cd7 1795fe18 > activemq_cppu!activemq::transport::TransportFilter::fire+44 1795fe24 7f427c83 1795fe18 > activemq_cppu!activemq::transport::IOTransport::fire+4b 1795fe24 0ec48ed7 1795fe18 > activemq_cppu!activemq::transport::IOTransport::run+15e 7f427107 7c809c65 12519500 > activemq_cppu!decaf::lang::ThreadProperties::runCallback+82 7c936d80 04682060 0ec229bb > activemq_cppu!`anonymous namespace'::threadWorker+20 04682060 0ec229bb 12519500 > ntdll!RtlRemoveVectoredExceptionHandler+2a2 04682060 7c80b729 1252f168 > msvcr80!endthreadex+c7 0ec229e1 1252f168 00000000 > KERNEL32!INTERLOCKEDDECREMENT+9WARNING - DebugDiag was not able to locate debug symbols for kernel32.dll, so the information below may be incomplete. > In ScotAppU__PID__1168__Date__05_24_2012__Time_02_18_41PM__916__Second_Chance_Exception_C0000005.dmp the assembly instruction at kernel32!InterlockedDecrement+9 in C:\WINDOWS\system32\kernel32.dll from Microsoft Corporation has caused an access violation exception (0xC0000005) when trying to write to memory location 0x014718e4 on thread 0 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira