microsoft / microsoft/vscode-java-debug
Compound Launch Config Debug Port Clash
Personne n'a encore pris cette issue.
- Langage dominant
- TypeScript
- Étoiles
- 591
- Forks
- 429
- Merge moyen
- 1 j 9 h
- PR mergées (30 j)
- 19
Description
I'm running into an issue / potential bug where my compound launch configuration tries to run multiple services with the same java debug port. This seems to be a non-deterministic issue and the launch configurations that succeed vary.
Here's a version of my launch config:
"version": "0.2.0",
"configurations": [
{
"type": "java",
"name": "AxonServer",
"request": "launch",
"mainClass": "org.springframework.boot.loader.PropertiesLauncher",
"classPaths": [
"${workspaceFolder}/build/AxonServer/axonserver.jar"
],
"console": "internalConsole",
"cwd": "${workspaceFolder}/build/AxonServer",
},
{
"type": "java",
"name": "EurekaServer",
"request": "launch",
"mainClass": "com.company.project.framework.eureka.server.EurekaServerApplication",
"projectName": "com.company.project.framework-eureka-server",
"console": "internalConsole",
},
{
"type": "java",
"name": "Config Service",
"request": "launch",
"mainClass": "com.company.project.config.service.ConfigApplication",
"projectName": "com.company.project-config-service",
"console": "internalConsole",
},
{
"type": "java",
"name": "Framework Service",
"request": "launch",
"mainClass": "com.company.project.framework.FrameworkApplication",
"projectName": "com.company.project-framework",
"console": "internalConsole",
},
{
"type": "java",
"name": "Command Service",
"request": "launch",
"mainClass": "com.company.project.framework.commandservice.CommandApplication",
"projectName": "com.company.project.framework-command-service",
"console": "internalConsole",
},
{
"type": "java",
"name": "Query Service",
"request": "launch",
"mainClass": "com.company.project.framework.queryservice.QueryApplication",
"projectName": "com.company.project.framework-query-service",
"console": "internalConsole",
},
{
"type": "java",
"name": "Generation Service",
"request": "launch",
"projectName": "com.company.project.generation-generation",
"mainClass": "org.springframework.boot.loader.launch.JarLauncher",
"classPaths": [
"${workspaceFolder}/build/generation.jar"
],
"console": "internalConsole",
"cwd": "${workspaceFolder}\\build",
},
],
"compounds": [
{
"name": "Start Microservices",
"configurations": [
"AxonServer",
"EurekaServer",
"Config Service",
"Framework Service",
"Command Service",
"Query Service",
"Generation Service",
],
"stopAll": true,
},
]
I get this error for several services on most launch attempts:
Error: Exception thrown by the agent : java.rmi.server.ExportException: Port already in use: 45559; nested exception is:
java.net.BindException: Address already in use: bind
jdk.internal.agent.AgentConfigurationError: java.rmi.server.ExportException: Port already in use: 45559; nested exception is:
java.net.BindException: Address already in use: bind
at jdk.management.agent/sun.management.jmxremote.ConnectorBootstrap.startRemoteConnectorServer(ConnectorBootstrap.java:491)
ConnectorBootstrap.java:491
at jdk.management.agent/jdk.internal.agent.Agent.startAgent(Agent.java:447)
Agent.java:447
at jdk.management.agent/jdk.internal.agent.Agent.startAgent(Agent.java:603)
Agent.java:603
... (trimmed)
Caused by: java.net.BindException: Address already in use: bind
When I check that port, one of my other configurations is indeed using that port. This is not a port used by the applications themselves, but presumably the java debug server port. When I stop my applications, those ports are no longer in use. I can also run the non-compound launch configs individually without issue, this is specifically a compound launch config issue.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez l’échec avec la VS Code compound launch configuration fournie et observez l’attribution du port du Java debug-agent lorsque plusieurs services démarrent simultanément. Comparez les compound launches avec les configurations qui fonctionnent individuellement ; la tâche est terminée lorsque tous les services listés peuvent être lancés ensemble sans se disputer le même port de débogage.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java, vscode
- Domaine
- devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100