[ 
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

Reply via email to