[Bug] 0.21.0 hangs for 10 minutes on cancel in the Chat view
维护者通常 2 天内回复
还没有人认领这个 Issue。
评估
调研方向
使用所述的 Eclipse 和 plugin 版本重现 Chat view 的取消流程,然后从 ChatView.onCancel 和 LanguageServerWrapper 中的取消路径开始。使用提供的线程转储和相关日志输出来检查 StreamMessageConsumer.consume 处的锁竞争。完成的标准是:取消请求不再使 Eclipse UI 阻塞数分钟,并且 allowlist 错误得到处理,同时不会让模型页面保持空白。
由索引模型根据 Issue 内容生成。
描述
Environment
- OS: RHEL 9.6
- Eclipse Version: 4.38
- Plugin Version: 0.21.0
Describe the bug
Open Chat
Open Java file
Ask /explain with the Claude Opus 4.8 medium model
Nothing happens for some time, so try to "cancel".
UI hangs for ~10 minutes (no CPU load).
After the hang three log entries are logged,
org.eclipse.lsp4e
Info
Fri Aug 07 11:31:30 CEST 2026
[LS:GitHub Copilot Language Server][Info] [AuthManager] resolveSession: persisted store resolved a session
followed by an error
com.microsoft.copilot.eclipse
Error
Fri Aug 07 11:31:31 CEST 2026
[Error] org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Invalid allowlist format: registry entries missing required fields
java.util.concurrent.CompletionException: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Invalid allowlist format: registry entries missing required fields
at java.base/java.util.concurrent.CompletableFuture.wrapInCompletionException(CompletableFuture.java:323)
at java.base/java.util.concurrent.CompletableFuture.encodeRelay(CompletableFuture.java:412)
at java.base/java.util.concurrent.CompletableFuture.completeRelay(CompletableFuture.java:421)
at java.base/java.util.concurrent.CompletableFuture$UniRelay.tryFire(CompletableFuture.java:1118)
at java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:531)
at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2221)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.handleResponse(RemoteEndpoint.java:214)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.consume(RemoteEndpoint.java:198)
at org.eclipse.lsp4e.LanguageServerWrapper.lambda$3(LanguageServerWrapper.java:458)
at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.handleMessage(StreamMessageProducer.java:189)
at org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.listen(StreamMessageProducer.java:97)
at org.eclipse.lsp4j.jsonrpc.json.ConcurrentMessageProcessor.run(ConcurrentMessageProcessor.java:97)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Caused by: org.eclipse.lsp4j.jsonrpc.ResponseErrorException: Invalid allowlist format: registry entries missing required fields
... 11 more
Note: the model management page is empty (not sure it is related):
and it poplates only after the hang is resolved.
The UI itself hangs in this stack:
"main" #3 [161792] prio=6 os_prio=0 cpu=18177.04ms elapsed=211.23s tid=0x00007f5b2802ebf0 nid=161792 waiting for monitor entry [0x00007f5b2e9fc000]
java.lang.Thread.State: BLOCKED (on object monitor)
at org.eclipse.lsp4j.jsonrpc.json.StreamMessageConsumer.consume(StreamMessageConsumer.java:67)
- waiting to lock <0x000000040cf71510> (a java.lang.Object)
at org.eclipse.lsp4e.LanguageServerWrapper.lambda$3(LanguageServerWrapper.java:458)
at org.eclipse.lsp4e.LanguageServerWrapper$$Lambda/0x00000000680ccc00.consume(Unknown Source)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.notify(RemoteEndpoint.java:135)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.sendCancelNotification(RemoteEndpoint.java:185)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint.lambda$request$1(RemoteEndpoint.java:157)
at org.eclipse.lsp4j.jsonrpc.RemoteEndpoint$$Lambda/0x0000000068105000.run(Unknown Source)
at org.eclipse.lsp4j.jsonrpc.JsonRpcRequestFuture.cancelRequest(JsonRpcRequestFuture.java:126)
at org.eclipse.lsp4j.jsonrpc.JsonRpcRequestFuture.cancel(JsonRpcRequestFuture.java:99)
at org.eclipse.lsp4e.LanguageServerWrapper.lambda$24(LanguageServerWrapper.java:1077)
at org.eclipse.lsp4e.LanguageServerWrapper$$Lambda/0x00000000680cc400.apply(Unknown Source)
at java.util.concurrent.CompletableFuture.uniExceptionally(java.base@25/CompletableFuture.java:1011)
at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(java.base@25/CompletableFuture.java:995)
at java.util.concurrent.CompletableFuture.postComplete(java.base@25/CompletableFuture.java:531)
at java.util.concurrent.CompletableFuture.cancel(java.base@25/CompletableFuture.java:2554)
at org.eclipse.lsp4e.LanguageServerWrapper.lambda$22(LanguageServerWrapper.java:1034)
at org.eclipse.lsp4e.LanguageServerWrapper$$Lambda/0x00000000680cc800.apply(Unknown Source)
at java.util.concurrent.CompletableFuture.uniExceptionally(java.base@25/CompletableFuture.java:1011)
at java.util.concurrent.CompletableFuture$UniExceptionally.tryFire(java.base@25/CompletableFuture.java:995)
at java.util.concurrent.CompletableFuture.postComplete(java.base@25/CompletableFuture.java:531)
at java.util.concurrent.CompletableFuture.cancel(java.base@25/CompletableFuture.java:2554)
at com.microsoft.copilot.eclipse.ui.chat.ChatView.lambda$35(ChatView.java:1413)
at com.microsoft.copilot.eclipse.ui.chat.ChatView$$Lambda/0x0000000068dbf000.accept(Unknown Source)
at java.lang.Iterable.forEach(java.base@25/Iterable.java:75)
at com.microsoft.copilot.eclipse.ui.chat.ChatView.onCancel(ChatView.java:1412)
at com.microsoft.copilot.eclipse.ui.chat.ActionBar.notifyCancel(ActionBar.java:825)
at com.microsoft.copilot.eclipse.ui.chat.ActionBar.handleCancelMessage(ActionBar.java:818)
at com.microsoft.copilot.eclipse.ui.chat.ActionBar$4.widgetSelected(ActionBar.java:473)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:290)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:91)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5894)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1656)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5109)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4546)
Full jstack:
- 主要语言
- Java
- 星标
- 128
- 派生
- 66
- 平均合并
- 1 天 16 小时
- 30 天内合并 PR
- 11
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 没有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
microsoft/copilot-for-eclipse 的其他 Issue
-
[Bug]可能已有人在做 @jdneo 于 2 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 64/100
microsoft/copilot-for-eclipse#480 · 1 条评论 · 1 个 reaction · 已指派 2 人 ·
维护者通常 2 天内回复
-
难度 1/5 1 小时以内 新手友好度 12/100
microsoft/copilot-for-eclipse#492 ·
维护者通常 2 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 22/100
microsoft/copilot-for-eclipse#481 ·
维护者通常 2 天内回复
-
enhancement
难度 5/5 一周以上 新手友好度 12/100
microsoft/copilot-for-eclipse#477 ·
维护者通常 2 天内回复
-
bug
难度 4/5 3-5 天 新手友好度 48/100
microsoft/copilot-for-eclipse#476 ·
维护者通常 2 天内回复
查看 microsoft/copilot-for-eclipse 的全部 Issue
相似的 Issue
-
BC remittance upload: a claim MSP refused (S03) is saved with a blank status instead of refused (F)未关闭type: bug
难度 2/5 1-3 小时 新手友好度 88/100
carlos-emr/carlos#4933 ·
维护者通常 1 天内回复
-
bug
难度 2/5 1-3 小时 新手友好度 82/100
apache/rocketmq-dashboard#6925 ·
维护者通常 3 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
Vakore/ZappierGames#147 ·
-
spigotmc
难度 1/5 1 小时以内 新手友好度 92/100
Dans-Plugins/Wild-Pets#356 ·
维护者通常 1 天内回复
-
spigotmc
难度 1/5 1 小时以内 新手友好度 85/100
Dans-Plugins/Medieval-Roleplay-Engine#371 ·
维护者通常 1 天内回复