[
https://issues.jboss.org/browse/JBTM-1138?page=com.atlassian.jira.plugin....
]
Tom Jenkinson commented on JBTM-1138:
-------------------------------------
Hi Ivo,
Having spoken with Jonathan, the issue appears to be because you have not altered the
tests to waitfor the process to terminate.
This is required as adding the argument to the task means that tests will not only share
an object store, but also some port configuration also, so it introduces race conditions.
Here is an example stack trace showing the issue:
2012-04-24 03:35:34,966 err: 2012-04-24 03:35:34.966 FINE created ServerSocketFactory:
org.jacorb.orb.factory.DefaultServerSocketFactory
2012-04-24 03:35:34,977 err: 2012-04-24 03:35:34.976 WARNING could not create server
socket port: 4771 host: null
2012-04-24 03:35:34,977 err: java.net.PlainSocketImpl.socketBind(Native Method)
2012-04-24 03:35:34,978 err: java.net.PlainSocketImpl.bind(PlainSocketImpl.java:383)
2012-04-24 03:35:34,978 err: java.net.ServerSocket.bind(ServerSocket.java:328)
2012-04-24 03:35:34,978 err:
java.net.ServerSocket.<init>(ServerSocket.java:194)
2012-04-24 03:35:34,978 err:
org.jacorb.orb.factory.DefaultServerSocketFactory.createServerSocket(DefaultServerSocketFactory.java:49)
2012-04-24 03:35:34,978 err:
org.jacorb.orb.iiop.IIOPListener$Acceptor.createServerSocket(IIOPListener.java:572)
2012-04-24 03:35:34,978 err:
org.jacorb.orb.iiop.IIOPListener$Acceptor.init(IIOPListener.java:417)
2012-04-24 03:35:34,978 err:
org.jacorb.orb.iiop.IIOPListener.configure(IIOPListener.java:163)
2012-04-24 03:35:34,978 err:
org.jacorb.orb.etf.FactoriesBase.newInstance(FactoriesBase.java:125)
2012-04-24 03:35:34,979 err:
org.jacorb.orb.etf.FactoriesBase.create_listener(FactoriesBase.java:74)
2012-04-24 03:35:34,979 err:
org.jacorb.orb.BasicAdapter.configure(BasicAdapter.java:102)
2012-04-24 03:35:34,979 err: org.jacorb.orb.ORB.getRootPOA(ORB.java:1036)
2012-04-24 03:35:34,979 err:
org.jacorb.orb.ORB.resolve_initial_references(ORB.java:1307)
2012-04-24 03:35:34,979 err:
com.arjuna.orbportability.internal.orbspecific.oa.implementations.POABase.init(POABase.java:58)
2012-04-24 03:35:34,979 err: com.arjuna.orbportability.oa.core.OA.init(OA.java:85)
2012-04-24 03:35:34,979 err: com.arjuna.orbportability.OA.initPOA(OA.java:192)
2012-04-24 03:35:34,979 err: com.arjuna.orbportability.OA.initPOA(OA.java:84)
2012-04-24 03:35:34,980 err:
org.jboss.jbossts.qa.Utils.OAInterface.initializeOA(OAInterface.java:46)
2012-04-24 03:35:34,980 err:
org.jboss.jbossts.qa.junit.ExecutionWrapper.main(ExecutionWrapper.java:132)
I have put back some changes to the tests (your patch and the waitFor fix) and committed
them so you will need to remove your crashrecovery12.patch.
Thanks,
Tom
crashrecovery12 tests intermittently fail when running in
ExecutionWrapper mode
-------------------------------------------------------------------------------
Key: JBTM-1138
URL:
https://issues.jboss.org/browse/JBTM-1138
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Testing
Affects Versions: 4.16.3
Reporter: Ivo Studensky
Assignee: Tom Jenkinson
Fix For: 4.16.4
Attachments: crashrecovery12.patch
The crashrecovery12 tests intermittently fail when running on HornetQ journal based
object store, i.e. in ExecutionWrapper mode.
Without any patch Test03 and Test06 fail. With my patch, see attached file, the tests
fail intermittently, i.e. once they fail on Test02 [1], once on Test04 [2] or on Test03
[3]. The Test06 seems to be fixed with my patch.
I did the patch according to instructions by Jonathan, but apparently I missed
something.
Jonathan's instruction:
{quote}
The tests are wrong.
When in ExecutionWrapper mode, each spawned task gets its own store
unless it's explicitly told to reuse an earlier one. Most crash rec
tests that need to 'share' a store between consecutive processes for
before/after crash state have a final param to createTask that gives the
shared name, see e.g. TestGroup_crashrecovery02_01. That's missing in
the failing tests. Change the tests to add the same string as a final
param to the createTask calls and to ensure the client task is
terminated before the outcome task starts. It should be anyhow as it
commits suicide, but the framework does not necessarily know that and
may get unhappy if it think you're trying to make concurrent processes
use the same store.
Jonathan.
{quote}
[1]
https://hudson.qa.jboss.com/hudson/view/JBoss%20TS/view/JBossTS-EAP6-CI/j...
[2]
https://hudson.qa.jboss.com/hudson/view/JBoss%20TS/view/JBossTS-EAP6-CI/j...
[3]
https://hudson.qa.jboss.com/hudson/view/JBoss%20TS/view/JBossTS-EAP6-CI/j...
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira