Gruntfuggly / todo-tree

Use ripgrep to find TODO tags and display the results in a tree view
Other
1.42k stars 137 forks source link

VS Code constantly reports "UNRESPONSIVE extension host" #621

Open Mingun opened 2 years ago

Mingun commented 2 years ago

Issue Type: Bug

This events generated constantly, VS Code starts profiling and collect 70 MB files of profiling every ten seconds, consuming space in /tmp.

This is content of Output page of the VS Code:

``` [2022-03-23 13:39:59.740] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:40:01.331] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:40:01.415] [renderer1] [warning] UNRESPONSIVE extension host: 'johnstoncode.svn-scm' took 28% of 1633.209ms, saved PROFILE here: 'file:///tmp/exthost-7a77c4.cpuprofile' [{"id":"belfz.search-crates-io","total":263190,"percentage":16},{"id":"Fr43nk.seito-openfile","total":337598,"percentage":21},{"id":"gc","total":11095,"percentage":1},{"id":"johnstoncode.svn-scm","total":450557,"percentage":28},{"id":"k5hh.pdf","total":305,"percentage":0},{"id":"mtxr.sqltools","total":31555,"percentage":2},{"id":"program","total":6096,"percentage":0},{"id":"redhat.vscode-yaml","total":120,"percentage":0},{"id":"self","total":408273,"percentage":25},{"id":"serayuzgur.crates","total":29914,"percentage":2},{"id":"vscjava.vscode-java-pack","total":47404,"percentage":3},{"id":"vscode.npm","total":45376,"percentage":3},{"id":"wayou.vscode-todo-highlight","total":1605,"percentage":0}] [2022-03-23 13:40:01.522] [renderer1] [error] [Extension Host] (node:237719) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead. (Use `code --trace-deprecation ...` to show where the warning was created) [2022-03-23 13:51:18.667] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:51:20.065] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:51:21.519] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 84% of 1509.513ms, saved PROFILE here: 'file:///tmp/exthost-17b5d3.cpuprofile' [{"id":"2gua.rainbow-brackets","total":7059,"percentage":0},{"id":"aaron-bond.better-comments","total":329,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":308,"percentage":0},{"id":"Fr43nk.seito-openfile","total":153,"percentage":0},{"id":"gc","total":105104,"percentage":7},{"id":"Gruntfuggly.todo-tree","total":1268078,"percentage":84},{"id":"johnstoncode.svn-scm","total":306,"percentage":0},{"id":"mechatroner.rainbow-csv","total":157,"percentage":0},{"id":"mtxr.sqltools","total":304,"percentage":0},{"id":"program","total":479,"percentage":0},{"id":"rust-lang.rust","total":103602,"percentage":7},{"id":"self","total":15434,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":6859,"percentage":0},{"id":"vscode.git","total":317,"percentage":0},{"id":"vscode.merge-conflict","total":479,"percentage":0},{"id":"wayou.vscode-todo-highlight","total":312,"percentage":0}] [2022-03-23 13:51:23.592] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:51:24.751] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:51:26.022] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 91% of 1237.482ms, saved PROFILE here: 'file:///tmp/exthost-ed50fb.cpuprofile' [{"id":"gc","total":61416,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":1128310,"percentage":91},{"id":"program","total":1083,"percentage":0},{"id":"rust-lang.rust","total":10041,"percentage":1},{"id":"self","total":18997,"percentage":2},{"id":"streetsidesoftware.code-spell-checker","total":1321,"percentage":0},{"id":"vscode.git","total":16063,"percentage":1}] [2022-03-23 13:54:11.604] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:54:12.317] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:54:13.195] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 92% of 789.831ms, saved PROFILE here: 'file:///tmp/exthost-3ff007.cpuprofile' [{"id":"2gua.rainbow-brackets","total":4449,"percentage":1},{"id":"aaron-bond.better-comments","total":157,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":157,"percentage":0},{"id":"gc","total":41980,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":725816,"percentage":92},{"id":"johnstoncode.svn-scm","total":158,"percentage":0},{"id":"mtxr.sqltools","total":172,"percentage":0},{"id":"program","total":829,"percentage":0},{"id":"rust-lang.rust","total":1316,"percentage":0},{"id":"self","total":11323,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":2740,"percentage":0},{"id":"vscode.merge-conflict","total":459,"percentage":0}] [2022-03-23 13:54:20.322] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:54:21.101] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:54:22.026] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 95% of 858.651ms, saved PROFILE here: 'file:///tmp/exthost-8145e6.cpuprofile' [{"id":"aaron-bond.better-comments","total":168,"percentage":0},{"id":"gc","total":41531,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":815869,"percentage":95},{"id":"rust-lang.rust","total":341,"percentage":0},{"id":"self","total":320,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":170,"percentage":0}] [2022-03-23 13:54:24.398] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 13:54:25.384] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 13:54:26.519] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 94% of 1080.776ms, saved PROFILE here: 'file:///tmp/exthost-57e993.cpuprofile' [{"id":"gc","total":55786,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":1020154,"percentage":94},{"id":"program","total":452,"percentage":0},{"id":"rust-lang.rust","total":1848,"percentage":0},{"id":"self","total":2078,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":166,"percentage":0},{"id":"vscode.merge-conflict","total":175,"percentage":0}] [2022-03-23 16:52:22.348] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 16:52:25.765] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 16:52:29.500] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 94% of 3508.822ms, saved PROFILE here: 'file:///tmp/exthost-f40ca0.cpuprofile' [{"id":"2gua.rainbow-brackets","total":170,"percentage":0},{"id":"aaron-bond.better-comments","total":154,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":152,"percentage":0},{"id":"gc","total":168175,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":3310986,"percentage":94},{"id":"johnstoncode.svn-scm","total":169,"percentage":0},{"id":"mtxr.sqltools","total":325,"percentage":0},{"id":"rust-lang.rust","total":169,"percentage":0},{"id":"self","total":24413,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":3138,"percentage":0},{"id":"voldemortensen.rainbow-tags","total":153,"percentage":0},{"id":"vscode.emmet","total":154,"percentage":0},{"id":"vscode.git","total":336,"percentage":0},{"id":"wayou.vscode-todo-highlight","total":158,"percentage":0}] [2022-03-23 16:52:31.323] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-23 16:52:34.568] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-23 16:52:37.878] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 96% of 3321.499ms, saved PROFILE here: 'file:///tmp/exthost-467699.cpuprofile' [{"id":"gc","total":118686,"percentage":4},{"id":"Gruntfuggly.todo-tree","total":3201567,"percentage":96},{"id":"program","total":486,"percentage":0},{"id":"self","total":321,"percentage":0},{"id":"vscode.merge-conflict","total":170,"percentage":0}] [2022-03-24 09:44:59.544] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:45:00.380] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 09:45:01.582] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 62% of 1461.663ms, saved PROFILE here: 'file:///tmp/exthost-bd1f3b.cpuprofile' [{"id":"2gua.rainbow-brackets","total":15619,"percentage":1},{"id":"aaron-bond.better-comments","total":2330,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":311,"percentage":0},{"id":"gc","total":95430,"percentage":7},{"id":"Gruntfuggly.todo-tree","total":908378,"percentage":62},{"id":"mtxr.sqltools","total":306,"percentage":0},{"id":"program","total":175,"percentage":0},{"id":"self","total":12967,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":8211,"percentage":1},{"id":"voldemortensen.rainbow-tags","total":245591,"percentage":17},{"id":"vscode.git","total":151880,"percentage":10},{"id":"vscode.merge-conflict","total":459,"percentage":0},{"id":"wayou.vscode-todo-highlight","total":475,"percentage":0}] [2022-03-24 09:45:03.986] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:45:05.402] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 09:45:07.019] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 89% of 1515.936ms, saved PROFILE here: 'file:///tmp/exthost-7c6605.cpuprofile' [{"id":"gc","total":78058,"percentage":5},{"id":"Gruntfuggly.todo-tree","total":1344519,"percentage":89},{"id":"program","total":73615,"percentage":5},{"id":"self","total":17099,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":477,"percentage":0},{"id":"vscode.git","total":1447,"percentage":0},{"id":"vscode.merge-conflict","total":475,"percentage":0}] [2022-03-24 09:45:31.308] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:45:42.776] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 89% of 5145.568ms, saved PROFILE here: 'file:///tmp/exthost-778c07.cpuprofile' [{"id":"2gua.rainbow-brackets","total":24861,"percentage":0},{"id":"aaron-bond.better-comments","total":154,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":155,"percentage":0},{"id":"gc","total":343761,"percentage":7},{"id":"Gruntfuggly.todo-tree","total":4578471,"percentage":89},{"id":"mechatroner.rainbow-csv","total":151,"percentage":0},{"id":"mtxr.sqltools","total":303,"percentage":0},{"id":"program","total":153,"percentage":0},{"id":"redhat.vscode-xml","total":462,"percentage":0},{"id":"redhat.vscode-yaml","total":152,"percentage":0},{"id":"rust-lang.rust","total":133,"percentage":0},{"id":"self","total":5154,"percentage":0},{"id":"serayuzgur.crates","total":307,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":4324,"percentage":0},{"id":"voldemortensen.rainbow-tags","total":186739,"percentage":4},{"id":"vscode.emmet","total":154,"percentage":0}] [2022-03-24 09:47:21.598] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:47:23.435] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 09:47:25.132] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 65% of 2171.053ms, saved PROFILE here: 'file:///tmp/exthost-635c0c.cpuprofile' [{"id":"2gua.rainbow-brackets","total":20797,"percentage":1},{"id":"aaron-bond.better-comments","total":2803,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":150,"percentage":0},{"id":"gc","total":135484,"percentage":6},{"id":"Gruntfuggly.todo-tree","total":1405485,"percentage":65},{"id":"mtxr.sqltools","total":328,"percentage":0},{"id":"program","total":338,"percentage":0},{"id":"redhat.vscode-xml","total":56040,"percentage":3},{"id":"self","total":64535,"percentage":3},{"id":"serayuzgur.crates","total":173,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":36177,"percentage":2},{"id":"voldemortensen.rainbow-tags","total":304333,"percentage":14},{"id":"vscode.git","total":142922,"percentage":7},{"id":"vscode.merge-conflict","total":1252,"percentage":0}] [2022-03-24 09:47:27.080] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:47:38.696] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 93% of 5097.977ms, saved PROFILE here: 'file:///tmp/exthost-d46e31.cpuprofile' [{"id":"gc","total":321246,"percentage":6},{"id":"Gruntfuggly.todo-tree","total":4753598,"percentage":93},{"id":"mtxr.sqltools","total":634,"percentage":0},{"id":"program","total":1411,"percentage":0},{"id":"redhat.vscode-xml","total":154,"percentage":0},{"id":"self","total":18267,"percentage":0},{"id":"serayuzgur.crates","total":139,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":152,"percentage":0},{"id":"vscode.emmet","total":158,"percentage":0},{"id":"vscode.git","total":1513,"percentage":0},{"id":"vscode.merge-conflict","total":459,"percentage":0}] [2022-03-24 09:47:53.816] [renderer1] [info] Setting search error: XHR failed [2022-03-24 09:47:53.892] [renderer1] [info] Setting search error: XHR failed [2022-03-24 09:48:07.323] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:48:08.692] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 09:48:10.462] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 93% of 1490.583ms, saved PROFILE here: 'file:///tmp/exthost-85a484.cpuprofile' [{"id":"gc","total":85297,"percentage":6},{"id":"Gruntfuggly.todo-tree","total":1392691,"percentage":93},{"id":"mtxr.sqltools","total":140,"percentage":0},{"id":"program","total":475,"percentage":0},{"id":"redhat.vscode-xml","total":845,"percentage":0},{"id":"self","total":4476,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":165,"percentage":0},{"id":"vscode.json-language-features","total":6239,"percentage":0}] [2022-03-24 09:48:12.815] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 09:48:15.708] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 09:48:18.143] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 67% of 2997.809ms, saved PROFILE here: 'file:///tmp/exthost-c1b45c.cpuprofile' [{"id":"2gua.rainbow-brackets","total":75606,"percentage":3},{"id":"aaron-bond.better-comments","total":5298,"percentage":0},{"id":"alefragnani.numbered-bookmarks","total":890,"percentage":0},{"id":"gc","total":218089,"percentage":7},{"id":"Gruntfuggly.todo-tree","total":2003347,"percentage":67},{"id":"mtxr.sqltools","total":1287,"percentage":0},{"id":"program","total":125661,"percentage":4},{"id":"redhat.vscode-xml","total":2167,"percentage":0},{"id":"redhat.vscode-yaml","total":171,"percentage":0},{"id":"self","total":24831,"percentage":1},{"id":"streetsidesoftware.code-spell-checker","total":3995,"percentage":0},{"id":"voldemortensen.rainbow-tags","total":535327,"percentage":18},{"id":"vscode.merge-conflict","total":596,"percentage":0},{"id":"wayou.vscode-todo-highlight","total":324,"percentage":0}] [2022-03-24 09:48:19.301] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW ... [2022-03-24 10:39:57.731] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 10:40:01.778] [renderer1] [warning] UNRESPONSIVE extension host: 'Gruntfuggly.todo-tree' took 90% of 3684.081ms, saved PROFILE here: 'file:///tmp/exthost-40611f.cpuprofile' [{"id":"2gua.rainbow-brackets","total":2310,"percentage":0},{"id":"gc","total":368083,"percentage":10},{"id":"Gruntfuggly.todo-tree","total":3301113,"percentage":90},{"id":"mtxr.sqltools","total":481,"percentage":0},{"id":"program","total":4873,"percentage":0},{"id":"rust-lang.rust","total":1824,"percentage":0},{"id":"self","total":4093,"percentage":0},{"id":"streetsidesoftware.code-spell-checker","total":946,"percentage":0},{"id":"wayou.vscode-todo-highlight","total":160,"percentage":0}] [2022-03-24 10:40:02.274] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 10:40:05.521] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 10:40:09.258] [renderer1] [error] Не удается записать файл "/tmp/exthost-f3c8a2.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write): Error: Не удается записать файл "/tmp/exthost-f3c8a2.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write) at v.writeFile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:605:39831) at async n._processCpuProfile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1556:46932) [2022-03-24 10:40:12.273] [renderer1] [warning] {} [2022-03-24 10:40:14.403] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 10:40:24.698] [renderer1] [error] Не удается записать файл "/tmp/exthost-5f42eb.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write): Error: Не удается записать файл "/tmp/exthost-5f42eb.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write) at v.writeFile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:605:39831) at async n._processCpuProfile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1556:46932) [2022-03-24 10:40:29.469] [renderer1] [info] UNRESPONSIVE extension host: starting to profile NOW [2022-03-24 10:40:30.357] [renderer1] [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session [2022-03-24 10:40:31.570] [renderer1] [error] Не удается записать файл "/tmp/exthost-b19d03.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write): Error: Не удается записать файл "/tmp/exthost-b19d03.cpuprofile" (Unknown (FileSystemError): Error: ENOSPC: no space left on device, write) at v.writeFile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:605:39831) at async n._processCpuProfile (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1556:46932) ```

Attach the first two files from that log: exthost.zip

Extension version: 0.0.215 VS Code version: Code 1.65.2 (c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1, 2022-03-10T15:36:26.048Z) OS version: Linux x64 5.4.0-105-generic Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz (8 x 3706)| |GPU Status|2d_canvas: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
opengl: enabled_on
rasterization: disabled_software
skia_renderer: enabled_on
video_decode: disabled_software
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|3, 3, 3| |Memory (System)|31.05GB (0.26GB free)| |Process Argv|--unity-launch --crash-reporter-id 9971e083-5d53-4fa6-9ebd-ad3924f8b78d| |Screen Reader|no| |VM|0%| |DESKTOP_SESSION|ubuntu| |XDG_CURRENT_DESKTOP|Unity| |XDG_SESSION_DESKTOP|ubuntu| |XDG_SESSION_TYPE|x11|
Gruntfuggly commented 2 years ago

Can you post your todo-tree settings?

In particular, is todo-tree.general.enableFileWatcher enabled?

Mingun commented 2 years ago

I use default settings and todo-tree.general.enableFileWatcher is not enabled

Gruntfuggly commented 2 years ago

Can you enabled todo-tree.general.debug and the open the debug channel in the Output window (View->Output and then select Todo Tree). Can you see what is in there?

Also, is there anything unusual about your workspace?

ooliver1 commented 1 year ago

I'm having a similar issue on any workspace (no file watcher, issue goes away with tree disabled), the debug channel has no output.

Gruntfuggly commented 1 year ago

Can you post your todo-tree settings (i.e. copy them from the json settings). The debug channel should show the command that is being sent to ripgrep - if that's not even being displayed then there is something very wrong happening. Can you also check if there is anything in the developer console (Help->Toggle Developer Tools)

sim642 commented 1 year ago

I have a similar issue on v0.0.220, but instead of just consuming /tmp space, it also makes VSCode completely unusable (https://github.com/microsoft/vscode/issues/167320). Here's a cpuprofile that precisely shows where in todo-tree it spends 4 seconds, freezing everything else: exthost-91a0b1.cpuprofile.txt.

Mingun commented 1 year ago

Can you enabled todo-tree.general.debug and the open the debug channel in the Output window (View->Output and then select Todo Tree). Can you see what is in there?

No, after intial piece of logged data nothing logged in that channel.

My workspace is nothing unusual, but it contains a git repository with a lot of XML files with the overall size about 32 GB (about 23 GB is a .git folder).

There a lot of similar entries in the Window ("Окно" in my Russian VSCode) Log:

...
2023-02-01 16:17:01.974 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:17:14.768 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 83.339800817482% of 4168.611ms, saved PROFILE here: 'file:///tmp/exthost-4eb682.cpuprofile'
2023-02-01 16:17:28.115 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:17:41.863 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 83.58967900064674% of 4181.185ms, saved PROFILE here: 'file:///tmp/exthost-7d6a2e.cpuprofile'
2023-02-01 16:17:53.222 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:18:06.006 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 82.3743163182767% of 4120.332ms, saved PROFILE here: 'file:///tmp/exthost-5eb726.cpuprofile'
2023-02-01 16:19:46.338 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:19:59.519 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 82.8383527115278% of 4143.586ms, saved PROFILE here: 'file:///tmp/exthost-2e36c6.cpuprofile'
2023-02-01 16:23:16.498 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:23:19.298 [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session
2023-02-01 16:23:23.301 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 77.00753405389504% of 2157.095ms, saved PROFILE here: 'file:///tmp/exthost-bc0379.cpuprofile'
2023-02-01 16:25:45.442 [info] UNRESPONSIVE extension host: starting to profile NOW
2023-02-01 16:25:46.327 [info] UNRESPONSIVE extension host: received responsive event and cancelling profiling session
2023-02-01 16:25:47.087 [warning] UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' took 52.06527909283683% of 461.352ms, saved PROFILE here: 'file:///tmp/exthost-f8714a.cpuprofile'

The last 2 profiles from that log: exthost-todo-tree-logs.zip

The last lines in Todo Tree output in View->Output (note that timings from yesterday, so it didn't log anything for more than a day):

...
13:35:18.700 Found 2351 items
13:35:18.700 Applying globs to 2351 items...
13:35:18.766 Remaining items: 2351
Gruntfuggly commented 1 year ago

OK, so that's found nearly 2500 Todo's - is that what you would expect with your codebase? And you definitely haven't changed any of the default settings?

Can you scroll back in the output window and find the command it generated for the search? It should start with the path to ripgrep. The line before that should also show the pattern which it is searching for which would be good to see.

Gruntfuggly commented 1 year ago

Would you be prepared to try out some debug versions of the extension for me? Because the extension is minified the cpu logs are very difficult to get much out of - if I post a .vsix package that should make it easier to pinpoint where the blockage is.

Mingun commented 1 year ago

OK, so that's found nearly 2500 Todo's - is that what you would expect with your codebase?

Yes, that seems the case, although I do not need most of them. Probably, in my case the solution could be just ignore some folders.

And you definitely haven't changed any of the default settings?

Yes, the default settings except todo-tree.general.debug: true.

Can you scroll back in the output window and find the command it generated for the search?

All "Pattern" lines shows the same regexp, all "Command" lines different only by the name of the -f argument and the directory to find. The one of occurrences:

...
13:35:14.124 Searching /home/mingun/Projects/ksc-rs...
13:35:14.124 Writing pattern file:/home/mingun/.config/Code/User/workspaceStorage/34a1d0922531e34b34bc5aed6b6f6fb1/Gruntfuggly.todo-tree/2b8g2hcrfd.txt
13:35:14.124 Pattern:(//|#|<!--|;|/\*|^|^[ \t]*(-|\d+.))\s*(\[x\]|\[ \]|XXX|TODO|HACK|FIXME|BUG)
13:35:14.124 Command: /usr/share/code/resources/app/node_modules.asar.unpacked/@vscode/ripgrep/bin/rg --no-messages --vimgrep -H --column --line-number --color never --max-columns=1000 --no-config  -f "/home/mingun/.config/Code/User/workspaceStorage/34a1d0922531e34b34bc5aed6b6f6fb1/Gruntfuggly.todo-tree/2b8g2hcrfd.txt" -g "!**/node_modules/*/**" "/home/mingun/Projects/ksc-rs"
13:35:14.597 Search results:
/home/mingun/Projects/ksc-rs/src/error.rs:15:35:  Expression(ParseError<LineCol>),//TODO: Add information about field

13:35:14.768 Search results:
...("Search results" group repeated several times...)
13:35:18.686  Match (File): {"fsPath":"/home/mingun/Projects/ksc-rs/src/error.rs","line":15,"column":35,"match":"  Expression(ParseError<LineCol>),//TODO: Add information about field","uri":{"$mid":1,"path":"/home/mingun/Projects/ksc-rs/src/error.rs","scheme":"file"}}
13:35:18.686  Match (File): {"fsPath":"/home/mingun/Projects/ksc-rs/formats/font/ttf.ksy","line":141,"column":15,"match":"              # TODO","uri":{"$mid":1,"path":"/home/mingun/Projects/ksc-rs/formats/font/ttf.ksy","scheme":"file"}}
...(repeated "Match (File)" lines)...
13:35:18.700 Found 2351 items
13:35:18.700 Applying globs to 2351 items...
13:35:18.766 Remaining items: 2351

The log started at [2023-01-31] 13:28:04.447 and end at 13:35:18.766. That is strange that nothing logged after this time, I have a feeling that logging in that channel just stop working.

Would you be prepared to try out some debug versions of the extension for me?

Yes, I can do that.

Gruntfuggly commented 1 year ago

OK thanks - I'll put together a debug version with some options and post it here.

I think the issue is simply the amount of items it is finding - and currently it builds a list of everything first then removes things you're not interested in - which is not the most efficient way to doing things!

In the short term, you can define todo-tree.filtering.includeGlobs to limit the search to only folders you're interested in, which should help.

SuzukaDev commented 1 year ago

I'm also having this exact issue. It says Todo-Tree is continuously taking more than 2 seconds (every 5 seconds or so, sometimes, freezing the editor more like 40 seconds sometimes and making the editor unusable). To the point I had to disable it because it was being impossible to work.

I append that .cpuprofile file: exthost-7b45eb.cpuprofile.txt

Also, I created a debug channel, and nothing weird (IMHO):

...
16:21:05.993 Found 328 items
16:21:05.993 Applying globs to 328 items...
16:21:06.006 Remaining items: 328

(I think is not a crazy number or anything, and my workspace is not so big)

Todo-tree Is my fav and most useful extension without a doubt (thank you so much for it 🍀), so it hurts me so much not being able to use it. I really hope this gets fixed 🙏

SuzukaDev commented 1 year ago

Not a solution (the UNRESPONSIVE extension host: 'gruntfuggly.todo-tree' and freezes still happening), but disabling the highlights reduced their frequency. Edit: Well, not so much, still freezing a lot

This seems a very weird rendering issue (I got those messages on renderer.log). I guess that despite disabling the highlights those message must be when rendering the tree or something.