microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
162.33k stars 28.59k forks source link

Insiders VSCode on Node 16.10 breaks pipeline streams #144962

Closed JustinGrote closed 2 years ago

JustinGrote commented 2 years ago

Issue Type: Bug

My Pester Tests extension uses this API. The latest insiders which switched to NodeJS 16.x broke my extension. Here is the relevant issue that is fixed in later versions, if possible to bump vscode to a newer vscode 16.x version https://github.com/nodejs/node/issues/40191

// Workaround https://github.com/nodejs/node/issues/40191 // todo: remove it when fix is released in 16.x and in AppEngine 16.x if (process.version > 'v16.13') { const { pipeline } = require('stream/promises') _pipeline = ((streams: AnyStream[]) => pipeline(...streams)) as any }

VS Code version: Code - Insiders 1.66.0-insider (6b7453421201c888b81eae5c04ec822a6423608f, 2022-03-11T05:17:19.559Z) OS version: Windows_NT x64 10.0.22000 Restricted Mode: No

System Info |Item|Value| |---|---| |CPUs|AMD Ryzen 7 4700U with Radeon Graphics (8 x 1996)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: enabled
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_renderer: enabled_on
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|15.36GB (2.59GB free)| |Process Argv|--crash-reporter-id 4453efaa-0821-4555-88e2-3de8bad9109e| |Screen Reader|no| |VM|0%|
Extensions (40) Extension|Author (truncated)|Version ---|---|--- vscode-color|ans|0.4.5 vscode-opennewinstance|chr|0.0.12 esbuild-problem-matchers|con|0.0.2 vscode-github-actions|csc|0.22.0 vscode-eslint|dba|2.2.2 vscode-generate-getter-setter|DSK|0.5.0 gitlens|eam|12.0.4 filter-lines|ear|1.0.0 EditorConfig|Edi|0.16.4 prettier-vscode|esb|9.3.0 lintlens|ghm|3.0.2 copilot-nightly|Git|1.7.5297 remotehub|Git|0.26.0 vscode-pull-request-github|Git|0.38.1 todo-tree|Gru|0.0.215 vscode-drawio|hed|1.6.4 change-case|hjd|1.0.2 vscode-peacock|joh|4.0.0 git-graph|mhu|1.30.0 vscode-html-format|moh|0.0.4 vscode-docker|ms-|1.20.0 csharp|ms-|1.24.1 remote-containers|ms-|0.226.0 remote-ssh|ms-|0.77.2022031115 remote-ssh-edit|ms-|0.77.2022031115 js-debug-nightly|ms-|2022.3.717 powershell-preview|ms-|2022.3.0 indent-rainbow|ode|8.2.2 docthis|oou|0.8.2 vscode-jest|Ort|4.2.1 pester-test|psp|2022.2.0 vscode-commons|red|0.0.6 vscode-yaml|red|1.5.1 vscode-sort-json|ric|1.20.0 vscode-inline-values-powershell|Tyl|0.0.5 errorlens|use|3.4.2 vscode-icons|vsc|11.10.0 codetour|vsl|0.0.58 gitmoji-vscode|Vtr|1.0.9 better-align|wwm|1.1.6
A/B Experiments ``` vsliv695:30137379 vsins829:30139715 vsliv368cf:30146710 vsreu685:30147344 python383:30185418 vspor879:30202332 vspor708:30202333 vspor363:30204092 pythonvspyl392:30422396 pythontb:30258533 pythonptprofiler:30281269 vshan820:30294714 pythondataviewer:30285072 vscod805:30301674 pythonvspyt200:30323110 bridge0708:30335490 bridge0723:30353136 vsaa593:30376534 pythonvs932:30404738 wslgetstarted:30449409 vsclayoutctrc:30405799 dsvsc009:30440021 pythonvsnew555:30438690 vscscmwlcmt:30428973 vscgsvid2:30433758 dockersurvey3:30438168 pynewfile477:30451556 ```
yume-chan commented 2 years ago

It's fixed in Node.js 16.13.1

[36d3b123a0] - stream: support array of streams in promises pipeline (Mestery) https://github.com/nodejs/node/pull/40193

_https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V16.md#2021-12-01-version-16131-gallium-lts-bethgriggs_

It will require Electron 18

Updated Node.js to v16.13.2. #32418

https://www.electronjs.org/releases/alpha#18.0.0-alpha.1

It will take a long time before Electron 18 hit stable and Code upgrade to it. So maybe you should try the workaround.

JustinGrote commented 2 years ago

Another workaround is to use the generic pipeline method overload rather than the array-based one.