-
Notifications
You must be signed in to change notification settings - Fork 38.9k
memory leak related to chat terminal tool #289711
Copy link
Copy link
Open
Labels
freeze-slow-crash-leakVS Code crashing, performance, freeze and memory leak issuesVS Code crashing, performance, freeze and memory leak issues
Description
Does this issue occur when all extensions are disabled?: Yes/No
- VS Code Version: 1.108.0
- OS Version: Ubuntu 25.10
Steps to Reproduce
- Setup Copilot Chat
- Open a new Chat Editor
- Send a message "Run echo hello world in terminal."
- Wait for the result to finish
- Delete all Workspace Chat sessions
- Repeat the steps several times
Video
video.mp4
Results
In the chat, asking it to run echo hello world in terminal and then clearing the chat 37 times, the number of various functions seems to grow each time:
JSON
{
"namedFunctionCount3": [
{
"count": 2547,
"delta": 82,
"name": "o_i",
"originalLocation": "src/vs/base/browser/dom.ts:139:13",
"originalName": "DomListener",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:34:2175"
},
{
"count": 1063,
"delta": 57,
"name": "run",
"originalLocation": "src/vs/base/common/actions.ts:274:7",
"originalName": "toAction",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:34:29091"
},
{
"count": 366,
"delta": 74,
"name": "NRt",
"originalLocation": "src/vs/platform/instantiation/common/instantiationService.ts:40:19",
"originalName": "InstantiationService",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:1405:44"
},
{
"count": 308,
"delta": 37,
"name": "rn",
"originalLocation": "src/vs/platform/instantiation/common/serviceCollection.ts:13:1",
"originalName": "ServiceCollection",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:290:6257"
},
{
"count": 156,
"delta": 79,
"name": "D3i",
"originalLocation": "src/vs/base/common/map.ts:41:22",
"originalName": "ResourceMapEntry",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:7:8775"
},
{
"count": 136,
"delta": 38,
"name": "dt",
"originalLocation": "src/vs/base/common/cancellation.ts:102:13",
"originalName": "CancellationTokenSource",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:28:40384"
},
{
"count": 81,
"delta": 74,
"name": "KI",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:11:0",
"originalName": "TerminalCapabilityStore",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:2441"
},
{
"count": 77,
"delta": 38,
"name": "jce",
"originalLocation": "src/vs/base/common/cancellation.ts:60:0",
"originalName": "MutableToken",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:28:40084"
},
{
"count": 58,
"delta": 37,
"name": "dispose",
"originalLocation": "src/vs/platform/instantiation/common/instantiationService.ts:78:12",
"originalName": "result.dispose",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:1405:493"
},
{
"count": 58,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/instantiation/common/instantiationService.ts:77:21",
"originalName": "result.dispose",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:1405:468"
},
{
"count": 41,
"delta": 37,
"name": "mbt",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/markNavigationAddon.ts:54:19",
"originalName": "MarkNavigationAddon",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2733:3647"
},
{
"count": 41,
"delta": 37,
"name": "Yrn",
"originalLocation": "src/vs/platform/terminal/common/capabilities/partialCommandDetectionCapability.ts:33:19",
"originalName": "PartialCommandDetectionCapability",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2741:16213"
},
{
"count": 41,
"delta": 37,
"name": "tan",
"originalLocation": "src/vs/platform/terminal/common/xterm/shellIntegrationAddon.ts:344:10",
"originalName": "ShellIntegrationAddon",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2741:20588"
},
{
"count": 41,
"delta": 37,
"name": "Sbt",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/decorationAddon.ts:56:19",
"originalName": "DecorationAddon",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2742:2658"
},
{
"count": 41,
"delta": 37,
"name": "eTi",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/xtermAddonImporter.ts:39:6",
"originalName": "XtermAddonImporter.importAddon",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2743:2730"
},
{
"count": 41,
"delta": 37,
"name": "fz",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts:184:2",
"originalName": "XtermTerminal",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2743:4451"
},
{
"count": 41,
"delta": 37,
"name": "GCt",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalStatusList.ts:67:25",
"originalName": "TerminalStatusList",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2870:484"
},
{
"count": 41,
"delta": 37,
"name": "Jun",
"originalLocation": "src/vs/platform/terminal/common/capabilities/naiveCwdDetectionCapability.ts:11:30",
"originalName": "NaiveCwdDetectionCapability.type",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2870:79451"
},
{
"count": 41,
"delta": 37,
"name": "eae",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.ts:63:19",
"originalName": "EnvironmentVariableInfoChangesActive",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2870:81282"
},
{
"count": 41,
"delta": 37,
"name": "c0t",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts:140:19",
"originalName": "TerminalProcessManager",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2874:8208"
},
{
"count": 41,
"delta": 37,
"name": "cfn",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts:717:19",
"originalName": "AckDataBufferer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:4431"
},
{
"count": 41,
"delta": 37,
"name": "h0t",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts:761:23",
"originalName": "SeamlessRelaunchDataFilter",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:4737"
},
{
"count": 41,
"delta": 37,
"name": "hfn",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/lineDataEventAddon.ts:22:30",
"originalName": "LineDataEventAddon",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:6062"
},
{
"count": 41,
"delta": 37,
"name": "sT",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalInstance.ts:366:19",
"originalName": "TerminalInstance",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:16682"
},
{
"count": 41,
"delta": 37,
"name": "p0t",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalInstance.ts:2644:16",
"originalName": "TerminalLabelComputer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2881:8690"
},
{
"count": 41,
"delta": 37,
"name": "rRe",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalInstance.ts:2818:19",
"originalName": "TerminalInstanceColorProvider",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2881:12068"
},
{
"count": 41,
"delta": 37,
"name": "L4i",
"originalLocation": "src/vs/workbench/contrib/terminal/electron-browser/localPty.ts:15:2",
"originalName": "LocalPty",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:4156:13130"
},
{
"count": 41,
"delta": 37,
"name": "e.Unicode11Addon",
"originalLocation": "webpack://Unicode11Addon/src/Unicode11Addon.ts:12:0",
"originalName": "Unicode11Addon",
"sourceLocation": "node_modules/@xterm/addon-unicode11/lib/addon-unicode11.js:0:52153"
},
{
"count": 41,
"delta": 37,
"name": "t.UnicodeV11",
"originalLocation": "webpack://Unicode11Addon/src/UnicodeV11.ts:197:2",
"originalName": "UnicodeV11",
"sourceLocation": "node_modules/@xterm/addon-unicode11/lib/addon-unicode11.js:0:22613"
},
{
"count": 41,
"delta": 37,
"name": "t.ClipboardAddon",
"originalLocation": "webpack://ClipboardAddon/src/ClipboardAddon.ts:15:12",
"originalName": "ClipboardAddon",
"sourceLocation": "node_modules/@xterm/addon-clipboard/lib/addon-clipboard.js:0:5262"
},
{
"count": 41,
"delta": 37,
"name": "i",
"originalLocation": "webpack://ClipboardAddon/src/ClipboardAddon.ts:88:0",
"originalName": "Base64",
"sourceLocation": "node_modules/@xterm/addon-clipboard/lib/addon-clipboard.js:0:6129"
},
{
"count": 41,
"delta": 37,
"name": "v1i",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/widgets/widgetManager.ts:9:0",
"originalName": "TerminalWidgetManager",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:6432"
},
{
"count": 41,
"delta": 37,
"name": "b_",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:78:0",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4046"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:103:57",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4653"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:103:118",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4673"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:91:5",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4296"
},
{
"count": 40,
"delta": 37,
"name": "onDidAddFirstListener",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalInstance.ts:359:25",
"originalName": "TerminalInstance",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:18800"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/terminalDataBuffering.ts:30:28",
"originalName": "TerminalDataBufferer.startBuffering",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:579:29159"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts:534:60",
"originalName": "TerminalProcessManager._setupPtyHostListeners",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2876:1945"
},
{
"count": 40,
"delta": 37,
"name": "readText",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts:300:19",
"originalName": "XtermTerminal",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2743:8094"
},
{
"count": 40,
"delta": 37,
"name": "writeText",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts:303:20",
"originalName": "XtermTerminal",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2743:8165"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "webpack://ClipboardAddon/src/ClipboardAddon.ts:21:62",
"originalName": "ClipboardAddon",
"sourceLocation": "node_modules/@xterm/addon-clipboard/lib/addon-clipboard.js:0:5389"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:95:57",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4398"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/platform/terminal/common/capabilities/terminalCapabilityStore.ts:95:122",
"originalName": "TerminalCapabilityStoreMultiplexer",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2037:4418"
},
{
"count": 40,
"delta": 37,
"name": "run",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.ts:81:8",
"originalName": "EnvironmentVariableInfoChangesActive._getActions",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2870:81494"
},
{
"count": 40,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts:166:46",
"originalName": "TerminalProcessManager",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2874:9344"
},
{
"count": 39,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.ts:104:55",
"originalName": "TerminalChatService.registerTerminalInstanceWithToolSession",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:3033:1370"
},
{
"count": 39,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminalContrib/chat/browser/terminalChatService.ts:122:60",
"originalName": "TerminalChatService.registerTerminalInstanceWithToolSession",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:3033:1613"
},
{
"count": 39,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts:853:50",
"originalName": "RunInTerminalTool._registerInputListener",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2990:1366"
},
{
"count": 39,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts:858:50",
"originalName": "RunInTerminalTool",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2990:1451"
},
{
"count": 39,
"delta": 37,
"name": "anonymous",
"originalLocation": "src/vs/workbench/contrib/terminalContrib/chatAgentTools/browser/tools/runInTerminalTool.ts:898:50",
"originalName": "RunInTerminalTool._setupProcessIdAssociation",
"sourceLocation": "out/vs/workbench/workbench.desktop.main.js:2990:2142"
}
],
"isLeak": true
}
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
freeze-slow-crash-leakVS Code crashing, performance, freeze and memory leak issuesVS Code crashing, performance, freeze and memory leak issues