microsoft / microsoft/vscode-java-test

failed to launch debuggee VM. Filename or Extension is too long. args too long?

Open
#1,717 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

ai-triaged bug help wanted investigating maven test-debugging testng
Dominant language
TypeScript
Stars
340
Forks
173
Avg merge
1d 19h
Merged PRs (30d)
18

Description

Hi, I am trying to get our maven multi project to run in VSCode.
One Package fails and throws this error:

Juli 30, 2024 6:01:44 PM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider ch.qos.logback.classic.servlet.LogbackServletContainerInitializer of service jakarta.servlet.ServletContainerInitializer in bundle ch.qos.logback.classic
Juli 30, 2024 6:01:44 PM org.apache.aries.spifly.BaseActivator log
INFORMATION: Registered provider ch.qos.logback.classic.spi.LogbackServiceProvider of service org.slf4j.spi.SLF4JServiceProvider in bundle ch.qos.logback.classic
Juli 30, 2024 6:03:01 PM com.microsoft.java.debug.plugin.internal.JavaDebuggerServerPlugin start
INFORMATION: Starting com.microsoft.java.debug.plugin
Juli 30, 2024 6:03:01 PM com.microsoft.java.debug.plugin.internal.LogUtils configLogLevel
INFORMATION: Set log level to : FINE
Juli 30, 2024 6:03:40 PM com.microsoft.java.debug.plugin.internal.Compile compile
INFORMATION: Time cost for ECJ: 39098ms
Juli 30, 2024 6:03:40 PM com.microsoft.java.debug.core.UsageDataSession recordInfo
INFORMATION: launch debug info
Juli 30, 2024 6:03:40 PM com.microsoft.java.debug.core.adapter.handler.LaunchRequestHandler launch
INFORMATION: Trying to launch Java Program with options:
main-class: com.microsoft.java.test.runner.Launcher
args: 53015 testng (Alot of method names that I can't share. Editor says 175735 characters)
module-path: 
class-path: 
vmArgs:  "@C:\Users\simonow\AppData\Local\Temp\cp_7m7fi6jj88wslefmewdwqipfm.argfile"
[Error - 6:03:40 PM] 30.07.2024, 18:03:40 [error response][launch]: Failed to launch debuggee VM. Reason: java.io.IOException: Cannot run program "C:\Program Files\Eclipse Adoptium\jdk-11.0.24.8-hotspot\bin\java.exe" (in directory "C:\Dev\Projekte\Repos\project-name\project-name-web\project-name-web-ui"): CreateProcess error=206, Der Dateiname oder die Erweiterung ist zu lang
Failed to launch debuggee VM. Reason: java.io.IOException: Cannot run program "C:\Program Files\Eclipse Adoptium\jdk-11.0.24.8-hotspot\bin\java.exe" (in directory "C:\Dev\Projekte\Repos\project-name\project-name-web\project-name-web-ui"): CreateProcess error=206, Der Dateiname oder die Erweiterung ist zu lang
com.microsoft.java.debug.core.DebugException: Failed to launch debuggee VM. Reason: java.io.IOException: Cannot run program "C:\Program Files\Eclipse Adoptium\jdk-11.0.24.8-hotspot\bin\java.exe" (in directory "C:\Dev\Projekte\Repos\project-name\project-name-web\project-name-web-ui"): CreateProcess error=206, Der Dateiname oder die Erweiterung ist zu lang

the generated argfile has about 15k characters and starts with -ea -Dfile.encoding=UTF-8 -cp "..."

Sorry for the german in there. "Der Dateiname oder die Erweiterung ist zu lang" is basically "Filename or Extension is too long"

I tried all of the launch.json Settings for shortenCommandLine, this itteration tries it with the argfile.

I also attempted to relocate the jdk and had it at one point at C:\jdk and it didn't matter either.
I know these Tests work, since they do work in Eclipse and Intellij I am just trying to make it work in vscode.

I am assuming the extremely long args is causing the issue, since that specific project has probably most of our tests and the others seem to work.
Now how would I resolve that since it does work in other IDEs?
Also I don't think our project is that unique in the amount of tests we have, we are still a rather young project in terms of javaee development.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the Windows launch failure with the Maven multi-project, TestNG arguments, and the generated argfile described in the report. Read the launch path around LaunchRequestHandler and the shortenCommandLine settings, then compare how the Java debuggee is started when the argument list is very long. Done means the affected tests can launch and debug successfully in VS Code without the Windows length error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, vscode
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.