microsoft / microsoft/vscode-java-debug
Randomly Failed to lanuch debuggee in terminal: com.sun.jdi.connect.TransportTimeoutException
オープン
まだ誰も着手していません。
ai-triaged
bug
- 主要言語
- TypeScript
- スター
- 591
- フォーク
- 429
- 平均マージ
- 1日 9時間
- マージ済み PR(30日)
- 19
説明
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:
- 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();
}
}
- Start the program, enter
1in the terminal, pressEnter. - Repeat step 2 until error occurs. (10 ~ 30 repeats)
- 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
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"inUser/settings.jsonseems to fix it, but I cannot use the terminal to enter inputs now. reference
### Tasks
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
LaunchWithDebuggingDelegate.java の 147 行目から始めてください。ここでは、スタックトレースがターミナルでの起動失敗を報告しています。示されている Test.java プログラムで 1 を繰り返し入力して再現し、ターミナルコンソールの設定を有効にした場合と無効にした場合の動作を比較してください。繰り返し起動してもフリーズせず、TransportTimeoutException で終了しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- java, typescript, vscode
- 領域
- devtools
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100