Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Terminal freeze / lag with file paths #169614

Closed
bpasero opened this issue Dec 20, 2022 · 6 comments · Fixed by #169696 or #169697
Closed

Terminal freeze / lag with file paths #169614

bpasero opened this issue Dec 20, 2022 · 6 comments · Fixed by #169696 or #169697
Assignees
Labels
freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues important Issue identified as high-priority insiders-released Patch has been released in VS Code Insiders terminal-links
Milestone

Comments

@bpasero
Copy link
Member

bpasero commented Dec 20, 2022

I was resolving a conflict for vscode-distro with 500 file paths showing up in the terminal as a result and noticed how typing became very slow. Kudos to @jrieken auto profiling, we have a trace:

renderer-9184a0.cpuprofile.zip

@bpasero bpasero added the freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues label Dec 20, 2022
@bpasero
Copy link
Member Author

bpasero commented Dec 20, 2022

Terminal output:

image

@Tyriar Tyriar added this to the January 2023 milestone Dec 20, 2022
@Tyriar
Copy link
Member

Tyriar commented Dec 20, 2022

This was caused by xtermjs/xterm.js#4298, it may fixable on the VS Code side though.

@Tyriar
Copy link
Member

Tyriar commented Dec 20, 2022

Repro:

  1. Open vscode repo
  2. Run:
echo "src/vs/workbench/contrib/terminal/browser/baseTerminalBackend.ts
src/vs/workbench/contrib/terminal/browser/environmentVariableInfo.ts
src/vs/workbench/contrib/terminal/browser/remotePty.ts
src/vs/workbench/contrib/terminal/browser/remoteTerminalBackend.ts
src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts
src/vs/workbench/contrib/terminal/browser/terminal.ts
src/vs/workbench/contrib/terminal/browser/terminal.web.contribution.ts
src/vs/workbench/contrib/terminal/browser/terminalActions.ts
src/vs/workbench/contrib/terminal/browser/terminalCommands.ts
src/vs/workbench/contrib/terminal/browser/terminalConfigHelper.ts
src/vs/workbench/contrib/terminal/browser/terminalContextMenu.ts
src/vs/workbench/contrib/terminal/browser/terminalDecorationsProvider.ts
src/vs/workbench/contrib/terminal/browser/terminalEditor.ts
src/vs/workbench/contrib/terminal/browser/terminalEditorInput.ts
src/vs/workbench/contrib/terminal/browser/terminalEditorSerializer.ts
src/vs/workbench/contrib/terminal/browser/terminalEditorService.ts
src/vs/workbench/contrib/terminal/browser/terminalEscapeSequences.ts
src/vs/workbench/contrib/terminal/browser/terminalFindWidget.ts
src/vs/workbench/contrib/terminal/browser/terminalGroup.ts
src/vs/workbench/contrib/terminal/browser/terminalGroupService.ts
src/vs/workbench/contrib/terminal/browser/terminalIcon.ts
src/vs/workbench/contrib/terminal/browser/terminalIcons.ts
src/vs/workbench/contrib/terminal/browser/terminalInstance.ts
src/vs/workbench/contrib/terminal/browser/terminalInstanceService.ts
src/vs/workbench/contrib/terminal/browser/terminalMainContribution.ts
src/vs/workbench/contrib/terminal/browser/terminalMenus.ts
src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts
src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts
src/vs/workbench/contrib/terminal/browser/terminalProfileQuickpick.ts
src/vs/workbench/contrib/terminal/browser/terminalProfileResolverService.ts
src/vs/workbench/contrib/terminal/browser/terminalProfileService.ts
src/vs/workbench/contrib/terminal/browser/terminalQuickAccess.ts
src/vs/workbench/contrib/terminal/browser/terminalQuickFixBuiltinActions.ts
src/vs/workbench/contrib/terminal/browser/terminalQuickFixService.ts
src/vs/workbench/contrib/terminal/browser/terminalRunRecentQuickPick.ts
src/vs/workbench/contrib/terminal/browser/terminalService.ts
src/vs/workbench/contrib/terminal/browser/terminalStatusList.ts
src/vs/workbench/contrib/terminal/browser/terminalTabbedView.ts
src/vs/workbench/contrib/terminal/browser/terminalTabsList.ts
src/vs/workbench/contrib/terminal/browser/terminalTooltip.ts
src/vs/workbench/contrib/terminal/browser/terminalTypeAheadAddon.ts
src/vs/workbench/contrib/terminal/browser/terminalUri.ts
src/vs/workbench/contrib/terminal/browser/terminalView.ts
src/vs/workbench/contrib/terminal/browser/xterm-private.d.ts"
  1. Mouse over a link and keep it there
  2. Type into the terminal

Recording 2022-12-20 at 13 55 12

image
image
image
Profile-20221220T135751.zip

@Tyriar Tyriar added the important Issue identified as high-priority label Dec 20, 2022
@Tyriar
Copy link
Member

Tyriar commented Dec 20, 2022

Something is not getting disposed, I verified that the number of times each link detector is called increases

@Tyriar
Copy link
Member

Tyriar commented Dec 20, 2022

Recording 2022-12-20 at 14 08 07

@Tyriar
Copy link
Member

Tyriar commented Dec 20, 2022

Can repro upstream: xtermjs/xterm.js#4341

Tyriar added a commit that referenced this issue Dec 20, 2022
This doesn't fix #169614 but it's an issue I saw could happen while investigating it
Tyriar added a commit that referenced this issue Dec 20, 2022
@VSCodeTriageBot VSCodeTriageBot added unreleased Patch has not yet been released in VS Code Insiders insiders-released Patch has been released in VS Code Insiders and removed unreleased Patch has not yet been released in VS Code Insiders labels Dec 21, 2022
@github-actions github-actions bot locked and limited conversation to collaborators Feb 4, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
freeze-slow-crash-leak VS Code crashing, performance, freeze and memory leak issues important Issue identified as high-priority insiders-released Patch has been released in VS Code Insiders terminal-links
Projects
None yet
3 participants