org.gradle.internal.remote.internal.MessageIOException: Could not write '/127.0.0.1:<random port>'
/ 2 min read
Table of Contents
问题
在跑 Kotlin test 的时候有的时候会遇到, 用的是 junit test
Unexpected exception thrown.org.gradle.internal.remote.internal.MessageIOException: Could not write '/127.0.0.1:<random port>'. at org.gradle.internal.remote.internal.inet.SocketConnection.flush(SocketConnection.java:140) at org.gradle.internal.remote.internal.hub.MessageHub$ConnectionDispatch.run(MessageHub.java:333) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Thread.java:832)Caused by: java.io.IOException: Connection reset by peer at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) at java.base/sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:113) at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:58) at java.base/sun.nio.ch.IOUtil.write(IOUtil.java:50) at java.base/sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:506) at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.writeWithNonBlockingRetry(SocketConnection.java:279) at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.writeBufferToChannel(SocketConnection.java:267) at org.gradle.internal.remote.internal.inet.SocketConnection$SocketOutputStream.flush(SocketConnection.java:261) at org.gradle.internal.remote.internal.inet.SocketConnection.flush(SocketConnection.java:138) ... 7 more> Task :jvmTest FAILEDDec 21, 2022 5:24:30 PM org.junit.platform.launcher.core.EngineDiscoveryOrchestrator lambda$logTestDescriptorExclusionReasons$7INFO: 0 containers and 1 tests were Method or class mismatchFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':jvmTest'.> Process 'Gradle Test Executor 2' finished with non-zero exit value 1 This problem might be caused by incorrect test process configuration. Please refer to the test execution section in the User Manual at https://docs.gradle.org/7.3/userguide/java_testing.html#sec:test_execution* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 2s
类似这种的问题, 但是我写的操作不涉及任何网络读写
原因
在跑 test 的时候被程序主动 exit 了
复现代码:
@Test fun a(){ exitProcess(1) }
解决方法
避免在 test 里直接 exit
说实话这种写法(指在 test 直接退出)有点蠢 XD