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

Should pause updates during git rebase #2070

Open
jsoref opened this issue Aug 18, 2021 · 3 comments
Open

Should pause updates during git rebase #2070

jsoref opened this issue Aug 18, 2021 · 3 comments

Comments

@jsoref
Copy link

jsoref commented Aug 18, 2021

Issue Type: Performance Issue

I'm running a 250+ commit rebase (repeatedly) on a Java project (zap-extensions).

The Java project has ~3k warnings. Periodically during the rebase, the warnings number will reset and then climb.

Expected results: while the file system is unsettled, pause updates. Once the file system is settled, perform an update.

(I'm currently playing with extensions, and that has dropped the number to a bit shy of 1k warnings, but the cost is quite significant given that I'm performing lots of rebases of a significant subset of the 250 commits.)

Extension version: 0.81.0
VS Code version: Code 1.59.0 (379476f0e13988d90fab105c5c19e7abc8b1dea8, 2021-08-04T23:14:40.191Z)
OS version: Darwin x64 20.6.0
Restricted Mode: No

System Info
Item Value
CPUs Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz (8 x 2500)
GPU Status 2d_canvas: enabled
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
webgl: enabled
webgl2: enabled
Load (avg) 83, 58, 40
Memory (System) 16.00GB (0.71GB free)
Process Argv --crash-reporter-id 1fc67ee2-0174-4598-9f98-4537df0dd32c
Screen Reader no
VM 0%
Process Info
CPU %	Mem MB	   PID	Process
   17	   131	   377	code main
    0	    82	   461	   gpu-process
    0	    16	   473	   utility
    9	   197	   483	   window (Untitled-2 — check-spelling)
    0	   164	   968	     extensionHost
    0	    16	  4106	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=968
    0	    16	  5813	       electron_node server.js 
    0	     0	  6485	       electron_node server.js 
    0	    16	  6525	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	  7665	       electron_node server.js 
    0	    16	 83617	       electron_node index.js 
    0	    16	 87760	       electron_node server.js 
    0	    33	  8432	     watcherService
    0	    98	   484	   window (fullstack.txt — cspell-dicts)
    0	   131	   969	     extensionHost
    0	    16	  2170	       electron_node server.js 
    0	    16	  2613	       electron_node server.js 
    0	    16	 83006	       electron_node index.js 
    0	    16	 84148	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=969
    0	    16	 85584	       electron_node bundle.js 
    0	    16	 89163	       electron_node j.js j.js j.js j.js 
    0	    16	 84219	     watcherService
    0	   147	   485	   window (README.md — github-actions-runner-proxy)
    0	   164	   978	     extensionHost
    0	     0	  6724	       electron_node server.js 
    0	    16	  7249	       electron_node eslintServer.js 
    0	    16	  7315	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	  7319	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=978
    0	     0	 10577	       electron_node server.js 
    0	    16	 17897	       electron_node bundle.js 
    0	    16	 83252	       electron_node index.js 
    0	    16	 15093	     watcherService
    0	   147	   490	   window (Untitled-1 — nginx-debugging-backend)
    0	   180	   959	     extensionHost
    0	    16	  5372	       electron_node server.js 
    0	    16	  5732	       electron_node eslintServer.js 
    0	    16	  5892	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=959
    0	    16	  7351	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	  8163	       electron_node server.js 
    0	    16	 15329	       electron_node bundle.js 
    0	    16	 83233	       electron_node index.js 
    0	    16	 89940	       electron_node j.js j.js j.js j.js 
    0	    16	 86000	     watcherService
    0	   115	   491	   window (spelling.yml — regression-tests)
    0	    98	   971	     extensionHost
    0	    16	  4002	       electron_node server.js 
    0	    16	  4005	       electron_node server.js 
    0	    16	  4951	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	  7776	       electron_node server.js 
    0	    16	 83420	       electron_node index.js 
    0	    16	 91719	     watcherService
    0	   229	   492	   window (...)
    0	   229	   956	     extensionHost
    0	    33	  6531	       electron_node j.js j.js j.js j.js 
    0	   246	  8746	       /Users/jsoref/.vscode/extensions/hashicorp.terraform-2.14.0/lsp/terraform-ls serve
    0	     0	 52363	       electron_node tsserver.js 
    0	    16	 52364	       electron_node tsserver.js 
    0	     0	 52538	         electron_node typingsInstaller.js typesMap.js 
    0	     0	 54788	       electron_node dbaeumer.js server.js 
    0	    16	 54789	       electron_node server.js 
    0	    16	 55592	       electron_node server.js 
    0	    16	 55773	       electron_node eslintServer.js 
    0	    16	 55795	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	 55988	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=956
    0	     0	 56226	       electron_node server.js 
    0	    16	 56612	       electron_node bundle.js 
    0	    16	 83966	       electron_node index.js 
    0	    16	 87746	     watcherService
    0	   115	   499	   window (spelling.yml — lens)
    0	   197	   965	     extensionHost
    0	    33	  4646	       electron_node server.js 
    0	    16	  4930	       electron_node server.js 
    0	    16	  5365	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	 11927	       electron_node server.js 
    0	    16	 83290	       electron_node index.js 
    0	    16	 84161	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=965
    0	    16	 84912	       electron_node bundle.js 
    0	    16	 84184	     watcherService
    0	    98	   500	   window (...)
    0	    49	   963	     extensionHost
    0	    16	  1938	       electron_node server.js 
    0	    16	  2714	       electron_node server.js 
    0	    16	 83249	       electron_node index.js 
    0	    16	 83475	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=963
    0	    16	 89177	       electron_node j.js j.js j.js j.js 
    0	    16	 83523	     watcherService
    0	   147	   501	   window (README.md — test-basic)
    0	   164	   961	     extensionHost
    0	    16	  4203	       electron_node server.js 
    0	    16	  4204	       electron_node eslintServer.js 
    0	    16	  4513	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	  4867	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=961
    0	    16	  5061	       electron_node server.js 
    0	    16	 83253	       electron_node index.js 
    0	    16	 83592	     watcherService
    0	    98	   502	   window (Audiences • Untitled-1 — dns-ui)
    0	    49	   960	     extensionHost
    0	    16	  2588	       electron_node server.js 
    0	    16	 82869	       electron_node index.js 
    0	    33	  4943	     watcherService
    0	   115	   504	   window (util.h — curl)
    0	    49	   977	     extensionHost
    0	    16	  4534	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	  6142	       /Users/jsoref/.vscode/extensions/ms-vscode.cpptools-1.5.1/bin/cpptools
    0	     0	 49522	         /Users/jsoref/.vscode/extensions/ms-vscode.cpptools-1.5.1/bin/cpptools-srv 6142 {027E186F-9424-4DAD-AA95-1132300C02C8}
    0	    16	  6153	       electron_node server.js 
    0	     0	  8647	       electron_node server.js 
    0	    16	 83581	       electron_node index.js 
    0	    16	 16283	     watcherService
    0	   115	   505	   window (excludes.txt — spell-check-this)
    0	   164	   962	     extensionHost
    0	    33	  3762	       electron_node server.js 
    0	     0	  3776	       electron_node server.js 
    0	    16	  4826	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	  7366	       electron_node server.js 
    0	    16	 83548	       electron_node index.js 
    0	    16	  3994	     watcherService
    1	   131	   506	   window (ing.yaml — k3d-lb-test)
    0	    82	   976	     extensionHost
    0	    16	  4209	       electron_node server.js 
    0	    16	  5783	       electron_node server.js 
    0	    16	  6145	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	 10565	       electron_node server.js 
    0	    16	 83232	       electron_node index.js 
    0	    16	 32616	     watcherService
    0	   147	   507	   window (Configuration-information.md — check-spelling.wiki)
    0	   164	   983	     extensionHost
    0	    16	  6737	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	  6817	       electron_node server.js 
    0	    16	  6818	       electron_node eslintServer.js 
    0	    16	  9442	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=983
    0	     0	 10270	       electron_node server.js 
    0	    16	 83258	       electron_node index.js 
    0	    16	 16163	     watcherService
    0	    98	   511	   window (create_configs.rs — EAST)
    0	   131	   958	     extensionHost
    0	    16	  2282	       electron_node server.js 
    0	    16	  4135	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	    16	  5431	       electron_node server.js 
    0	    16	 83325	       electron_node index.js 
    0	    16	 83953	     watcherService
    3	   180	   512	   window (check.sh — dhall-validator-action)
    0	    49	   974	     extensionHost
    0	    16	  5370	       electron_node server.js 
    0	     0	  5371	       electron_node server.js 
    0	    16	  5895	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	 10377	       electron_node server.js 
    0	    16	 83280	       electron_node index.js 
    0	    16	 13373	     watcherService
    0	    98	   514	   window (TaskResult.cs — runner)
    0	   131	   975	     extensionHost
    0	     0	  4205	       electron_node server.js 
    0	    16	  5250	       /Users/jsoref/go/bin/gopls -mode=stdio
    0	     0	  7237	       electron_node server.js 
    0	    16	 83342	       electron_node index.js 
    0	    16	  4208	     watcherService
    0	    82	   515	   window (...)
    0	    66	   955	     extensionHost
    0	     0	  1488	       electron_node server.js 
    0	    16	 82628	       electron_node index.js 
    0	    82	   953	   shared-process
    0	    16	   998	     ptyHost
    0	     0	 11930	       /bin/zsh --login
    0	     0	 12075	       /bin/zsh --login
    0	     0	 12227	       /bin/zsh --login
    0	    16	 15244	         /usr/bin/java -Dfile.encoding=UTF-8 -Xms1024m -Xmx1024m -Xss4M -XX:ReservedCodeCacheSize=128m -Dscala.ext.dirs=/Users/jsoref/.sbt/1.0/java9-rt-ext-homebrew_16_0_1 -jar /usr/local/Cellar/sbt/1.5.5/libexec/bin/sbt-launch.jar
    0	     0	 18563	       /bin/zsh --login
    0	     0	 43934	       /bin/zsh -l
    0	     0	 60623	       /bin/zsh -l
    0	     0	 76893	       /bin/zsh -l
    0	     0	 96788	       /bin/zsh -l
    0	     0	 49752	     /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	   197	 43540	   window (Extension: Test Runner for Java — zap-extensions)
    0	   164	 43930	     extensionHost
    0	    33	 44139	       electron_node index.js 
    0	    66	 44192	       electron_node server.js 
    0	    16	 49409	       /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Renderer).app/Contents/MacOS/Code Helper (Renderer) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=43930
    0	   213	 49420	       /usr/bin/java -classpath /Users/jsoref/.vscode/extensions/richardwillis.vscode-gradle-3.6.1/lib/gradle-server.jar com.github.badsyntax.gradle.GradleServer 56191
    0	   197	 49434	       /Library/Java/JavaVirtualMachines/adoptopenjdk-11-openj9.jdk/Contents/Home/bin/java --add-modules=ALL-SYSTEM --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Declipse.application=org.eclipse.jdt.ls.core.id1 -Dosgi.bundles.defaultStartLevel=4 -Declipse.product=org.eclipse.jdt.ls.core.product -Dfile.encoding=utf8 -XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx1G -Xms100m -noverify -jar /Users/jsoref/.vscode/extensions/redhat.java-0.81.0/server/plugins/org.eclipse.equinox.launcher_1.6.200.v20210416-2027.jar -configuration /Users/jsoref/Library/Application Support/Code/User/globalStorage/redhat.java/0.81.0/config_mac -data /Users/jsoref/Library/Application Support/Code/User/workspaceStorage/592d461807c1f1dfdc82dd6b8087680c/redhat.java/jdt_ws
    0	    33	 43932	     watcherService
    0	    33	 44056	     searchService
    0	    49	 49520	   window (undefined)
    0	    66	 49637	   window (Issue Reporter)
    0	    33	 55487	   window (undefined)
Workspace Info
|  Window (TaskResult.cs — runner)
|  Window (check.sh — dhall-validator-action)
|  Window (create_configs.rs — EAST)
|  Window (Configuration-information.md — check-spelling.wiki)
|  Window (ing.yaml — k3d-lb-test)
|  Window (excludes.txt — spell-check-this)
|  Window (util.h — curl)
|  Window (Audiences • Untitled-1 — dns-ui)
|  Window (README.md — test-basic)
|  Window (...)
|  Window (spelling.yml — lens)
|  Window (...)
|  Window (spelling.yml — regression-tests)
|  Window (Untitled-1 — nginx-debugging-backend)
|  Window (README.md — github-actions-runner-proxy)
|  Window (fullstack.txt — cspell-dicts)
|  Window (Extension: Test Runner for Java — zap-extensions)
|  Window (Untitled-2 — check-spelling)
|    Folder (check-spelling.wiki): 82 files
|      File types: md(79) yml(1) sh(1)
|      Conf files:
|    Folder (k3d-lb-test): 16 files
|      File types: yaml(16)
|      Conf files:
|    Folder (test-basic): 11 files
|      File types: yml(7) md(1)
|      Conf files: github-actions(7)
|    Folder (nginx-debugging-backend): 12 files
|      File types: db(2) DS_Store(1) log(1) json(1) md(1) py(1) txt(1)
|      Conf files: settings.json(1)
|    Folder (spell-check-this): 13 files
|      File types: txt(5) md(2) yml(1)
|      Conf files: github-actions(1)
|    Folder (github-actions-runner-proxy): 15 files
|      File types: txt(6) md(3) yml(1)
|      Conf files: github-actions(1)
|    Folder (regression-tests): 18 files
|      File types: txt(7) md(3) yml(1)
|      Conf files: github-actions(1)
|    Folder (EAST): 343 files
|      File types: ron(184) go(19) rs(18) md(7) py(6) txt(5) gitignore(4)
|                  sh(4) eml(3) toml(2)
|      Conf files: github-actions(1)
|    Folder (curl): 3498 files
|      File types: c(536) 3(459) d(242) h(223) md(53) pl(46) gitignore(45)
|                  m4(28) sln(27) sh(20)
|      Conf files: sln(27) cmake(20) github-actions(4) settings.json(1)
|    Folder (runner): 837 files
|      File types: cs(601) md(33) yml(19) png(15) sh(11) json(10) csproj(9)
|                  template(6) js(5) cmd(3)
|      Conf files: csproj(9) github-actions(3) launch.json(1) tasks.json(1)
|                  sln(1) package.json(1) tsconfig.json(1)
|      Launch Configs: coreclr(5)
|    Folder (dns-ui): 717 files
|      File types: i(155) php(88) idx(19) pack(19) yml(14) xml(9) js(6) css(5)
|                  1(4) png(4)
|      Conf files:
|    Folder (cspell-dicts): 1513 files
|      File types: md(344) json(301) js(261) txt(90) ts(63) aff(29) dic(29)
|                  gz(28) tex(11) csv(8)
|      Conf files: package.json(128) github-actions(4) makefile(2)
|                  launch.json(1) settings.json(1)
|      Launch Configs: node
|    Folder (lens): 1515 files
|      File types: ts(549) tsx(305) scss(213) md(38) yml(28) png(26) svg(23)
|                  json(22) yaml(19) css(12)
|      Conf files: github-actions(13) package.json(6) tsconfig.json(5)
|                  webpack.config.js(4) makefile(2) launch.json(1)
|                  settings.json(1) tasks.json(1)
|      Launch Configs: node(3) pwa-chrome
|    Folder (dhall-validator-action): 2824 files
|      File types: dhall(1975) hash(151) dhallb(87) diag(87) md(55) nix(44)
|                  lhs(9) txt(7) svg(5) png(5)
|      Conf files: github-actions(2)
|    Folder (check-spelling): 14131 files
|      File types: i(92) txt(54) hg(8) json(6) sh(6) idx(5) pack(5) pl(5)
|                  yml(4) d(4)
|      Conf files: github-actions(1)
|    Folder (...): 919 files
|      File types: scala(133) class(50) png(29) ts(28) cache(21) svg(15)
|                  log(14) json(13) sh(11) yml(7)
|      Conf files: github-actions(5) settings.json(1) makefile(1)
|                  package.json(1) tsconfig.json(1) tslint.json(1)
|    Folder (...): 3458 files
|      File types: yaml(871) py(552) dhall(495) pyc(278) json(149) md(57)
|                  sh(46) tf(43) txt(28) yml(21)
|      Conf files: github-actions(14) makefile(4) settings.json(1)
|    Folder (zap-extensions): more than 20274 files
|      File types: xml(3120) html(2997) properties(2015) hs(1543) jhm(1543)
|                  png(1108) java(918) class(246) txt(175) PNG(96)
|      Conf files: github-actions(7) launch.json(1) settings.json(1)
|      Launch Configs: java(2);
A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
pythonvspyt602:30300191
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
pythonvspyt639:30300192
pythontb:30283811
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
pythondataviewer:30285071
pythonvsuse255:30340121
vscod805cf:30301675
pythonvspyt200:30340761
vscextlang:30333561
binariesv615:30325510
pythonvssor306:30344512
bridge0708:30335490
vstre464cf:30350173
bridge0723:30353136

@fbricon
Copy link
Collaborator

fbricon commented Aug 18, 2021

You can set "java.autobuild.enabled": false while performing your rebase.
TBH I don't see how we could detect FS changes are caused by user changing content or by git operations.

@jsoref
Copy link
Author

jsoref commented Aug 18, 2021

I think it'd be sufficient to detect external changes to the repository and wait a bit before doing a build, and if there's another external changes, wait more.

You could check for the presence of the git rebase todo file, but I don't think it's a necessary gate.

@pingu8007
Copy link

I know this is an old issue, but since it's still opened, let me reuse it...

I encounter the same issue when doing some maven operations which will recompile classes.
The operation is randomly failed because some file is locked by other process. Since all operations happened inside container, I'm almost sure this is locked by java language server.

Is it possible to do something automatically for this issue? I think the dynamic delay suggested by jsoref is a good idea.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants