我目前只在Codespaces中看到过这个问题。简而言之,这个承诺永远不会完成:
vscode/src/vs/workbench/services/commands/common/commandService.ts
第71行到第72行
| | awaitthis._extensionService.activateByEvent(activationEvent); |
| | returnthis._tryExecuteCommand(id,args); |
我稍微调试了一下,似乎其中一个扩展主机管理器从未完成activateByEvent
调用:
vscode/src/vs/workbench/services/extensions/common/abstractExtensionService.ts
第909行到第918行
| | this._extensionHostManagers.map(extHostManager=>extHostManager.activateByEvent(activationEvent,activationKind)) |
vscode/src/vs/workbench/services/extensions/common/extensionHostManager.ts
第359行到第371行
| | privateasync_activateByEvent(activationEvent: string,activationKind: ActivationKind): Promise{ |
| | if(!this._proxy){ |
| | return; |
| | } |
| | constproxy=awaitthis._proxy; |
| | if(!proxy){ |
| | // 这个情况已经在上面覆盖并记录过了。|
| | // 即扩展主机无法启动|
| | return; |
| | } |
| | awaitproxy.activateByEvent(activationEvent,activationKind); |
| | this._resolvedActivationEvents.add(activationEvent); |
| | } |
这个问题并不每次都重现。到目前为止,我只在最近启动的Codespaces中看到过这个问题,但在我制作的3个测试设置中,每次重启代码空间后都会重现。
5条答案
按热度按时间drnojrws1#
到目前为止,我复现了两种方法:
baubqpgj2#
经过一起调试,我们发现网络工作扩展主机被终止了,但看起来代码并没有意识到这一点,所以它继续尝试与这个已经失效的网络工作扩展主机进行通信。这阻塞了所有随后的激活事件。
a1o7rhls3#
在调试过程中的线程截图:
实际上它应该看起来像这样:
你可以看到有一个奇怪的空线程,没有webworker iframe或扩展主机。
x7rlezfr4#
我花了大约10分钟尝试重现,但无法做到。标记为已验证。
cclgggtu5#
当我再次看到这个时,重新开放。