testng-team / testng-eclipse

Eclipse plug-in for TestNG
https://testng.org
193 stars 164 forks source link

java.net.SocketException when attempting to run a test #329

Open jhalterman opened 7 years ago

jhalterman commented 7 years ago

Hitting java.net.SocketException on a new Eclipse / TestNG-eclipse install on a new machine...

Plugin Version

TestNG 6.11.0.201703011520

Other Software

Eclipse Version: Neon.3 Release (4.6.3), Build id: 20170314-1500 JRE: 1.8.0_121

Expected behaviour

Test should run

Actual behaviour

java.net.SocketException: Broken pipe (Write failed)
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111)
    at java.net.SocketOutputStream.write(SocketOutputStream.java:155)
    at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221)
    at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291)
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295)
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141)
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229)
    at java.io.BufferedWriter.flush(BufferedWriter.java:254)
    at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:41)
    at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:42)
    at org.testng.remote.strprotocol.RemoteTestListener1.onStart(RemoteTestListener1.java:29)
    at org.testng.TestRunner.fireEvent(TestRunner.java:1236)
    at org.testng.TestRunner.beforeRun(TestRunner.java:651)
    at org.testng.TestRunner.run(TestRunner.java:624)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)
    at org.testng.SuiteRunner.run(SuiteRunner.java:268)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

Any relate message in "Error Log" view

None

The Dependency Management tool for your project

Maven

Operating System

macOS Sierra (10.12.4)

jhalterman commented 7 years ago

Just tried a few random older versions and found that 6.9.5.201505251947 works. I'll stick with that for now...

missedone commented 7 years ago

hey, could you enable the debug to help gathering more details: click "Run" on the top level menu -> Run Configurations... -> locate to the test configuration -> checked both 'Verbose' and 'Debug' in Runtime group. re-rurn the test and paste the output here, thx.

whendream commented 7 years ago

i have the same error, plz see the more info ,@missedone

RemoteTestNG] detected TestNG version 6.8.0 [RemoteTestNG] Invoked with -serport 56332 -protocol json -d \target C:\Users\ADMINI~1\AppData\Local\Temp\testng-eclipse-295167544\testng-customsuite.xml [BaseMessageSender] Waiting for Eclipse client on localhost:56332 [BaseMessageSender] Received a connection from Eclipse on localhost:56332 [BaseMessageSender] Connection established, starting reader thread [BaseMessageSender] ReaderThread waiting for an admin message [JsonMessageSender] Sending message [GenericMessage ==> suiteCount:1, testCount:1] [BaseMessageSender] ReaderThread received admin message:>ACK [BaseMessageSender] Received ACK:>ACK [BaseMessageSender] Received ACK:>ACK [TestNG] Running: C:\Users\Administrator\AppData\Local\Temp\testng-eclipse-295167544\testng-customsuite.xml

[JsonMessageSender] Sending message [SuiteMessage ==> suite:Default suite, starting, methodCount:0] [BaseMessageSender] Received ACK:>ACK [BaseMessageSender] Received ACK:>ACK [JsonMessageSender] Sending message [TestMessage ==> suite:Default suite, testName:Default test, passed:0, failed:0] [BaseMessageSender] Received ACK:>ACK [BaseMessageSender] Received ACK:>ACK [JsonMessageSender] Sending message [TestResultMessage ==> suite:Default suite, test:Default test ................. xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxx [JsonMessageSender] Sending message [TestResultMessage ==> suite:Default suite, test:Default test, ................. [JsonMessageSender] Sending message [TestMessage ==> suite:Default suite, testName:Default test, passed:0, failed:1] java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) at java.net.SocketOutputStream.write(SocketOutputStream.java:155) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:41) at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:42) at org.testng.remote.strprotocol.RemoteTestListener1.onFinish(RemoteTestListener1.java:34) at org.testng.TestRunner.fireEvent(TestRunner.java:1246) at org.testng.TestRunner.afterRun(TestRunner.java:1039) at org.testng.TestRunner.run(TestRunner.java:621) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) at org.testng.TestNG.run(TestNG.java:1031) at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:132) at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:230) at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:76)

whendream commented 7 years ago

HOHO,i have solved this question, make the testNG version in pom.xml and the testNG plugin version in Eclipse the same I use the 6.9.5 .

reply2sesh commented 7 years ago

I am having similar problem. Using Jdk: 1.8.0_131 with testng plugin 6.9.5, IDE sts3.8.x. Could not resolve with the above solutions

missedone commented 7 years ago

Please use the latest release 6.9.11

reply2sesh commented 7 years ago

I was using 6.9.11 earlier when I had the issue, I moved to 6.9.5 after goining thru these comments. However tried again with 6.9.11 matching plug-in with POM version. Issue still exists

missedone commented 7 years ago

the eclipse plugin use C/S model for communicating the result. eclipse plugin start a socket server and listening, the runtime testng process is the socket client that send the test result to eclipse plugin. according to the err msgjava.net.SocketException: Software caused connection abort: socket write error, the error happened when send the result back to the socket server (aka, eclipse plugin). so could you check if there's any network/firewall setting could impact this? otherwise, could you share a sample project to reproduce this issue if it's not env specific issue. thx

reply2sesh commented 7 years ago

Looks like it has nothing to do with code as i tried on multiple projects. The error I am receiving is "TestNG result listening Job". The test cases never executed. and progress bar shows up for ever. I did upgrade the JDK1.8.0.131 to latest based on "https://stackoverflow.com/questions/41436317/an-internal-error-occurred-during-testng-result-listening-job-port-value-out" issue still exists

missedone commented 7 years ago

Sounds like an env specific issue. Do you see any error on the eclipse Error view? Also, please check firewall if there is any.

missedone commented 7 years ago

just a guess, not sure if it's helpful by adding JVM arg -Djava.net.preferIPv4Stack=true in the test launch configuration.

reply2sesh commented 7 years ago

I uninstalled and installed, eclipse, cleaned m2 repos having older version. created a simple project and ran it again. below is the outcome [RemoteTestNG] revisions: git.commit.id=28d46f3 git.branch=28d46f3138190e289b3865041c86853f39fcf052 git.build.version=1.2.1 [RemoteTestNG] detected TestNG version 6.11.0 [RemoteTestNG] Invoked with -serport 57606 -protocol json -d /Users/srbomma/eclipseoxygen-workspace/sample/test-output /var/folders/z0/c8j33f5d6xj_22vd0rtv2z7xw1j24c/T/testng-eclipse-1010297604/testng-customsuite.xml [BaseMessageSender] Waiting for Eclipse client on localhost:57606

ZZHH7890 commented 6 years ago

i have the same issue in my test : java.net.SocketException: Software caused connection abort: socket write

Software version: TestNG 6.13.0.201712040650 Eclipse Version: Neon.3 Release (4.7.0), Build id: 20170620-1800 JRE: 1.8.0

Solution: Use the TestNG 6.9.5.201505251947

So I guess something happen between 6.9.10 and 6.13.0

jchesshir commented 6 years ago

I think this is an Eclipse and TestNG Plugin version issue. I was using Eclipse Neon, Release 4.5.0 and getting the error below. Furthermore, the TestNG window would not report any results.

I just upgraded Eclipse and am now running these versions: Eclipse Version: Oxygen.3a Release (4.7.3a) TestNG Plugin: 6.14.0.201802161500 TestNG: 6.9.8 Java Versison: 1.8.0_162

The errors are no longer showing in the output window, and the TestNG plugin is now properly showing the results.

This is one of the errors I was seeing with top of its stack trace:

java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) at java.net.SocketOutputStream.write(SocketOutputStream.java:155) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:41) at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:42) at org.testng.remote.strprotocol.RemoteTestListener1.onStart(RemoteTestListener1.java:29)

java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) at java.net.SocketOutputStream.write(SocketOutputStream.java:155) at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:221) at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:291) at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:295) at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:141) at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) at java.io.BufferedWriter.flush(BufferedWriter.java:254) at org.testng.remote.strprotocol.JsonMessageSender.sendMessage(JsonMessageSender.java:41) at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:42) at org.testng.remote.strprotocol.RemoteTestListener1.onStart(RemoteTestListener1.java:29)

aromaLiuzh commented 5 years ago

add -Dfile.encoding=utf-8_ to your eclipse.ini file after -vmargs