Test debug not working in IntelliJ 2018.1 + macOS 10.13.4 + Gradle
Answered
After upgrading to IntelliJ 2018.1 and macOS 10.13.4 (sadly unsure which may have caused this) I can no longer debug tests using Gradle. I can do a remote debug via invoking Gradle on the command line with -Dtests.debug and then attach to it via IntelliJ, but IntelliJ used to be able to do all of that just by hitting the debug button.
The console outputs:
Connected to the target VM, address: '127.0.0.1:61454', transport: 'socket'
ERROR: transport error 202: connect failed: Connection refused
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
Disconnected from the target VM, address: '127.0.0.1:61454', transport: 'socket'
ERROR: transport error 202: connect failed: Connection refused
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [debugInit.c:750]
Process 'Gradle Test Executor 9' finished with non-zero exit value 2
org.gradle.process.internal.ExecException: Process 'Gradle Test Executor 9' finished with non-zero exit value 2
at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:380)
at org.gradle.process.internal.worker.DefaultWorkerProcess.onProcessStop(DefaultWorkerProcess.java:118)
at org.gradle.process.internal.worker.DefaultWorkerProcess.access$000(DefaultWorkerProcess.java:41)
at org.gradle.process.internal.worker.DefaultWorkerProcess$1.executionFinished(DefaultWorkerProcess.java:74)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:230)
at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:149)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:140)
at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:93)
at com.sun.proxy.$Proxy93.executionFinished(Unknown Source)
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:213)
at org.gradle.process.internal.DefaultExecHandle.finished(DefaultExecHandle.java:325)
at org.gradle.process.internal.ExecHandleRunner.completed(ExecHandleRunner.java:103)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:83)
at org.gradle.internal.operations.BuildOperationIdentifierPreservingRunnable.run(BuildOperationIdentifierPreservingRunnable.java:39)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:748)
The relevant portion of the idea.log file appears to be:
2018-04-11 09:01:12,720 [60135923] INFO - pl.ProjectRootManagerComponent - project roots have changed
2018-04-11 09:01:12,813 [60136016] INFO - .diagnostic.PerformanceWatcher - Pushing properties took 22ms; general responsiveness: ok; EDT responsiveness: ok
2018-04-11 09:01:12,866 [60136069] INFO - .diagnostic.PerformanceWatcher - Indexable file iteration took 53ms; general responsiveness: ok; EDT responsiveness: ok
2018-04-11 09:01:16,617 [60139820] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
2018-04-11 09:01:16,618 [60139821] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
2018-04-11 09:01:16,624 [60139827] INFO - xecution.GradleExecutionHelper - Passing command-line args to Gradle Tooling API: --tests com.mycompany.MyClassSpec --init-script /private/var/folders/ff/jhf38v2s5q79hn_gpnnb1c3h0000gn/T/ijinit3.gradle
2018-04-11 09:01:23,755 [60146958] INFO - s.plugins.gradle.GradleManager - Instructing gradle to use java from /Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home
2018-04-11 09:01:33,768 [60156971] INFO - .BaseProjectImportErrorHandler - Failed to import Gradle project at '/Users/pmcdaniel/Development/cdcl/cdcl'
org.gradle.tooling.BuildCancelledException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.1-bin.zip'.
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:47)
at org.gradle.tooling.internal.consumer.ExceptionTransformer.transform(ExceptionTransformer.java:29)
at org.gradle.tooling.internal.consumer.ResultHandlerAdapter.onFailure(ResultHandlerAdapter.java:41)
at org.gradle.tooling.internal.consumer.async.DefaultAsyncConsumerActionExecutor$1$1.run(DefaultAsyncConsumerActionExecutor.java:57)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
at java.lang.Thread.run(Thread.java:745)
at org.gradle.tooling.internal.consumer.BlockingResultHandler.getResult(BlockingResultHandler.java:46)
at org.gradle.tooling.internal.consumer.DefaultBuildLauncher.run(DefaultBuildLauncher.java:77)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.lambda$executeTasks$0(GradleTaskManager.java:114)
at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:209)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.executeTasks(GradleTaskManager.java:127)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.executeTasks(GradleTaskManager.java:57)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemTaskManagerImpl.a(RemoteExternalSystemTaskManagerImpl.java:48)
at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:58)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemTaskManagerImpl.executeTasks(RemoteExternalSystemTaskManagerImpl.java:47)
at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemTaskManagerWrapper.executeTasks(ExternalSystemTaskManagerWrapper.java:52)
at com.intellij.openapi.externalSystem.service.internal.ExternalSystemExecuteTaskTask.doExecute(ExternalSystemExecuteTaskTask.java:171)
at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:163)
at com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration$MyRunnableState.a(ExternalSystemRunConfiguration.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
2018-04-11 09:01:33,772 [60156975] WARN - nal.AbstractExternalSystemTask - Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.1-bin.zip'.
com.intellij.openapi.externalSystem.model.ExternalSystemException: Could not execute build using Gradle distribution 'https://services.gradle.org/distributions/gradle-4.1-bin.zip'.
at org.jetbrains.plugins.gradle.service.execution.GradleExecutionErrorHandler.createUserFriendlyError(GradleExecutionErrorHandler.java:155)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectImportErrorHandler.createUserFriendlyError(AbstractProjectImportErrorHandler.java:46)
at org.jetbrains.plugins.gradle.service.project.BaseProjectImportErrorHandler.getUserFriendlyError(BaseProjectImportErrorHandler.java:179)
at org.jetbrains.plugins.gradle.service.project.BaseGradleProjectResolverExtension.getUserFriendlyError(BaseGradleProjectResolverExtension.java:718)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.project.AbstractProjectResolverExtension.getUserFriendlyError(AbstractProjectResolverExtension.java:158)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.lambda$executeTasks$0(GradleTaskManager.java:124)
at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:209)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.executeTasks(GradleTaskManager.java:127)
at org.jetbrains.plugins.gradle.service.task.GradleTaskManager.executeTasks(GradleTaskManager.java:57)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemTaskManagerImpl.a(RemoteExternalSystemTaskManagerImpl.java:48)
at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:58)
at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemTaskManagerImpl.executeTasks(RemoteExternalSystemTaskManagerImpl.java:47)
at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemTaskManagerWrapper.executeTasks(ExternalSystemTaskManagerWrapper.java:52)
at com.intellij.openapi.externalSystem.service.internal.ExternalSystemExecuteTaskTask.doExecute(ExternalSystemExecuteTaskTask.java:171)
at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:163)
at com.intellij.openapi.externalSystem.service.execution.ExternalSystemRunConfiguration$MyRunnableState.a(ExternalSystemRunConfiguration.java:434)
at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
I've tried this with both Java 8u161 and Java 8u162. I've also updated to IntelliJ 2018.1.1 and I'm still having issues. I've done some searching but have not found anything helpful. To my knowledge, all I did was upgrade IntelliJ to 2018.1 and macOS to 10.13.4
Please sign in to leave a comment.
is the reason. Seems something interrupts debug process or it is forcibly disconnected for some reason. Make sure your /etc/hosts file has "127.0.0.1 localhost" line. Remove other mappings to localhost there if any. Try restarting the machine. Make sure no other process is listening on the 127.0.0.1 ip and 61454 port.
I reset my hosts file to the following and restarted my computer:
And I'm still having issues. The port seems to randomize every time I attempt to run debug but I ran a few netstats and found this line with the corresponding port:
I do not see a port in LISTEN but maybe I'm just not quick enough to detect it. Is there another log I can look at or something else to try?
To throw a few more things out there I have tried to redownload IntelliJ 2018.1.1 and removed and replaced my current install. I have also have tried deleting the .idea directory and reimporting the project from scratch. All continue to show the same problem.
Delete (or comment out) all other lines and leave only
in hosts file, restart IDE and try again.
Made the change and it is still failing in the same way.
Make sure the debug process created by IDE is not blocked by some other application. If you have antivirus/firewall make sure it does not block it. Try with it disabled or exclude from the scan IDE process, IDE installation home, configuration folders, project and library directories.
I disabled the antivirus and firewall and still having the same problem.
Playing around some more I found that setting test.maxParallelForks to 1 in my build.gradle causes debug to work correctly. However, I do not remember this being a problem before IntelliJ 2018.1. Looking at the init Gradle file that IntelliJ seems to be injecting:
gradle.taskGraph.beforeTask { Task task ->if (task instanceof JavaForkOptions && ([":cleanTest", ":test"].contains(task.name) || [":cleanTest", ":test"].contains(task.path))) {
def jvmArgs = task.jvmArgs.findAll{!it?.startsWith('-agentlib:jdwp') && !it?.startsWith('-Xrunjdwp')}
jvmArgs << '-agentlib:jdwp=transport=dt_socket,server=n,suspend=y,address=50675'
task.jvmArgs = jvmArgs
}}
It appears IntelliJ is adding the debug command line option to each of the forked test executers thus potentially causing port conflicts? Is this new behavior in IntelliJ 2018.1? On the command line I only have to specify:
Gradle will do the magic and wait for a debugger to attach on port 5005. Not sure if that is a better way to handle this vs injecting every forked process with the agentlib stuff or not.
I've asked the responsible developer to comment on this.
There is an old known issue with the maxParallelForks option. It was fixed for 2018.2 version, you can find the issue report at https://youtrack.jetbrains.com/issue/IDEA-146140
Thank you guys so much!
+1