[ 
https://issues.apache.org/jira/browse/QPID-5831?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew MacBean updated QPID-5831:
---------------------------------

    Description: 
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(...) methods. This means that potentially while the 
environment is closing, the DatabasePinger trys to open a DB but fails and so 
the underying JE environment thinks there is a database open (PINGDB) and 
causes the close to fail.

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

  was:
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.


> 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
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> 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(...) methods. 
> This means that potentially while the environment is closing, the 
> DatabasePinger trys to open a DB but fails and so the underying JE 
> environment thinks there is a database open (PINGDB) and causes the close to 
> fail.
> 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