Andrew MacBean created QPID-5831:
------------------------------------

             Summary: Unexpected internal exception when closing JE Replicated 
environment
                 Key: QPID-5831
                 URL: https://issues.apache.org/jira/browse/QPID-5831
             Project: Qpid
          Issue Type: Bug
          Components: Java Broker
    Affects Versions: 0.29
            Reporter: Andrew MacBean
            Assignee: Andrew MacBean


Intermittant test failure stating: "Problem closing handle testNodeName(1) 
UNEXPECTED_EXCEPTION: Unexpected internal Exception, may have side effects. 
Environment is invalid and must be closed" during test runs of 
ReplicatedEnvironmentFacadeTest on both Jenkins and dev box.

Log Output:
Tests run: 26, Failures: 0, Errors: 2, Skipped: 0, Time elapsed: 73.315 sec <<< 
FAILURE! - in 
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeTest
testReplicationGroupListenerHearsAboutExistingRemoteReplicationNodes(org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeTest)
 Time elapsed: 3.176 sec <<< ERROR!
com.sleepycat.je.EnvironmentFailureException: (JE 5.0.97) 
testNodeName(1):/tmp/bdb-1402928024476/testNodeName Problem closing handle 
testNodeName(1) UNEXPECTED_EXCEPTION: Unexpected internal Exception, may have 
side effects. Environment is invalid and must be closed.
at com.sleepycat.je.Environment.close(Environment.java:390)
at 
com.sleepycat.je.rep.ReplicatedEnvironment.close(ReplicatedEnvironment.java:702)
at 
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.closeEnvironment(ReplicatedEnvironmentFacade.java:786)
at 
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacade.close(ReplicatedEnvironmentFacade.java:257)
at 
org.apache.qpid.server.store.berkeleydb.replication.ReplicatedEnvironmentFacadeTest.tearDown(ReplicatedEnvironmentFacadeTest.java:87)

Issue happens due to race condition between ReplicatedEnvironmentFacade.close() 
and DatabasePinger.pingDb(...) which means that while environment closing, JE 
still things there is a database open (PINGDB), this is despite the open call 
failing in the pingDb method.

Race seems unavoidable and probably the best course of action is make the close 
smarter to swallow the associated JE EnvironmentFailureException.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to