Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rare, but persistent NPEs during test execution in conjunction with forks #122

Closed
S1artie opened this issue Oct 28, 2016 · 3 comments
Closed
Labels
Milestone

Comments

@S1artie
Copy link
Member

S1artie commented Oct 28, 2016

In a production project, the automated build sometimes fails due to no apparent reason with the following exception:

    FORK 'abc': Process terminated!
    FORK 'abc': Process terminated!
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:209)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at java.net.SocketInputStream.read(SocketInputStream.java:223)
    at de.gebit.integrity.remoting.transport.Endpoint$EndpointInputProcessor.run(Endpoint.java:241)
ERROR occurred during test runner execution!
java.lang.NullPointerException
    at de.gebit.integrity.runner.callbacks.xml.XmlWriterTestCallback.internalOnTearDownStart(XmlWriterTestCallback.java:1432)
    at de.gebit.integrity.runner.callbacks.xml.XmlWriterTestCallback.onTearDownStart(XmlWriterTestCallback.java:1421)
    at de.gebit.integrity.runner.callbacks.CompoundTestRunnerCallback.onTearDownStart(CompoundTestRunnerCallback.java:182)
    at de.gebit.integrity.runner.callbacks.CompoundTestRunnerCallback.onTearDownStart(CompoundTestRunnerCallback.java:182)
    at de.gebit.integrity.runner.DefaultTestRunner.executeTearDownSuites(DefaultTestRunner.java:977)
    at de.gebit.integrity.runner.DefaultTestRunner.callSuiteSingle(DefaultTestRunner.java:838)
    at de.gebit.integrity.runner.DefaultTestRunner.callSuite(DefaultTestRunner.java:682)
    at de.gebit.integrity.runner.DefaultTestRunner.executeSuite(DefaultTestRunner.java:1028)
    at de.gebit.integrity.runner.DefaultTestRunner.callSuiteSingle(DefaultTestRunner.java:809)
    at de.gebit.integrity.runner.DefaultTestRunner.callSuite(DefaultTestRunner.java:682)
    at de.gebit.integrity.runner.DefaultTestRunner.executeSuite(DefaultTestRunner.java:1028)
    at de.gebit.integrity.runner.DefaultTestRunner.callSuiteSingle(DefaultTestRunner.java:809)
    at de.gebit.integrity.runner.DefaultTestRunner.runInternal(DefaultTestRunner.java:635)
    at de.gebit.integrity.runner.DefaultTestRunner.run(DefaultTestRunner.java:513)
    at de.gebit.integrity.runner.DefaultTestRunner.run(DefaultTestRunner.java:448)

This looks like some race condition case...

@S1artie S1artie added the bug label Oct 28, 2016
S1artie added a commit that referenced this issue Oct 28, 2016
This adds some more synchronization between forks and masters, in an attempt to fix this strange issue. However, additionally, I have implemented a bunch of checks now to catch illegal or unsafe situations in the termination sequence between forks and masters as well that should facilitate the elimination of externally caused race conditions between processes.
@S1artie S1artie added this to the v0.15.8 milestone Nov 7, 2016
@S1artie
Copy link
Member Author

S1artie commented Nov 7, 2016

Version 0.15.8-SNAPSHOT has been tested by the project that found the original bug, and the problem did not occur anymore. I consider this to be fixed.

@S1artie S1artie closed this as completed Nov 7, 2016
S1artie added a commit that referenced this issue Nov 9, 2016
When killing a process (and subsequently its forks) from the Eclipse
test control plugin, the new measures to detect unexpected process exits
have triggered. They should not trigger in this case of course.
@S1artie
Copy link
Member Author

S1artie commented Nov 10, 2016

Unfortunately the bug has reappeared, this issue is thus reopened.

@S1artie
Copy link
Member Author

S1artie commented Jun 7, 2017

Closed, as this strange thing has not been observed to happen for quite a while now.

@S1artie S1artie closed this as completed Jun 7, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant