vscode-pull-request-github icon indicating copy to clipboard operation
vscode-pull-request-github copied to clipboard

network error when marking files in PR as viewed

Open tboddyspargo opened this issue 8 months ago • 2 comments

Type: Performance Issue

  1. Check out a pull request with > 1000 files
  2. Mark a folder containing > 1000 files as "viewed"
  3. The extension won't be able to finish updating all the files (and might be marking them one-by-one.

Is there an opportunity to batch update the "viewed" state of files more efficiently to avoid errors like this (I'm assuming it's related to a timeout or other API restriction)?

Are there other kinds of updates that might commonly be done in batches which could benefit from similar optimizations?

2025-05-13 17:01:03.260 [error] Error: Network error: Response not successful: Received status code 502
    at new e (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2480:140)
    at Object.error (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2480:17424)
    at N (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15450)
    at P (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15813)
    at O.value (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:16399)
    at /Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2480:14329
    at Set.forEach (<anonymous>)
    at Object.error (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2480:14291)
    at N (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15450)
    at P (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15813)
    at O.value (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:16399)
    at N (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15450)
    at P (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:15813)
    at O.value (/Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2463:16399)
    at /Users/me/.vscode/extensions/github.vscode-pull-request-github-0.110.0/dist/extension.js:2569:11002
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

Extension version: 0.110.0 VS Code version: Code 1.100.1 (Universal) (91fa95bccb027ece6a968589bb1d662fa9c8e170, 2025-05-09T15:43:50.040Z) OS version: Darwin arm64 24.4.0 Modes:

System Info
Item Value
CPUs Apple M1 Max (10 x 2400)
GPU Status 2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off
Load (avg) 4, 5, 5
Memory (System) 32.00GB (0.07GB free)
Process Argv --crash-reporter-id 9c8b74e5-efe2-4756-b68a-91b9fde0fa03
Screen Reader no
VM 0%
Process Info
CPU %	Mem MB	   PID	Process
    4	   197	 45142	code main
    0	    66	 45148	   gpu-process
    0	    33	 45149	   utility-network-service
    0	   590	 45152	window [1] (Running Extensions — datachat (Workspace))
    2	   262	 45462	extensionHost [1]
    0	    33	 45518	     electron-nodejs (languageserver.js )
    0	    33	 45938	     /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Users/tyler/.vscode/extensions/streetsidesoftware.code-spell-checker-4.0.47/packages/_server/dist/main.cjs --node-ipc --clientProcessId=45462
    0	    33	 46115	     electron-nodejs (eslintServer.js )
    0	    33	 47065	     /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/json-language-features/server/dist/node/jsonServerMain --node-ipc --clientProcessId=45462
    0	    33	 47504	     /Users/tyler/.nvm/versions/node/v22.14.0/bin/node --max-old-space-size=8192 /Users/tyler/.vscode/extensions/ms-python.vscode-pylance-2025.4.1/dist/server.bundle.js -- --clientProcessId=45462 --cancellationReceive=file:db6a1a3da2266e218a2687b4e0cbb54fe5174066d4 --stdio
    0	     0	 48054	     /Users/tyler/.vscode/extensions/charliermarsh.ruff-2025.22.0-darwin-arm64/bundled/libs/bin/ruff server
    0	    33	 51680	     electron-nodejs (languageserver.js )
    0	    33	 51727	     electron-nodejs (server.js )
    0	    33	 51735	     /Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/markdown-language-features/dist/serverWorkerMain --node-ipc --clientProcessId=45462
    0	    33	 56308	     electron-nodejs (server.js )
    0	    33	 56309	     electron-nodejs (server.js )
    0	     0	 59434	     docker events --since 1747173842 --until 1747174142 --filter type=container --filter type=image --filter type=network --filter type=volume --filter event=create --filter event=destroy --filter event=die --filter event=kill --filter event=pause --filter event=rename --filter event=restart --filter event=start --filter event=stop --filter event=unpause --filter event=update --filter event=delete --filter event=import --filter event=load --filter event=pull --filter event=save --filter event=tag --filter event=untag --filter event=remove --filter event=prune --format {{json .}}
    0	    66	 45463	extensionHost [1]
    0	    33	 45465	ptyHost
    0	     0	 45859	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	     0	 45860	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	     0	 45861	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	     0	 45862	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	     0	 45867	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	     0	 47598	     /bin/bash --init-file /Applications/Visual Studio Code.app/Contents/Resources/app/out/vs/workbench/contrib/terminal/common/scripts/shellIntegration-bash.sh
    0	    98	 45472	shared-process
    0	     0	 59703	     /bin/ps -ax -o pid=,ppid=,pcpu=,pmem=,command=
    0	    33	 45473	fileWatcher [1]
    0	    66	 58044	   window
   31	   295	 59695	   window
Workspace Info
|  Window (Running Extensions — datachat (Workspace))
|    Folder (datachat): more than 25251 files
|      File types: py(4706) pyc(4697) json(1234) log(516) gz(393) csv(335)
|                  pyi(240) ts(207) txt(159) so(114)
|      Conf files: makefile(6) github-actions(5) settings.json(4)
|                  dockerfile(4) launch.json(3) package.json(2)
|                  tasks.json(1) tsconfig.json(1)
|      Launch Configs: debugpy(15) go
|    Folder (anywhere): 240 files
|      File types: ts(205) json(4) sh(4) gitignore(2) js(1) npmignore(1)
|                  openapi-generator-ignore(1)
|      Conf files: launch.json(1) package.json(1) tsconfig.json(1)
|      Launch Configs: node
|    Folder (data_migration): 6503 files
|      File types: pyc(1621) py(1620) json(1216) gz(393) txt(45) h(26)
|                  typed(26) so(17) pyi(16) exe(14)
|      Conf files: launch.json(1) settings.json(1) dockerfile(1) makefile(1)
|      Launch Configs: debugpy
|    Folder (dc-alert-scheduler): 4752 files
|      File types: pyc(1342) py(1340) txt(46) typed(27) h(25) pyi(20) exe(14)
|                  hpp(11) dylib(9) so(8)
|      Conf files: settings.json(2) makefile(2) dockerfile(1)
|    Folder (dc-sentry): 13 files
|      File types: go(7) json(1) mod(1) sum(1)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dc_app_service): more than 22448 files
|      File types: pyc(6038) py(5954) json(1635) pyi(530) gz(398) so(179)
|                  txt(155) h(145) typed(59) proto(58)
|      Conf files: dockerfile(1) makefile(1)
|      Launch Configs: debugpy(3)
|    Folder (dc_charting_service): 214 files
|      File types: ts(148) json(5) snap(5) sql(3) mts(2) gitignore(1) npmrc(1)
|                  cjs(1) sum(1)
|      Conf files: launch.json(1) dockerfile(1) makefile(1) package.json(1)
|                  tsconfig.json(1)
|      Launch Configs: node
|    Folder (dc_charting_worker): 97 files
|      File types: ts(64) json(5) md(2) gitignore(1) npmrc(1) cjs(1) snap(1)
|      Conf files: launch.json(1) dockerfile(1) makefile(1) package.json(1)
|                  tsconfig.json(1)
|      Launch Configs: node
|    Folder (dc_executor): 159 files
|      File types: py(59) pyc(50) md(4) gitignore(2) json(2) in(2) txt(2)
|                  Dockerfile(2) coveragerc(1) openapi-generator-ignore(1)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dc_nl2code): more than 23056 files
|      File types: pyc(6858) py(6827) pyi(1933) json(527) txt(119) typed(80)
|                  proto(79) so(67) h(31) npy(20)
|      Conf files: dockerfile(1) makefile(1)
|    Folder (dcclient): 14105 files
|      File types: pyc(4407) py(4283) pyi(2014) txt(85) so(71) h(56) c(50)
|                  f90(49) typed(34) csv(30)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dcdb): 18317 files
|      File types: pyc(5216) py(5198) json(1082) gz(844) h(585) pyi(448)
|                  yml(411) txt(151) so(107) pyx(71)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dcml): 2245 files
|      File types: py(952) pyc(917) exe(14) typed(11) txt(8) toml(7) md(5)
|                  json(3) gitignore(2) 11(2)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dcode): more than 22049 files
|      File types: pyc(7030) py(7004) pyi(1930) json(522) txt(99) typed(78)
|                  proto(67) so(66) h(30) npy(20)
|      Conf files: dockerfile(1) makefile(1)
|    Folder (dcquery): more than 22935 files
|      File types: pyc(5728) py(5502) json(908) gz(877) sql(594) h(592)
|                  pyi(475) yml(152) txt(135) so(114)
|      Conf files: settings.json(1) makefile(1)
|    Folder (dcskills): 28 files
|      File types: py(10) in(2) txt(2) gitignore(1) TAG(1) md(1)
|                  python-version(1) json(1) toml(1)
|      Conf files: settings.json(1) makefile(1)
|    Folder (docs): more than 20447 files
|      File types: svg(13439) json(3151) dat(1068) py(479) pyc(477) html(217)
|                  jinja(88) js(78) txt(36) mo(32)
|      Conf files: makefile(1)
|    Folder (encoderlm_service): more than 24011 files
|      File types: pyc(5510) py(5483) pyi(2110) pb(1063) json(524) onnx(391)
|                  txt(107) so(83) typed(79) proto(75)
|      Conf files: dockerfile(2) makefile(1)
|    Folder (management-db-init): 7619 files
|      File types: py(1779) pyc(1766) json(1214) gz(393) txt(54) pyi(43) h(29)
|                  typed(24) so(22) exe(14)
|      Conf files: launch.json(1) settings.json(1) dockerfile(1) makefile(1)
|      Launch Configs: debugpy
|    Folder (management_server): 1202 files
|      File types: go(612) py(248) pyc(199) md(10) tpl(9) graphql(8) json(6)
|                  sh(6) mod(4) sum(4)
|      Conf files: launch.json(1) settings.json(1) dockerfile(1) makefile(1)
|      Launch Configs: go debugpy
|    Folder (management_service_client): 2630 files
|      File types: py(1038) pyc(1035) txt(32) typed(27) exe(14) json(13)
|                  pyi(9) so(5) md(4) 11(3)
|      Conf files: settings.json(1) makefile(1)
|    Folder (messaging_server): 5206 files
|      File types: pyc(1834) py(1656) txt(43) pyi(33) typed(23) exe(12) rst(9)
|                  md(3) so(3) tab(3)
|      Conf files:
|    Folder (ml_task_executor): 1688 files
|      File types: py(705) pyc(666) exe(14) typed(11) txt(10) json(6) md(5)
|                  pth(4) tsv(3) tmp(3)
|      Conf files: settings.json(1) dockerfile(1) makefile(1)
|    Folder (object_store_gc): 2450 files
|      File types: py(994) pyc(991) h(25) txt(20) exe(14) typed(12) hpp(11)
|                  dylib(9) so(7) 11(2)
|      Conf files: settings.json(1) dockerfile(1) makefile(1)
|    Folder (pipeliner): more than 20775 files
|      File types: pyc(6238) py(6207) json(1204) h(557) gz(405) pyi(270)
|                  so(171) txt(163) mat(109) pxd(80)
|      Conf files: makefile(1)
|    Folder (proxy): 68 files
|      File types: py(49) txt(2) json(1) ini(1) in(1)
|      Conf files: settings.json(1) makefile(1) dockerfile(1)
|    Folder (registry): 1882 files
|      File types: pyc(771) py(763) typed(19) txt(14) exe(14) pyi(10) md(3)
|                  gitignore(2) 11(2) tmpl(2)
|      Conf files: settings.json(1) makefile(1)
|    Folder (sassy): 130 files
|      File types: ts(70) json(7) sql(6) snap(3) gitignore(2) html(2) css(2)
|                  svg(2) tsx(2) md(2)
|      Conf files: tsconfig.json(2) launch.json(1) dockerfile(1) makefile(1)
|                  package.json(1)
|      Launch Configs: node
|    Folder (shared-fs): 5335 files
|      File types: json(1186) pyc(1178) py(1164) gz(384) txt(41) typed(28)
|                  pyi(14) exe(14) so(9) hash(8)
|      Conf files: settings.json(1) makefile(1)
|    Folder (swagger): 29 files
|      File types: mustache(19) yaml(6) md(1)
|      Conf files:
|    Folder (stress_test): 3904 files
|      File types: py(1501) pyc(1495) txt(53) h(39) so(39) typed(29) exe(14)
|                  pyi(13) cpp(12) hpp(12)
|      Conf files: makefile(4) dockerfile(4)
|    Folder (user_docs): 1216 files
|      File types: png(777) md(182) gif(158) js(6) csv(6) spelling(5) json(5)
|                  css(2) jsonc(1) gitignore(1)
|      Conf files: settings.json(1) package.json(1)
|    Folder (vector-db): 17733 files
|      File types: pyc(6561) py(6451) pyi(257) txt(109) typed(95) proto(86)
|                  so(75) f90(55) c(53) csv(30)
|      Conf files: settings.json(1) makefile(1)
|    Folder (vector_db_init): more than 23075 files
|      File types: py(6960) pyc(6908) pyi(1928) json(525) txt(107) typed(79)
|                  proto(79) so(65) h(31) npy(20)
|      Conf files: dockerfile(1) makefile(1)
|    Folder (vector_db_scrape_and_backup): 19787 files
|      File types: pyc(6306) py(6257) json(1229) gz(393) pyi(251) txt(133)
|                  typed(100) proto(86) so(84) c(50)
|      Conf files: settings.json(1) dockerfile(1) makefile(1)
|    Folder (vector_mgmt_service): more than 22456 files
|      File types: pyc(6975) py(6952) pyi(1924) json(526) txt(111) typed(84)
|                  proto(79) so(62) npy(20) dylib(18)
|      Conf files: dockerfile(1) makefile(1)
|    Folder (web): 3934 files
|      File types: ts(963) js(835) jsx(417) tsx(378) scss(277) svg(203) md(29)
|                  png(29) snap(26) json(20)
|      Conf files: package.json(3) tsconfig.json(3) launch.json(1)
|                  settings.json(1) dockerfile(1) makefile(1)
|                  jsconfig.json(1)
|      Launch Configs: chrome node
|    Folder (worker): more than 22405 files
|      File types: pyc(6031) py(5947) json(1607) pyi(531) gz(398) pxd(187)
|                  so(180) txt(156) h(146) c(77)
|      Conf files: dockerfile(1) makefile(1)
|      Launch Configs: debugpy;
A/B Experiments
vsliv368:30146709
vspor879:30202332
vspor708:30202333
vspor363:30204092
vscod805:30301674
binariesv615:30325510
c4g48928:30535728
azure-dev_surveyone:30548225
a9j8j154:30646983
962ge761:30959799
h48ei257:31000450
pythontbext0:30879054
cppperfnew:31000557
dwnewjupytercf:31046870
pythonrstrctxt:31112756
nativeloc2:31192216
5fd0e150:31155592
dwcopilot:31170013
6074i472:31201624
dwoutputs:31242946
customenabled:31248079
hdaa2157:31222309
copilot_t_ci:31222730
e5gg6876:31282496
pythoneinst12:31285622
bgtreat:31268568
4gafe986:31271826
9gig6300:31307012
31787653:31262186
3e8i5726:31271747
996jf627:31283433
pythonrdcb7:31303018
usemplatestapi:31297334
73175181:31307016
7bj51361:31289155
747dc170:31275177
aj953862:31281341
generatesymbolt:31295002
convertfstringf:31295003
gendocf:31295004

tboddyspargo avatar May 13 '25 22:05 tboddyspargo

We actually do batch mark as viewed in batches of 100.

alexr00 avatar May 28 '25 15:05 alexr00

We actually do batch mark as viewed in batches of 100.

That's great to hear! Thanks for sharing that insight.

I'm clearly struggling to develop a strong understanding of how to reproduce the delays I was observing. Are you able to glean any other insights from the logs I provided?

tboddyspargo avatar May 28 '25 15:05 tboddyspargo