[jbossts-issues] [JBoss JIRA] (JBTM-2423) ORBRunner uses the orb after run() returns

Michael Musgrove (JIRA) issues at jboss.org
Tue Sep 15 17:09:00 EDT 2015

    [ https://issues.jboss.org/browse/JBTM-2423?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109002#comment-13109002 ] 

Michael Musgrove commented on JBTM-2423:

[~tomekadamski] please will you add a comment explaining why you have reopened this JIRA

> ORBRunner uses the orb after run() returns
> ------------------------------------------
>                 Key: JBTM-2423
>                 URL: https://issues.jboss.org/browse/JBTM-2423
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>            Reporter: Michael Musgrove
>            Assignee: Tomasz Adamski
>             Fix For: 5.2.0
> ORBRunner.java starts an orb using orb().run() but then performs operations on the orb after the run() method returns. According to the CORBA spec this is invalid:
> {quote}
> Once an ORB has shutdown, only object reference management operations(duplicate,
> release and is_nil) may be invoked on the ORB or any object reference obtained
> from it.
> {quote}
> Note that when the orb.run() method returns the orb has shutdown because, for the run method, the spec states:
> {quote}
> This operation will block until the ORB has completed the shutdown process,
> {quote}
> This issue has arisen because of a change made to our fork of the jdk orb: in the jdk orb shutdown method we join with all the orb runners. This results in deadlock:
> # com.arjuna.orbportability.ORB.shutdown is a synchronized method and it calls shutdown on the jdk orb;
> # shutdown on the jdk orb notifies the ORBRunner thread which now tries to call back into a synchronized method of com.arjuna.orbportability.ORB but is blocked because the monitor is held
> # at this point the jdk orb shutdown would normally then return allowing the 
> the ORBRunner thread to make progress but a recent change now means that the jdk orb shutdown method performs a join() on the various ORBRunner threads

This message was sent by Atlassian JIRA

More information about the jbossts-issues mailing list