mirror of
https://github.com/microsoft/terminal.git
synced 2026-02-03 21:25:34 +00:00
ClosePseudoConsole API hanging #2535
Closed
opened 2026-01-30 22:57:37 +00:00 by claunia
·
58 comments
No Branch/Tag Specified
main
dev/cazamor/bugfix/window-root-memory-leak
dev/lhecker/11509-kitty-keyboard-protocol-wip
automated/loc-update
feature/llm
dev/pabhoj/actions_editor_visual
dev/cazamor/selfhost/2026-01-29
dev/lhecker/11509-kitty-keyboard-protocol
dev/cazamor/sui/search
dev/duhowett/no-blank-issues-you-lost-privileges-for-that-fam
dev/lhecker/benchcat-fix
dev/lhecker/dcs-perf
dev/duhowett/eoy-25/allow-set-foreground
release-1.24
release-1.23
dev/cazamor/bot/deprecate-area-atlasengine
dev/pabhoj/actions_editor_followups
dev/cazamor/selfhost/2026-01-20
dev/cazamor/selfhost/2026-01-12
dev/cazamor/spec/auto-save
dev/duhowett/eoy-25/underline-colors-in-atlas-bug-redux
dev/duhowett/fhl-2024/asciicast-recorder
dev/duhowett/eoy-25/underline-colors-in-atlas-bug
dev/duhowett/hax/serial-port-support
dev/duhowett/connection-utf8
dev/lhecker/fused-event
dev/lhecker/18928-wip
dev/duhowett/fhl-2024/clang
dev/cazamor/uia-leak
dev/duhowett/win7-wpf-termcontrol-squash
release-1.22
dev/cazamor/selfhost/11-18-v3
dev/cazamor/selfhost/11-18
dev/duhowett/fhl-2025/bitmap-fonts
dev/duhowett/server-2025-vms
dev/duhowett/cant-believe-gotta-do-this-shit
dev/lhecker/1410-large-scrollback
dev/lhecker/dark-mode
dev/cazamor/sui/invert-cursor-color
dev/duhowett/fhl-2025/wt-command-palette-cmdpal-integration
dev/duhowett/fhl-2025/wt-json-relative-icons
dev/lhecker/fucking-service-locator
dev/duhowett/unicode-17
dev/duhowett/multi-blern
dev/lhecker/wellp2-alt
dev/duhowett/wellp2
dev/lhecker/1860-horizontal-scrollbar
dev/lhecker/fix-window-count
dev/cazamor/sui/tab-color-old
dev/duhowett/hax/conhost-icon
dev/duhowett/hax/sui-color-chip-border
dev/duhowett/hax/terminalsettings-as-a-lib-/with-types-merged-into-tsm
dev/pabhoj/page_control_input_cleanup
dev/duhowett/padding-in-atlas-rebase-20250729
dev/lhecker/attach-thread-input
dev/duhowett/portable-shader-members
msbuildcache-reenable
dev/cazamor/selfhost/1.24-2025-06-10
dev/cazamor/upgrade-settings-containers
dev/cazamor/sui/ext-page/powershell-stub
dev/cazamor/selfhost/1.24-2025-05-15
dev/pabhoj/sui_action_overhaul
dev/cazamor/selfhost/1.24-2025-05-06
dev/cazamor/selfhost/1.24-2025-04-29
dev/cazamor/sui/ext-page/lazy-load-objects
dev/cazamor/sui/ext-page/badge
dev/cazamor/selfhost/1.24
dev/lhecker/sdk-26100
dev/duhowett/testing
dev/jadelaga/VS-Pty.Net-1.22
dev/duhowett/fhl-2025/what-if-no-content-ids
dev/cazamor/a11y/vt-seq-prototype
dev/lhecker/18584-part2
dev/lhecker/get-lang-id
dev/duhowett/hax/clogs
release-1.21
dev/pabhoj/featurellm_fix_paste
dev/lhecker/grapheme-backup
dev/jadelaga/VS-Pty.netFixes
dev/lhecker/atlas-engine-compute-shader
dev/migrie/s/ai-providers
dev/lhecker/animated-cursor-wip
dev/pabhoj/featurellm_timeout
dev/lhecker/dark-mode-alt
dev/duhowett/osc-strided-table
dev/lhecker/bugbash
dev/pabhoj/featurellm_improve_parsing
dev/duhowett/coast-to-coast
dev/lhecker/curly-improvements
dev/duhowett/net8
dev/duhowett/onebranch-custom-pool
dev/lhecker/renderer-overhaul-2nd-attempt
dev/lhecker/cleanup
dev/cazamor/sui/confirmation-announcements
dev/lhecker/theme-quality
dev/duhowett/hax/cmake
dev/lhecker/winconpty-cleanup
dev/duhowett/learn/rewrite-highlights
dev/migrie/b/no-nesting-when-searching
release-1.20
dev/lhecker/14165-conhost-font-size
dev/duhowett/sel-2-spans
dev/lhecker/7118-cursor-color
dev/lhecker/remove-glyph-width
dev/lhecker/igfw-scroll-region
dev/lhecker/17656-win32im-double-encoding
dev/duhowett/fhl-2024/merge-idls
dev/duhowett/feed-forward-variables
dev/lhecker/remove-chrome-math
dev/duhowett/copylink
dev/duhowett/applicableactions
gh-readonly-queue/main/pr-17566-de50310295b7d92ed3d51f07974a2a945776bf9d
dev/lhecker/atlas-engine-stride-copy
dev/migrie/b/bump-nuget-in-c
dev/migrie/f/992-redux-redux
dev/migrie/f/filter-weight-input-too
dev/migrie/f/disable-nesting
dev/migrie/f/local-snippets-cleaner
dev/migrie/s/1553-mouse-bindings
selfhost-1.22-bugbash-2024-06-04
selfhost/1.22-bugbash-2024-06-04
dev/lhecker/15689-tab-drag-crash-fix
dev/migrie/f/sxnui-font-size-change
dev/migrie/f/local-snippets-on-action-refactor
dev/migrie/f/just-local-snippets
dev/migrie/save-input-patches
dev/migrie/f/md-pane-official
dev/migrie/base-pane
dev/migrie/fhl/tasks-pane
release-1.19
dev/migrie/b/17130-clear-marks-2
dev/migrie/b/17075-its-me-the-killer
dev/duhowett/i-figured-out-why-sometimes-the-publish-build-failed
dev/duhowett/nuget-publication-with-aad-app-id
selfhost-1.20
dev/duhowett/graph
dev/migrie/b/15803-activate-dont-copypasta
dev/duhowett/is-pgo-broken-because-of-sui-being-slower
dev/migrie/b/remove-terminaltab
dev/migrie/fhl/md-pane
dev/migrie/fhl/local-tasks-2024
dev/migrie/fhl/2024-inline-notebook
dev/duhowett/interface-projects
dev/duhowett/dead-loc
release-1.18
dev/migrie/fhl/2024-spring-merge-base
dev/duhowett/hax/l9
inbox
dev/migrie/14073-on-main
dev/duhowett/hax/conhost_dump_replay
user/lhecker/atlas-engine-srgb
dev/migrie/fhl/sxnui-tooltips-3
dev/migrie/7718-notifications-experiments
dev/migrie/fhl/7718-notifications
dev/migrie/fhl/7718-notifications-reboot
dev/lhecker/remove-gsl
dev/lhecker/16575-TerminateProcess
dev/lhecker/window-thread-climate-control
dev/lhecker/client-context-input-output-mode
dev/lhecker/ring-buffer-input-buffer
release-1.17
dev/lhecker/propsheet-fontdlg-refactor
dev/lhecker/renderer-overhaul
dev/pabhoj/test
dev/duhowett/chop
dev/lhecker/til-ulong-cleanup
dev/lhecker/til-env-cleanup
dev/migrie/f/16005-a11y-pane
dev/cazamor/a11y/fastpass
dev/migrie/b/15487-push-cwd
dev/migrie/b/15536-or-15219-idk
dev/duhowett/move-timers-down-into-core-interactivity-etc
dev/migrie/b/15812-broadcast-paste-two
dev/migrie/fhl-fall-2023/11162-quake-III-arena
dev/migrie/fhl-fall-2023/1620-automatic-tab-progress
dev/migrie/fhl-fall-2023/9992-quake-II
dev/migrie/fhl-fall-2023/9992-default-quake-settings
dev/migrie/fhl-fall-2023/9992-window-name-settings
dev/migrie/fhl-fall-2023/oceans
dev/lhecker/ColorScheme-improvements
dev/migrie/search-v2-v3
dev/migrie/pr-15717/its-dangerous-to-go-alone
dev/migrie/f/4768-taskbar-icons
dev/duhowett/padding-in-atlas
dev/migrie/f/3121-tooltips
dev/duhowett/sticky-control
dev/duhowett/fix-tracing-2
dev/migrie/b/add-support-for-vsc-marks
dev/migrie/f/1860-this-is-literally-what-less-is-for
dev/migrie/s/5916-draft
dev/lhecker/tracy
dev/migrie/s/north-star
dev/cazamor/tag-youre-it
dev/migrie/f/12336-let-it-mellow
dev/migrie/f/now-with-more-compat-settings
dev/migrie/f/compatibility-sui
dev/duhowett/hax/wpf-atlas
dev/duhowett/fgb
dev/migrie/b/15487-relative-paths-are-hard
dev/lhecker/colrv1
loc-update
dev/migrie/fhl/dyndep-csharp
dev/migrie/fhl/dyndep
dev/migrie/fhl-clickable-send-input
dev/migrie/f/cwd-hijinks-5506-15173
dev/lhecker/openconsole-async-start
1.17
dev/migrie/bump-scratch
dev/migrie/f/3726-restartConnection
dev/migrie/b/cxn-restarting-attempt-1-backport
dev/migrie/b/9053-part-3-the-actual-doing-of-the-thing
dev/migrie/b/13388-focus-logger
dev/migrie/b/9053-part-4-i-guess-defterm
dev/migrie/oop/3/of-the-silmarils
of-the-darkening-of-valinor
dev/migrie/fhl/notebook-proto-000
dev/migrie/f/narrator-buddy
dev/migrie/mux-2.8.2-march-2023
dev/migrie/f/roast-mutton
dev/migrie/f/12861-preview-input
dev/lhecker/clang-tidy
dev/migrie/f/3121-wE-dOnT-hAvE-dEv-DaYs
dev/duhowett/compiler-compliance
dev/duhowett/i-have-a-burning-hatred-for-ntstatus-of-later-so-why-not-fix-it
dev/duhowett/shorthand-namespaces
dev/duhowett/rename-all-dlls
dev/duhowett/errordialog
dev/lhecker/gsl-narrow
dev/migrie/b/11522-dumb-idea
release-1.16
dev/miniksa/env
dev/duhowett/hax/embed-everything
dev/migrie/b/13388-attempt-003
dev/migrie/b/14512-test-research
dev/migrie/b/13388-attempt-002
dev/migrie/b/14464-copyOnSelect-moving-text
dev/migrie/s/thema-schema-for-1.16
dev/migrie/s/theme-pair-schema
dev/migrie/b/13388-experiments-1
dev/cazamor/spec/a11y-vt-seq
dev/migrie/b/14557-empty-folder-dropdown
dev/cazamor/spec/a11y-vt-seq-v2
release-1.15
dev/migrie/f/process-model-v3-test-0
dev/lhecker/vsconfig
dev/migrie/s/5000-presentation
dev/lhecker/5907-startup-perf
dev/lhecker/winrt-file-api-benchmark
dev/duhowett/128-bit-compiler
dev/duhowett/hax/arm64-native-build
dev/migrie/fhl/more-shell-integration
dev/migrie/b/13388-experiments-0
dev/lhecker/til-to-ulong-improvements
dev/migrie/s/markdown-notebooks
dev/cazamor/a11y/nav-by-page
dev/cazamor/a11y/system-menu-support
dev/duhowett/no-private-registry-keys
dev/cazamor/wpf/uia-expose-enable-events
dev/cazamor/wpf/uia-events
extendAISpec
dev/migrie/fhl/clickSendInput
dev/migrie/fhl/save-command
dev/migrie/b/theme.profile
dev/migrie/b/13943-a-test-for-this
dev/migrie/oop/2/endgame
dev/duhowett/hax/merge_idl
dev/migrie/oop/2/infinity-war
dev/migrie/spellbot-cve
dev/cazamor/a11y-sev3/new-profile-announcement
dev/migrie/fhl/upside-down-mode
release-1.14
dev/migrie/f/9458-startupInfoToTerminal
dev/migrie/fhl/5916-triggers
dev/migrie/b/13523-context-menu
dev/migrie/b/6523-endpaint-outside-lock
dev/migrie/b/12413-OnUnhandledException
dev/lhecker/render-snapshot
dev/cazamor/1.15/scroll-to-point
dev/migrie/mux-2.8-aug-2022
dev/lhecker/lock-console-guard
dev/migrie/f/1504-final
dev/pabhoj/sui_follow_ups
dev/migrie/f/til-winrt.h
dev/cazamor/color-picker-redesign
dev/migrie/fhl/vscode-autocomplete-prototype
dev/migrie/f/1504-prototype
dev/migrie/oop/2/loki
dev/migrie/oop/2/wandavision
dev/migrie/b/8698-YOURE-OUT-OF-ORDER
fabricbot-configuration-migration
dev/migrie/b/12788-did-it-work
dev/migrie/b/localtests-ci-2022
dev/cazamor/1.14/replace-compareInBounds
dev/pabhoj/preview_string
dev/cazamor/ks/switchSelectionEndpoint
dev/migrie/oop/2/COM-ISwapChainProvider-attempt-1
dev/migrie/b/dxd-marker
release-1.13
dev/migrie/b/13066-for-defterm
dev/cazamor/revert-dwm
dev/migrie/b/13066-sw_flash_repeatedly
dev/migrie/b/no-cloaky-cloak
dev/migrie/f/apples-to-oranges
dev/migrie/f/no-custom-caption-btns
dev/migrie/f/10509-mica-and-transparent-titlebars
dev/migrie/b/12911-wpf-focus-fg
dev/migrie/titebar-colors
dev/lhecker/4015-cursor
dev/migrie/fhl/rgb-rainbow-window-frame
dev/migrie/fhl/scroll-marks-prototype
release-1.12
dev/miniksa/compliance
dev/migrie/f/default-icons
dev/migrie/fhl/10175-web-search-for-text
dev/migrie/fhl/menu-complete-prototype
dev/migrie/b/2988-merged-prototypes
dev/migrie/b/2988-niksa-msgs-prototype
dev/migrie/fhl/9583-colorSelection
dev/migrie/b/10609-sui-leak
dev/migrie/b/32-attempt-3
dev/migrie/release-1.12-rejuv-attempt-2
dev/migrie/demo-for-presentation
dev/migrie/b/32-but-im-here-for-12567
dev/duhowett/conpty_first_frame_blug
dev/migrie/b/11092-unfocused-acrylic-settings
dev/migrie/localtests-in-ci
dev/migrie/b/12356-attempt-2
dev/migrie/b/12353-with-null
dev/migrie/b/12387-trim-spaces
dev/migrie/b/5033-bad-start
dev/lhecker/12351-broken-locales
dev/migrie/b/8663-input-to-oem-crash
dev/migrie/b/11743-win10-opacity-is-hard
dev/migrie/f/ctrl-click-elevate
dev/migrie/b/12196-shim-localization
dev/lhecker/issue-4015-til-rect
dev/cazamor/eim/mvvm
dev/migrie/f/--elevate
dev/migrie/b/11668-i-think
dev/migrie/b/11994-wsl-mangline
dev/migrie/eim/3475-action-xmacros
dev/migrie/eim/incremental-build-000
dev/cazamor/a11y/fake-uia-data
dev/migrie/f/non-terminal-content-elevation-warning
dev/migrie/f/632-on-warning-dialog
dev/lhecker/rgba
dev/migrie/b/8480-keybindings-in-tabs
release-1.11
dev/migrie/b/11561-dead-ends
dev/migrie/oct-21-roadmap-update
dev/migrie/fhl/adaptive-card-extension
dev/cazamor/test/11440
dev/migrie/f/warning-dlg-automation
dev/migrie/b/1.12-crash-on-exit
dev/migrie/b/11146-next-tab-in-cmdpal
release-1.10
dev/migrie/5ff9a24-and-75e2b5f
dev/duhowtt/hax/cpal-jumplist-async
dev/lelian/actionid/1
dev/migrie/f/just-elevated-state
dev/lhecker/terminal-settings-cleanup
dev/migrie/gh-10824
dev/pabhoj/cursor_light
dev/migrie/oop/wandavision
dev/migrie/oop/endgame
dev/migrie/oop/infinity-war
dev/lhecker/app-state-actually-hidden
dev/migrie/b/6160-dynamic-default-warning
dev/mgirie/b/more-nchhittest-ideas
dev/migrie/b/9320-interfacial-separation
cinnamon/fhl/find-contextmenu
dev/lhecker/wsl-distro-generator-cleanup
dev/migrie/b/10875-but-more-clever
dev/migrie/b/broken-globalsummon-overloading
dev/duhowett/hax/rle-row
dev/migrie/fhl-2021/cmdpal-select-list
dev/migrie/fhl-2021/differential-pixel-shading
dev/duhowett/hax/no-writable-glyphat
dev/migrie/fhl-2021/more-shader-variables
dev/migrie/titlebar-shenannigans
dev/miniksa/win10_font_matching
dev/lhecker/conhost-oom
dev/migrie/b/10332-less-snappy-scrolling
dev/migrie/b/7422-1px-top-border
release-1.9
dev/cazamor/move-scratch
release-1.8
dev/miniksa/manifest_2
release-1.6
release-1.7
dev/migrie/oop/the-whole-thing
dev/migrie/oop/connection-factory
dev/migrie/f/quake-dropdown-2
dev/miniksa/rle2
dev/migrie/f/quake-toCurrent-experiments-2
dev/migrie/f/quake-toCurrent-experiments
dev/migrie/f/quake-dropdown
dev/cazamor/actions-page/template
dev/duhowett/hax/cursor_stamp_foreground_background
dev/migrie/f/1860-hey-might-was-well-hack-during-a-hackathon
dev/migrie/oop-terminal.control-split-control
dev/duhowett/hax/build-with-wholearchive
dev/cazamor/spec/tsm-actions-temp
dev/migrie/oop-tear-apart-control
dev/migrie/oop-scratch-3
dev/cazamor/sui/bugfix-reload-crash
dev/migrie/f/xmacro
dev/cazamor/sui/proto/profile-nav-view
dev/migrie/f/name-windows
dev/migrie/dol/messing-with-shaders-take-1
release-1.5
dev/cazamor/sui/inheritance-hyperlinks-test
dev/migrie/r/commandline-lib-002
dev/migrie/f/com.fabrikam.toaster
dev/cazamor/adaptive-cards-prototype
dev/migrie/f/commandline-lib
dev/miniksa/zipzoom2
dev/migrie/f/remote-commandlines
dev/migrie/f/632-elevated-profiles
dev/migrie/oop-broker-000
dev/migrie/fix-pr-7015
dev/duhowett/clang
dev/miniksa/input_tests_2
dev/miniksa/input2
dev/migrie/oop-rpc-000
release-1.4
dev/migrie/oop-mixed-elevation-1
dev/migrie/oop-window-content-1
cinnamon/open-json
dev/miniksa/input_tests
dev/duhowett/hax/tsm-graphviz
dev/miniksa/input
dev/duhowett/hax/caption_buttons
release-1.3
dev/cazamor/a11y/expand-line-under-viewport
dev/cazamor/acc/ch/word-nav-perf
dev/cazamor/spec/settings-ui-architecture-draft
dev/duhowett/hax/tap_upgrade
dev/migrie/f/pane-exit-animation
release-1.2
dev/migrie/move-lib-up-and-dll-down
release-1.1
dev/migrie/f/branch-2-backup
dev/migrie/f/settings-getters-only
dev/duhowett/hax/command_palette_search
dev/migrie/f/6856-let-terminalpage-expandcommands
dev/migrie/f/theming-2020
dev/migrie/oop-scratch-4
dev/duhowett/hax/punchout
dev/migrie/s/action-ids
dev/migrie/f/lets-just-generate-these
dev/migrie/oop-scratch-2
dev/miniksa/dcomp
dev/miniksa/gotta_go_fast_spsc
dev/miniksa/gotta_go_fast
dev/miniksa/perf_skip_checks
dev/miniksa/perf_buffer_dig
dev/migrie/s/1203-cursorTextColor
dev/migrie/f/fix-intellisense-i-guess-backup
release-1.0
dev/migrie/f/execute-commandlines
dev/migrie/f/2046-Command-Palette-v2
dev/migrie/b/6421-passthrough-alt
dev/migrie/b/moving-focus-is-hard
dev/miniksa/set
dev/migrie/f/1203-phase-1
dev/migrie/f/get-localtests-in-ci
dev/cazamor/drag-panes
dev/cazamor/tile-background
release-0.11
dev/duhowett/dev/duhowett/hax/appstate_remember
dev/duhowett/load_condrv
dev/duhowett/hax/wpf_win_8_hax
dev/migrie/b/3088-weird-exact-wrap-resize
release-0.10
dev/migrie/b/4591-custom-scaling-bug
dev/duhowett/hax/attr_smuggling
dev/migrie/b/5161-mingw-vim-fix
dev/miniksa/dx_bitmap
dev/migrie/b/1503-try-messing-with-cooked-read
dev/duhowett/eyebeam
dev/migrie/b/5113-experiments
dev/duhowett/hax-selection-exclusive
dev/migrie/f/more-vt-renderer-tracing
dev/miniksa/bitmap
dev/duhowett/wprp
dev/miniksa/bitmap-mad-with-power
dev/migrie/f/resize-quirk
dev/migrie/f/reflow-buffer-on-resize-002
wpf-renderer-revert
dev/miniksa/draw
release-0.9
dev/miniksa/tabs-color-fix
dev/miniksa/4309
dev/migrie/f/just-wrapping
dev/migrie/b/3490-try-another-resize-algo
release-0.8
dev/migrie/b/3490-a-simpler-resize
dev/migrie/b/3490-resize-down
dev/miniksa/4254
dev/migrie/f/conpty-wrapped-lines-2
dev/migrie/b/be-better-at-hiding
dev/migrie/f/3327-xaml-theming-proto
dev/miniksa/gardening2
release-0.7
dev/duhowett/conpty-flags
dev/migrie/f/603-vintage-opacity
dev/migrie/PR#3181-comments
dev/duhowett/font-64
release-0.5
dev/migrie/b/663-paste-lf-always
dev/migrie/b/2011-reordered-fallthrough-strings
dev/migrie/b/411-init-tab-stops
dev/migrie/b/json-patching-is-hard
dev/migrie/b/2455-try-getting-tests-working
dev/migrie/b/1223-change-256-table
dev/migrie/f/2171-openterm.cmd
dev/migrie/f/drag-panes
dev/migrie/f/2046-command-palette
release-0.3
dev/miniksa/manager
dev/migrie/f/non-terminal-panes
dev/migrie/f/passthrough-2019
dev/miniksa/shared_pch
dev/migrie/f/1897-less-duplicated-work
release-0.2
dev/cazamor/mcs/viewport-selection
dev/duhowett/version_hack
v1.24.10212.0
v1.23.20211.0
v1.24.3504.0
v1.23.13503.0
v1.24.2812.0
v1.23.12811.0
v1.24.2682.0
v1.23.12681.0
v1.24.2372.0
v1.23.12371.0
v1.23.12102.0
v1.22.12111.0
v1.23.11752.0
v1.22.11751.0
v1.22.11141.0
v1.23.11132.0
v1.23.10732.0
v1.22.10731.0
v1.21.10351.0
v1.22.10352.0
v1.23.10353.0
v1.22.3232.0
v1.21.3231.0
v1.22.2912.0
v1.21.2911.0
v1.22.2702.0
v1.21.2701.0
v1.22.2362.0
v1.21.2361.0
v1.21.1772.0
v1.20.11781.0
v1.21.1382.0
v1.20.11381.0
v1.21.1272.0
v1.20.11271.0
v1.20.11215.0
v1.19.11213.0
v1.20.10822.0
v1.19.10821.0
v1.20.10572.0
v1.19.10573.0
v1.20.10303.0
v1.19.10302.0
v1.18.10301.0
v1.20.10293.0
v1.19.10292.0
v1.18.10291.0
v1.18.3181.0
v1.19.3172.0
v1.19.2831.0
v1.18.2822.0
v1.19.2682.0
v1.18.2681.0
v1.18.1462.0
v1.17.11461.0
v1.18.1421.0
v1.17.11391.0
v1.17.11043.0
v1.16.10261.0
v1.17.1023
v1.16.10231.0
v1.15.3465.0
v1.16.3463.0
v1.15.2712.0
v1.15.2874.0
v1.16.2641.0
v1.16.2523.0
v1.15.2524.0
v1.15.2282.0
v1.14.2281.0
v1.14.1962.0
v1.15.2002.0
v1.15.2001.0
v1.15.1862.0
v1.14.1861.0
v1.14.1451.0
v1.14.1432.0
v1.13.11431.0
v1.13.10983.0
v1.12.10982.0
v1.13.10733.0
v1.12.10732.0
v1.13.10395.0
v1.12.10393.0
v1.13.10336.0
v1.12.10334.0
v1.12.3472.0
v1.11.3471.0
v1.12.2931.0
v1.12.2922.0
v1.11.2921.0
v1.11.2731.0
v1.10.2714.0
v1.11.2421.0
v1.10.2383.0
v1.10.1933.0
v1.9.1942.0
v1.9.1523.0
v1.8.1521.0
v1.9.1445.0
v1.8.1444.0
v1.8.1092.0
v1.7.1091.0
v1.8.1032.0
v1.7.1033.0
v1.7.572.0
v1.6.10571.0
v1.5.10411.0
v1.6.10412.0
v1.6.10272.0
v1.5.10271.0
v1.5.3242.0
v1.4.3243.0
v1.5.3142.0
v1.4.3141.0
v1.4.2652.0
v1.3.2651.0
v1.3.2382.0
v1.2.2381.0
v1.1.2233.0
v1.2.2234.0
v1.1.2021.0
v1.2.2022.0
v1.1.1812.0
v1.0.1811.0
v1.1.1671.0
v1.0.1401.0
v0.11.1333.0
v0.11.1251.0
v0.11.1191.0
v0.11.1111.0
v0.11.1121.0
v0.10.781.0
v0.10.761.0
v0.9.433.0
v0.8.10261.0
v0.8.10091.0
v0.7.3451.0
v0.7.3382.0
v0.7.3291.0
v0.7.3252.0
v0.6.3181.0
v0.6.2951.0
v0.6.2911.0
v0.5.2762.0
v0.5.2761.0
v0.5.2681.0
v0.5.2661.0
v0.3.2321.0
v0.4.2342.0
v0.4.2382.0
v0.3.2171.0
v0.3.2142.0
v0.2.1831.0
v0.2.1715.0
v0.2.1703.0
v0.1.1621.0
v0.1.1581.0
v0.1.1502.0
v0.1.1431.0
v0.1.1361.0
v0.1.1093.0
v0.1.1161.0
v0.1.1204.0
experiment-master
v0.1.1025.0
experiment-OutsideBuild
broken-tabstops
RS2-final
v0.1.1002.0
experiment-rel-windows-inbox
experiment-f-ServerApp
v0.1.1211.0
1904.29002
1810.02002
1708.14008
Labels
Clear labels
⛺ Reserved
A11yCO
A11yMAS
A11ySev1
A11ySev2
A11ySev3
A11yTTValidated
A11yUsable
A11yVoiceAccess
A11yWCAG
Area-Accessibility
Area-AtlasEngine
Area-AzureShell
Area-Build
Area-Build
Area-Chat
Area-CmdPal
Area-CodeHealth
Area-Commandline
Area-CookedRead
Area-DefApp
Area-Extensibility
Area-Fonts
Area-GroupPolicy
Area-i18n
Area-Input
Area-Interaction
Area-Interop
Area-Localization
Area-Output
Area-Performance
Area-Portable
Area-Quality
Area-Remoting
Area-Rendering
Area-Schema
Area-Server
Area-Settings
Area-SettingsUI
Area-ShellExtension
Area-ShellExtension
Area-ShellExtension
Area-Suggestions
Area-Suggestions
Area-TerminalConnection
Area-TerminalControl
Area-Theming
Area-UserInterface
Area-VT
Area-Windowing
Area-WPFControl
AutoMerge
Blocking-Ingestion
Culprit-Centennial
Culprit-WinUI
Disability-All
Disability-Blind
Disability-LowVision
Disability-Mobility
External-Blocked-WinUI3
Fixed
Gathering-Data
good first issue
HCL-E+D
HCL-WindowsTerminal
Help Wanted
Impact-Compatibility
Impact-Compliance
Impact-Correctness
Impact-Visual
In-PR
InclusionBacklog
InclusionBacklog-Windows TerminalWin32
InclusionCommitted-202206
Issue-Bug
Issue-Docs
Issue-Feature
Issue-Feature
Issue-Question
Issue-Samples
Issue-Scenario
Issue-Task
Needs-Attention
Needs-Author-Feedback
Needs-Bisect
Needs-Discussion
Needs-Repro
Needs-Tag-Fix
Needs-Tag-Fix
Needs-Triage
No-Recent-Activity
Priority-0
Priority-1
Priority-2
Priority-3
Product-Cmd.exe
Product-Colortool
Product-Colortool
Product-Colortool
Product-Conhost
Product-Conpty
Product-Meta
Product-Powershell
Product-Terminal
Product-WSL
pull-request
Resolution-Answered
Resolution-By-Design
Resolution-Duplicate
Resolution-External
Resolution-Fix-Available
Resolution-Fix-Committed
Resolution-No-Repro
Resolution-Won't-Fix
Severity-Blocking
Severity-Crash
Severity-DataLoss
spam
this-will-be-a-breaking-change
Tracking-External
WindowsTerminal_Win32
Work-Item
zAskModeBug
zInbox-Bug
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/terminal#2535
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sbatten on GitHub (Jul 3, 2019).
Environment
Steps to reproduce
terminal.integrated.windowsEnableConptyExpected behavior
No hanging.
Actual behavior
The window hangs. Using windbg, I see the following:
Notice the many leftover conhosts in the task manager as well as the hang in ClosePseudoConsole.
Here is the link to the code in node-pty calling into the PseudoConsole API.
04445ed76f/src/win/conpty.cc (L429)/cc @daimms
@DHowett-MSFT commented on GitHub (Jul 8, 2019):
This just needs somebody to sit down to debug. Thanks for the report.
@miniksa commented on GitHub (Aug 7, 2019):
This is because the ConPTY is being started with
CreatePseudoConsole()with the flagPSEUDOCONSOLE_INHERIT_CURSOR. There's an indefinite wait for the calling terminal to respond with the cursor position before the startup lock is freed for other threads to use. A different thread gets the shutdown message and is attempting to acquire the same lock to clean things up before exiting.It looks like if the PTY starts up fast enough so that the shutdown message comes after the cursor is inherited OR if the shutdown happens before the PTY starts asking for the cursor inherit, then everything is good.
Given this is a race condition, I can't really blame it on the caller holding it wrong. I'll work to resolve it such that a shutdown is a valid way of halting the request for the cursor position while it is starting up.
@miniksa commented on GitHub (Aug 7, 2019):
Oh, yeah, conhost is open source now.
This is the VtIo startup code that is waiting to hear the cursor position from the calling terminal:
8fa42e09df/src/host/VtIo.cpp (L238-L255)And this is the Signal thread that has noticed the shutdown and is attempting to acquire the lock so it can finish closing client process state:
8fa42e09df/src/host/output.cpp (L503-L527)Here is the stack of the conhost threads when it is stuck:
The resolution is likely to make the
ReadFileinsideVtInputThread.cppand any other synchronousReadFileandWriteFileoperations intoOVERLAPPEDones that are asynchronous immediate calls that thenWaitForMultipleObjectson the event in the overlapped structure AND on an event that can be signaled by the signal thread that says "Hey, give that up, we're going down!"8fa42e09df/src/host/VtInputThread.cpp (L111)@zadjii-msft commented on GitHub (Aug 8, 2019):
@Tyriar You might be able to work around this by not passing
PSEUDOCONSOLE_INHERIT_CURSORtoCreatePseudoConsole. I don't think you'll need to be doing anything to inherit the cursor position in your scenario, right? The conpty is always being started in a new terminal, right?Disabling
PSEUDOCONSOLE_INHERIT_CURSORwill make conpty assume that the cursor position is starting at 0,0 in an empty buffer, but for VsCode that seems like a reasonable assumption.(We should definitely still fix the thing that @miniksa found)
@Tyriar commented on GitHub (Aug 8, 2019):
We added that because for tasks we write to the terminal before the process is launched, we could probably avoid almost all crashes by just using it when a terminal has already been written too which happens pretty infrequently. I'll start the conversation for the workaround in the vscode issue, thanks.
@Tyriar commented on GitHub (Aug 16, 2019):
The workaround might not be fixing the issue https://github.com/microsoft/vscode/issues/76548#issuecomment-522096999
@miniksa commented on GitHub (Aug 17, 2019):
@Tyriar, did this behavior change between Code Insiders July 2019 and Code Insiders August 2019?
I was attempting to fix this issue and then VS Code updated itself and now I can no longer repro it the same way.
@miniksa commented on GitHub (Aug 17, 2019):
Ugh, it looks like it did. Now to find where the heck I can get the July 2019 one again and have it not auto update.
@Tyriar commented on GitHub (Aug 17, 2019):
@miniksa installer/zip at the top: https://code.visualstudio.com/updates/v1_36, you can set
"update.mode": "none"to disable automatic updates@miniksa commented on GitHub (Aug 17, 2019):
Beautiful, thank you! @tyriar
@Tyriar commented on GitHub (Aug 20, 2019):
It's sounding like it's still happening when we use that flag (since we use it on tasks), just a lot more often than I would have expected based on my experience reproducing https://github.com/microsoft/vscode/issues/71966#issuecomment-522848243
We can't really disable it for tasks as then the updates don't get printed to the terminal, that was another bug: https://github.com/microsoft/terminal/issues/919
@miniksa commented on GitHub (Aug 20, 2019):
@Tyriar, OK. I'm working on a fix for the one specific stack/repro I had right now above.
I have a solution for that particular race, but it revealed a deadlock behind that one. It looks like we're attempting to further paint one last frame out the output channel before everything is torn down. My suspicion here is that the write of the last frame is stuck because the read operation is happening on the same thread on your side of the fence as the call to close the pseudo console. So there's a deadlock as the output channel isn't being drained so the paint frame doesn't think it is done and is holding the session open until it is drained.
Again, not something that is specifically your fault. We should be more robust than that.
A workaround for this case might be to close the handles you're not intending to listen to anymore before calling ClosePseudoConsole. Then we can't get stuck on sending you information during teardown because the pipes will be broken. There's plenty of code handling teardown when the PTY pipes are broken.
It's taking me a while to come up with a complete solution here because it seems like there's a wide spread problem in our code with reliability around synchronization and threading for the PTY. Thanks for your patience.
@Tyriar commented on GitHub (Aug 20, 2019):
@miniksa so
3e645898f8/src/win/conpty.cc (L438)should move above the ClosePseudoConsole call?@miniksa commented on GitHub (Aug 20, 2019):
No, I mean the handles
hInandhOutinside yourpty_batonthat you got from opening up the session.hShelllooks like a process handle, not pipe handles.@miniksa commented on GitHub (Aug 20, 2019):
@zadjii-msft, to totally fix this I need to re-evaluate
ff87190823/src/interactivity/base/ServiceLocator.cpp (L39-L46).I don't have full context on the issue you fixed in the past, so I don't want to break that while I'm fixing this.
Right now I'm deadlocked on the Pty Signal Input thread getting a shutdown message and the
TriggerTeardownsending a final paint to the Output channel. But the same process that sent the signal isn't consuming the Output channel so it deadlocks here.If I in any way attempt to make this final paint asynchronous, there's then no guarantee that it will actually write before our process is torn down because we're calling RundownAndExit here.
I'm trying to determine if there's a difference in context between this type of shutdown and the one that you fixed in MSFT: 15506250.
If not, then we probably need to make it so the Pty Signal receiving a shutdown doesn't force the process closed through RundownAndExit but rather politely notifies everyone else that it's time to go and just lets whatever happen happen (and fix up any further issues that leave behind conhosts unexpectedly from there).
Edit:
Locked stack:
Oh, also a disconnect request is coming in here at the same time from the client:
@zadjii-msft commented on GitHub (Aug 20, 2019):
So, the situation MSFT:15506250 is referring to is back in the earliest WSL tests of the conpty API. When you're using conpty to host a commandline like
cmd /c dir, the client app could run and exit before we've rendered all their output. In this scenario, the last client exits, and conhost will tear itself down because there are no clients left. The "terminal" (in this scenario, the linux subsystem) isn't breaking the signal pipe to close the conpty. I believe WSL will keep reading the output pipe until the pipe is broken, and use that as a signal that the child process died.@benhillis can keep me honest if I'm mis-remembering this.
This feels to me specifically different than the ClosePseudoConsole route, and I think you'd be fine changing it as you suggest. If someone called ClosePseudoConsole, then we could presume that they don't care anymore about something we have buffered, while in the scenario where the client exits (triggering our exit), we'd still want to deliver all the buffered output.
@Tyriar commented on GitHub (Aug 21, 2019):
I just hit the hang when closing a regular terminal (not a task) which has
PSEUDOCONSOLE_INHERIT_CURSORset to 0. Killing conhost freed up the UI again.@miniksa commented on GitHub (Aug 22, 2019):
Next time you hit the hang or any other hang like this, can you please take a process dump of the supposedly hung conhost so I can check the stacks?
If you're hitting a similar situation without the flag set, then you're getting hung in a different situation which I'm not necessarily working on fixing right now in this issue.
@miniksa commented on GitHub (Aug 23, 2019):
Here is a second interlock that can occur later in the shutdown process:
I intend to correct this one too. What happens for this one is:
If the terminal application isn't listening in a multithreaded fashion to drain that output, it will hang indefinitely.
@miniksa commented on GitHub (Aug 23, 2019):
On the plus side, I'm making progress.
On the minus side, for every race condition I resolve here, I find some more.
@miniksa commented on GitHub (Aug 26, 2019):
OK. I fixed as many races and locks as I could. @sbatten, @Tyriar
There will still be a situation where you close the pseudoconsole too fast that I cannot resolve.
Since you own control of starting the child process, you can technically start it up with an invalid handle or against a pseudoconsole that has already been closed. That is, you could start the pseudoconsole and close it while the client application is already started.
It will throw an error on its initialization when that happens and probably show a pop-up dialog with an error 0xc0000142 as "DLL initialization failed".
This would not be a hang. I believe I fixed all the hangs I could find.
To alleviate the other hangs from your side in the mean time, we highly recommend that each handle goes onto its own thread and is drained/filled to/from buffers on your side. We didn't originally envision this as an API consumed by a single blocked thread on the other side. I intend to update the documentation clarifying this point.
The two specific hangs from the dumps are resolvable from the client side by:
@miniksa commented on GitHub (Nov 8, 2019):
This caused many, many issues when imported to Windows so it had to be reverted. Reactivating as we'll have to refine it further going forward.
@JustinGrote commented on GitHub (Dec 20, 2019):
@miniksa hopefully it can get sorted, it currently causes all kinds of hard locks in Visual Studio Code at the moment in any terminal. To reproduce, just type 'a' and kill the process.

Quite frustrating :/
@miniksa commented on GitHub (Jan 2, 2020):
@JustinGrote, to be 100% clear, VS Code can fix this on the client end by properly threading the handles received from the ConPTY. The hang is because all of the ConPTY handles are being serviced on the same thread in VS Code. To resolve this condition, the output and input handles should be managed on separate threads/queues than the one that is managing the session.
My attempts at fixing this were around making it so that everything could be processed on one thread because I hate giving a customer (in this case VS Code) the answer of "you're holding it wrong." But I was unsuccessful and broke WSL at the same time.
Unfortunately as the console host and WSL are inbox components that ship in the same OS release, I had to bias toward making sure they worked well together. VS Code is not an inbox component and can update frequently, so perhaps it can be fixed out of band before I can come up with a better solution that allows a single-threaded client to not hang AND preserves the final-flush operation that WSL depends on for Win32 interop.
@JustinGrote commented on GitHub (Jan 2, 2020):
@miniksa understood, "to ship is to choose" :). I'll see if I can find a related vscode open issue and reference this here, otherwise I'll open a net-new one.
@Tyriar commented on GitHub (Jan 2, 2020):
@miniksa help would be appreciated here. I'm not a C++ dev anymore and don't have time to invest in researching how to do it the right way and figuring out all the ins and outs that come with managing the different threads. Additionally, the initial (broken?) conpty implementation in node-pty was primarily done by your team https://github.com/microsoft/node-pty/issues/375
@miniksa commented on GitHub (Jan 2, 2020):
OK. We'll see. Thanks for the pointer to the code. We'll have to see where/when we can find resources for that and for this issue.
@allforabit commented on GitHub (Mar 11, 2020):
This is happening to me as well. It consistently hangs when I restart a terminal process. My workaround is the use the git bash terminal.
@DHowett-MSFT commented on GitHub (Mar 11, 2020):
@allforabit I’m willing to bet what you’re describing is different. How are you restarting the terminal process? We haven’t seen any reports of hanging-on-close in a while.
@allforabit commented on GitHub (Mar 11, 2020):
Hi @DHowett-MSFT it's when I restart a task by running the "Tasks: Restart running task". Apologies for the vague description in the comment. Thanks!
@DHowett-MSFT commented on GitHub (Mar 11, 2020):
Okay, so you're using some tool to murder the terminal that's hosting all the pseudoconsoles. This is not a case of the "ClosePseudoConsole" API hanging, because when you murder the terminal that API is not getting called at all.
@allforabit commented on GitHub (Mar 11, 2020):
Ok I clicked this link from a Vs code link and I thought this issue was in the VS code issue queue. Pease disregard my comment. I will file an issue there.
@DHowett-MSFT commented on GitHub (Mar 11, 2020):
Oh, I see. This is VS code. Okay. Yes, this may be the same issue.
@allforabit commented on GitHub (Mar 11, 2020):
Let me you need more info. It very consistently crashes for me so I can do a crash dump or whatever would help.
@joshfria commented on GitHub (Apr 20, 2020):
Is there any movement on this issue? It causes hangs for many vscode users.
@zadjii-msft commented on GitHub (Apr 20, 2020):
@joshfria To summarize the linked PRs:
Since then, we haven't had an opportunity to return to this bug. Unfortunately, it's a much harder problem than many of the other bugs on this repo, so it'll take some time to make sure we can fix it without breaking the rest of the world.
@skapil-ind commented on GitHub (May 12, 2020):
I'm facing the same issue as well. I open the terminal through " Ctrl + ` ". Type cls or some other command few times, then i kill the terminal and bang, VS Code hangs up. Then comes a windows of keep waiting or reopen. Any progress on the issue??
@zadjii-msft commented on GitHub (May 12, 2020):
@sukritkapil2 Nope, when there's progress here, we'll make sure to post in this thread 😜
@JustinGrote commented on GitHub (May 12, 2020):
@zadjii-msft out of curiosity, is there any way to tweak how long vscode hangs before prompting for a reload? Right now it's like 15 seconds or something, if I could get this down to 3 or so this would be less annoying.
@zadjii-msft commented on GitHub (May 12, 2020):
@JustinGrote Honestly I know next to nothing about VsCode, so I'm not gonna be super helpful with that question 😕 I will however summon my go-to vscode expert, @Tyriar, to see if he's got any ideas.
@JustinGrote commented on GitHub (May 12, 2020):
@zadjii-msft whoops, I forgot which context I was in since this issue is spread across multiple repositories :)
@DanalEstes commented on GitHub (May 21, 2020):
Various issue records indicate this has been known for just under a year. May I respectfully request the priority of this be raised? It is a strong dis-incentive to migrate to VScode.
As a data point regarding priority: It reproduces very consistently when volume of print coming into terminal window is high. "High" meaning anything more that a print every 1/10 of a second.
When terminal is killed, all UI responsiveness in VScode stops three to five seconds later. "Reload" dialog pops up an eternity (OK, about 30 seconds) after that. Reload succeeds.
Version: 1.45.1 (user setup)
Commit: 5763d909d5f12fe19f215cbfdd29a91c0fa9208a
Date: 2020-05-14T08:27:35.169Z
Electron: 7.2.4
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Windows_NT x64 10.0.18362
@DHowett commented on GitHub (May 21, 2020):
Hey @DanalEstes, sorry about that. The four engineers who work here on this team have been pretty busy on Terminal since this issue was filed. We want to make sure we can give this issue the space it deserves so that we don't end up with a solution that breaks everyone else (#2525).
Interprocess communication over three handles (really five) doesn't seem like it should be terribly difficult, but it turns out that there's a lot of intricacies there.
@christianparpart commented on GitHub (Jun 18, 2020):
Hey, I am developing my own terminal emulator and I am using ConPTY on Windows platform and I am also suffering from this bug. the ReadFile() into the ConPTY handle is just hanging forever as soon as the client-side has terminated.
Is there any best-practice workaround for that, until a proper fix will be there? I personally think such a bug is actually a blocker and should be handled ASAP, since you literally can't properly close the window.
@zadjii-msft commented on GitHub (Jun 19, 2020):
As mentioned earlier in this thread:
@christianparpart could you do something like that?
@JustinGrote commented on GitHub (Jun 19, 2020):
@christianparpart a PR to fix it is in progress:
https://github.com/microsoft/node-pty/issues/375
@christianparpart commented on GitHub (Jun 19, 2020):
Hey @zadjii-msft, thanks for the mention. I am actually writing to the ConPTY pipe from the main thread whereas the reading part is done in another background thread.
I temporarily worked around it now by also watching on the connected process to get notified when the process died. I can add some EDIT here once I'm back home, with more details.
Also, thx for the ref @JustinGrote .
@Tyriar commented on GitHub (Jul 8, 2020):
Note that I've made a PR that fixes this in node-pty https://github.com/microsoft/node-pty/pull/415, however it does not yet work in Electron 8 (haven't tried 9) when node integration is enabled as
worker_threadsdoesn't seem to work https://github.com/electron/electron/issues/18540.@Tyriar commented on GitHub (Sep 25, 2020):
VS Code update: Electron isn't going to support
worker_threadsin the renderer thread, so the fix is blocked on moving where we host node-pty/conpty to a real node process: https://github.com/microsoft/node-pty/pull/415#issuecomment-688870219@christianparpart commented on GitHub (Sep 29, 2020):
I am currently actively looking into finally working around this ConPTY behavior.
Honestly, if your above quoted workaround is the only way to work around this, I'd rather drop Windows support (sadly) or just wait until maybe or maybe not eventually ConPTY can handle with read/write operations in one thread. The reasoning is not that I want to be stubborn but rather that ConPTY (windows) is the only platform that requires this architectural change just to not freeze at shutdown.
I'm trying it though, but it seems like not worth it for now. :)
UPDATE: Okay, I've actually forgotten my own source code, and I remember why I did already split up PTY reads from writes (because ConPTY does not support non-blocking I/O).
My problem was, that if the connected process behind ConPTY terminated, the already started ConPTY's
read()call did not return and does hang forever. This is still the case with latest software updates, and I actually do consider this a bad (or buggy?) behaviour compared to the other PTY implementations cancelling any active I/O operation when the other end disconnects.I did add a process exit watcher that does explicitly close the terminal's end of the PTY, and now the
read-call is not hanging anymore.Thanks :)
@JustinGrote commented on GitHub (Feb 9, 2021):
@miniksa @Tyriar has merged https://github.com/microsoft/node-pty/pull/415#issuecomment-688870219 into Node-pty. Can you provide an update when this might make it upstream to VSCode?
@Tyriar commented on GitHub (Feb 10, 2021):
Probably tomorrow's insiders, follow https://github.com/microsoft/vscode/pull/116185 for updates
@TheLizzard commented on GitHub (Apr 5, 2021):
Any updates? I am also having the same bug in my code. When I call
ClosePseudoConsolemy program hangs. It only happens when I callCreatePseudoConsolewithdwFlags=1. Btw my project is written in python using the windows API.@Anduh commented on GitHub (May 9, 2022):
https://github.com/microsoft/vscode/issues/144016 is likely related
@zadjii-msft commented on GitHub (Dec 5, 2022):
We are pretty sure that #14160 fixed this?
@Tyriar commented on GitHub (Dec 6, 2022):
Nice! Sounds like it.
@lhecker commented on GitHub (Dec 6, 2022):
There's still an easily reproducible bug in WSL however. It calls
ClosePseudoConsoleon the same thread that's reading from the output pipe and so it can deadlock (conhost is blocked writing to the pipe on exit, WSL is blocked waiting for conhost to exit). I'm planning to contact them and introduce a newClosePseudoConsoleTimeoutfunction to simplify the process (a timeout of 0 will equate to a fully async shutdown).The bug reproduces if you execute any CLI application that writes more than 4kB of text before conhost has a chance to exit. This happens with applications similar to
catin particular and is a race condition in most situations. The deadlock is resolved once you runwsl --shutdown.@zadjii-msft commented on GitHub (Jan 24, 2023):
I'm gonna close this out, because we think this was fixed in 1.17. It'll obviously be a while before we can get a newer version ingested into VsCode (cause we basically need to do... #6999? That doesn't look right but it's close), but the code on our end should be finished.
If this still repros with the 1.17+ version of the API, then we'll probably need something that builds on that fix, rather than revert that and try something new.