Skip to content

Mysterious hang in Monarch::_getMostRecentPeasantID #11215

@zadjii-msft

Description

@zadjii-msft

version 1.12.2521.0.
Unsure how I got into this state. Probably

  • open windows 1, 2, 3. 1 is not the MRU window.
  • Close 2 and 3.
  • Try globalSummon the window. Terminal is in an infinite loop now inside Monarch::_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 the while (_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; in Monarch::_getPeasant ends up setting maybeThePeasant to null, 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})

Metadata

Metadata

Assignees

Labels

Area-RemotingCommunication layer between windows. Often for windowing behavior, quake mode, etc.Issue-BugIt either shouldn't be doing this or needs an investigation.Needs-Tag-FixDoesn't match tag requirementsNeeds-TriageIt's a new issue that the core contributor team needs to triage at the next triage meetingPriority-1A description (P1)Product-TerminalThe new Windows Terminal.Resolution-Fix-CommittedFix is checked in, but it might be 3-4 weeks until a release.Severity-BlockingWe won't ship a release like this! No-siree.

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions