-
Notifications
You must be signed in to change notification settings - Fork 8.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some internal crash reports #12624
Comments
Randomly opened a fresh dump this morning, by chance. That one actually had a #7763 (comment) may also be useful for debugging this sort of thing. |
This fixes a pair of inbox bugs, hopefully. * MSFT:35731327 * There's a small window where a peasant is being created when a monarch is exiting. When that happens, the new peasant will try to tell itself (the new monarch) when the peasant was last activated, but because the window hasn't actually finished instantiating, the peasant doesn't yet have a LastActivatedArgs to tell the monarch about. * MSFT:32518679 (ARM version) / MSFT:32279047 (AMD64 version) * This one's tricky. Not totally sure this is the fix, bug assuming my hypothesis is correct, this should fix it. Regardless, this does fix a bug that was in the code. * If the king dies right as another window is starting, right while the new window is starting to ProposeCommandline to the monarch, the monarch could die. If it does, the new window just explodes too. Not what you want. Vaguely tested the second bug manually, by setting breakpoints in the monarch, starting a defterm, then exiting the monarch while the handoff was in process. That now creates a new window, so that's at least something. `RemotingTests::TestProposeCommandlineWithDeadMonarch` was the closest I could get to testing that. The first bug only got an eye check. Not sure how to repro, but I figured yeet and hopefully we get it. * [x] Closes #12624
This fixes a pair of inbox bugs, hopefully. * MSFT:35731327 * There's a small window where a peasant is being created when a monarch is exiting. When that happens, the new peasant will try to tell itself (the new monarch) when the peasant was last activated, but because the window hasn't actually finished instantiating, the peasant doesn't yet have a LastActivatedArgs to tell the monarch about. * MSFT:32518679 (ARM version) / MSFT:32279047 (AMD64 version) * This one's tricky. Not totally sure this is the fix, bug assuming my hypothesis is correct, this should fix it. Regardless, this does fix a bug that was in the code. * If the king dies right as another window is starting, right while the new window is starting to ProposeCommandline to the monarch, the monarch could die. If it does, the new window just explodes too. Not what you want. Vaguely tested the second bug manually, by setting breakpoints in the monarch, starting a defterm, then exiting the monarch while the handoff was in process. That now creates a new window, so that's at least something. `RemotingTests::TestProposeCommandlineWithDeadMonarch` was the closest I could get to testing that. The first bug only got an eye check. Not sure how to repro, but I figured yeet and hopefully we get it. * [x] Closes #12624 (cherry picked from commit f507d9f)
This fixes a pair of inbox bugs, hopefully. * MSFT:35731327 * There's a small window where a peasant is being created when a monarch is exiting. When that happens, the new peasant will try to tell itself (the new monarch) when the peasant was last activated, but because the window hasn't actually finished instantiating, the peasant doesn't yet have a LastActivatedArgs to tell the monarch about. * MSFT:32518679 (ARM version) / MSFT:32279047 (AMD64 version) * This one's tricky. Not totally sure this is the fix, bug assuming my hypothesis is correct, this should fix it. Regardless, this does fix a bug that was in the code. * If the king dies right as another window is starting, right while the new window is starting to ProposeCommandline to the monarch, the monarch could die. If it does, the new window just explodes too. Not what you want. Vaguely tested the second bug manually, by setting breakpoints in the monarch, starting a defterm, then exiting the monarch while the handoff was in process. That now creates a new window, so that's at least something. `RemotingTests::TestProposeCommandlineWithDeadMonarch` was the closest I could get to testing that. The first bug only got an eye check. Not sure how to repro, but I figured yeet and hopefully we get it. * [x] Closes #12624 (cherry picked from commit f507d9f)
🎉This issue was addressed in #12666, which has now been successfully released as Handy links: |
🎉This issue was addressed in #12666, which has now been successfully released as Handy links: |
Just filing notes here for posterity. Issue will be updated as I investigate.
MSFT:35731327 - Closed no repro, but definitely still reproing.
Stack
SOLUTION: Should be easy enough to add a
null
check toMonarch::HandleActivatePeasant
(and anywhere else there's aWindowActivatedArgs
really)🔥 MSFT:32518679 (ARM version), MSFT:32279047 (AMD64 version)
Happening as early as module versions
1.11.[2108, 2109, 2110]
, and all the way till1.13.2202.8005
A thought:
_monarch.ProposeCommandline
could fail. That's a potentially cross-proc hop there, and it's not try/caught. So in that scenario:WindowManager::ProposeCommandline
, which starts to ask the monarch viaProposeCommandline
c0000409
/STATUS_STACK_BUFFER_OVERRUN
we're seeing? because that seems... unlikely.There's piles of tracing around here. We should be able to get traces from these crashes, right? right?
After more investigating:
So it's not that the monarch died. Something caused a buffer overrun and I have no idea what because the stack is just no longer useful, and try/catching that won't work either. We'll need to come up with something next week.
The text was updated successfully, but these errors were encountered: