activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Helen Huang (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQCPP-405) CMS sender thread hangs after restarting broker
Date Tue, 02 Oct 2012 19:23:07 GMT

    [ https://issues.apache.org/jira/browse/AMQCPP-405?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13467994#comment-13467994
] 

Helen Huang commented on AMQCPP-405:
------------------------------------

Thanks for the new snapshot Timothy. I was not able to recreate the previous crash, but I
ran into an access exception on line "if (successor == NULL || successor->waitStatus >
0) " in function
AbstractQueuedSynchronizer::unParkSuccessor(Node* node). successor was "0xfeeefeee" at the
point.

        void unparkSuccessor(Node* node) {{

            // If status is negative (i.e., possibly needing signal) try to clear
            // in anticipation of signalling.  It is OK if this fails or if status
            // is changed by waiting thread.
            int ws = node->waitStatus;
            if (ws < 0) {
                compareAndSetWaitStatus(node, ws, 0);
            }

            // We need to lock to prevent cancellation of a Node from altering
            // the list as we iterate and check Node status fields.
            PlatformThread::readerLockMutex(this->rwLock);

            // Thread to un-park is held in successor, which is normally just the
            // next node.  But if canceled or apparently NULL, traverse backwards
            // from tail to find the actual non-canceled successor.
            Node* successor = node->next;
            if (successor == NULL || successor->waitStatus > 0) {
                successor = NULL;
                for (Node* t = tail.get(); t != NULL && t != node; t = t->prev)
                    if (t->waitStatus <= 0) {
                        successor = t;
                    }
            }

            if (successor != NULL) {
                LockSupport::unpark((Thread*)successor->thread);
            }

            PlatformThread::unlockRWMutex(this->rwLock);
        }

                
> CMS sender thread hangs after restarting broker
> -----------------------------------------------
>
>                 Key: AMQCPP-405
>                 URL: https://issues.apache.org/jira/browse/AMQCPP-405
>             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: Critical
>             Fix For: 3.5.0
>
>         Attachments: CrashHang_Report__CMSMessageHandlerCOM-TestSender_exe__1001201211243973.mht,
CrashHang_Report__CMSMessageHandlerCOM-TestSender_exe__1001201220471946.mht, CrashHang_Report__PID_2832__05232012143544484.mht
>
>
> The sender thread in CMS hangs after we retarted the message broker.
> The thread is 548 in the attached dump file. 
> This is a critical issue that blocks the release of our product that is scheduled in
a few days. We hope you can resolve it soon. Really appreciate your help!

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

Mime
View raw message