Mysterious hang in Monarch::_getMostRecentPeasantID #11215
Labels
Area-Remoting
Communication layer between windows. Often for windowing behavior, quake mode, etc.
Issue-Bug
It either shouldn't be doing this or needs an investigation.
Needs-Tag-Fix
Doesn't match tag requirements
Needs-Triage
It's a new issue that the core contributor team needs to triage at the next triage meeting
Priority-1
A description (P1)
Product-Terminal
The new Windows Terminal.
Resolution-Fix-Committed
Fix is checked in, but it might be 3-4 weeks until a release.
Severity-Blocking
We won't ship a release like this! No-siree.
Milestone
version 1.12.2521.0.
Unsure how I got into this state. Probably
globalSummon
the window. Terminal is in an infinite loop now insideMonarch::_getMostRecentPeasantID
but my repo's in the middle of a weird merge ATM so I can't verify on
main
The symbols for this build don't include accurate source info, or at least my windbg is fucky. But what seems to be happening is
_getMostRecentPeasantID
is in thewhile (_mruPeasants.cbegin() + positionInList < _mruPeasants.cend())
loop. We're looking for ID=3, which we don't find in the list of peasants, so_getPeasant
ends up returning null. We determine that we should have cleaned out that peasant ID from the MRU entries at that point, so we try again. However, we didn't. The MRU list still contains 3 at index 0, so we go looking for it again.auto maybeThePeasant = peasantSearch == _peasants.end() ? nullptr : peasantSearch->second;
inMonarch::_getPeasant
ends up settingmaybeThePeasant
tonull
, which we then happily return (without cleaning up any MRU entries for it).absolutely baseless list of possible commits to investigate:
I did not have the tray icon enabled.
Filing on myself so I don't lose this, but I don't think I'm getting anything more out of this debugger
There's no valuable logs other than a million
Monarch_Collect_WasDead(Id=3, Desktop={guid})
The text was updated successfully, but these errors were encountered: