microsoft / microsoft/terminal
[1.23] PatternTree crash after closing two panes in oen tab
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 105k
- Forks
- 9.6k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 29
Description
### Windows Terminal version
Canary 2851
### Windows build number
_No response_
### Other Software
_No response_
### Steps to reproduce
Dunno - closed two shells inside panes in the same tab with `^D`
### Expected Behavior
_No response_
### Actual Behavior
```
Microsoft.Terminal.Control.dll!Microsoft::Console::Render::Renderer::TriggerRedraw(const Microsoft::Console::Types::Viewport & region) Line 262 C++
Microsoft.Terminal.Control.dll!Microsoft::Terminal::Core::Terminal::_InvalidateFromCoords(const til::point start, const til::point end) Line 808 C++
[Inline Frame] Microsoft.Terminal.Control.dll!Microsoft::Terminal::Core::Terminal::_InvalidatePatternTree::__l2::::operator()(const interval_tree::Interval &) Line 774 C++
> [Inline Frame] Microsoft.Terminal.Control.dll!std::for_each(std::_Vector_const_iterator>>>) Line 435 C++
Microsoft.Terminal.Control.dll!interval_tree::IntervalTree::visit_all<`Microsoft::Terminal::Core::Terminal::_InvalidatePatternTree'::`2'::>(Microsoft::Terminal::Core::Terminal::_InvalidatePatternTree::__l2:: f) Line 308 C++
[Inline Frame] Microsoft.Terminal.Control.dll!Microsoft::Terminal::Core::Terminal::_InvalidatePatternTree() Line 771 C++
Microsoft.Terminal.Control.dll!Microsoft::Terminal::Core::Terminal::UpdatePatternsUnderLock() Line 1192 C++
Microsoft.Terminal.Control.dll!winrt::Microsoft::Terminal::Control::implementation::ControlCore::_setupDispatcherAndCallbacks::__l2::::operator()() Line 200 C++
[Inline Frame] Microsoft.Terminal.Control.dll!std::_Func_class::operator()() Line 920 C++
[Inline Frame] Microsoft.Terminal.Control.dll!std::invoke(std::function &) Line 1704 C++
[Inline Frame] Microsoft.Terminal.Control.dll!std::_Apply_impl(std::function &) Line 1076 C++
[Inline Frame] Microsoft.Terminal.Control.dll!std::apply(std::function &) Line 1087 C++
[Inline Frame] Microsoft.Terminal.Control.dll!til::throttled_func<1,0>::_trailing_edge() Line 196 C++
Microsoft.Terminal.Control.dll!til::throttled_func<1,0>::_timer_callback(_TP_CALLBACK_INSTANCE * __formal, void * context, _TP_TIMER * __formal) Line 184 C++
```
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with Terminal::_InvalidatePatternTree and UpdatePatternsUnderLock in the Microsoft.Terminal.Control.dll stack trace, focusing on lines 771-808 and Renderer::TriggerRedraw at line 262. Try reproducing the crash by closing two shells in panes within one tab using Ctrl+D; done means the operation no longer crashes Windows Terminal.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- cli, desktop
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100