microsoft / microsoft/vscode-java-debug

Randomly Failed to lanuch debuggee in terminal: com.sun.jdi.connect.TransportTimeoutException

Aperta
#1,354 1 commento 8 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

ai-triaged bug
Lingua principale
TypeScript
Stelle
591
Fork
429
Merge medio
1g 9h
PR unite (30g)
19

Descrizione

Randomly getting error: Failed to lanuch debuggee in terminal: com.sun.jdi.connect.TransportTimeoutException

Environment
  • Operating System: Debian GNU/Linux 12 x86_64
  • JDK version: openjdk 17.0.7
  • Visual Studio Code version: 1.79.2 (vscodium)
  • Java extension version: v0.25.2023042006
  • Java Debugger extension version: v0.51.0
Steps To Reproduce

It occurs completely randomly, and can be for any java code.

I managed to reproduce it:

  1. Create a simple Test.java.
sample project
package com;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int i = scanner.nextInt();
    }
}
  1. Start the program, enter 1 in the terminal, press Enter.
  2. Repeat step 2 until error occurs. (10 ~ 30 repeats)
  3. After randomly repeating, from now on the program freezes every time, and after 20 seconds later a message always pops up, saying Failed to lanuch debuggee in terminal. Reason: com.sun.jdi.connect.TransportTimeoutException
screenshot

2023-06-22_11-55

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Test",
            "request": "launch",
            "mainClass": "com.Test",
            "projectName": "temp_43be885e"
        },
        {
            "type": "java",
            "name": "Current File",
            "request": "launch",
            "mainClass": "${file}"
        },
        {
            "type": "java",
            "name": "App",
            "request": "launch",
            "mainClass": "App",
            "projectName": "temp_43be885e"
        },
        {
            "type": "java",
            "name": "Main",
            "request": "launch",
            "mainClass": "com.Main",
            "projectName": "temp_43be885e"
        }
    ]
}

It doesn't happens a lot when I try to reproduce it.

Java Language Server Log
!ENTRY java-debug 4 0 2023-06-22 18:15:38.087
!MESSAGE [error response][launch]: Failed to launch debuggee in terminal. Reason: com.sun.jdi.connect.TransportTimeoutException
!STACK 0
com.microsoft.java.debug.core.DebugException: Failed to launch debuggee in terminal. Reason: com.sun.jdi.connect.TransportTimeoutException
	at com.microsoft.java.debug.core.adapter.handler.LaunchWithDebuggingDelegate.lambda$launchInTerminal$0(LaunchWithDebuggingDelegate.java:147)
	at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source)
	at java.base/java.util.concurrent.CompletableFuture.complete(Unknown Source)
	at com.microsoft.java.debug.core.protocol.AbstractProtocolServer.lambda$sendRequest$2(AbstractProtocolServer.java:178)
	at io.reactivex.internal.observers.LambdaObserver.onNext(LambdaObserver.java:63)
	at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.drainNormal(ObservableObserveOn.java:201)
	at io.reactivex.internal.operators.observable.ObservableObserveOn$ObserveOnObserver.run(ObservableObserveOn.java:255)
	at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
	at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
Additional Informations
  • It occurs completely randomly, and can be for any java code.
  • Cleaning java workspace could temporarily fix.
  • Downgrading the extension to 0.50.0 doesn't fix it. It didn't occur to me in the few months ago.
  • Downgrading the extension to 0.49.0 and 0.46.0, doesn't seem to be able to reproduce (but it's hard to tell because it is random).
  • Adding "java.debug.settings.console":"internalConcole" in User/settings.json seems to fix it, but I cannot use the terminal to enter inputs now. reference
### Tasks

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Iniziate da LaunchWithDebuggingDelegate.java alla riga 147, dove lo stack trace segnala il fallimento dell'avvio nel terminale. Riproducete il problema con il programma Test.java mostrato inserendo ripetutamente 1 e confrontate il comportamento con l'impostazione della console del terminale abilitata o disabilitata. Il lavoro è completo quando gli avvii ripetuti non si bloccano più né terminano con TransportTimeoutException.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
java, typescript, vscode
Ambito
devtools
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.