Closed Bug 1170448 Opened 10 years ago Closed 10 years ago

Close popped up window in test_bug533845.xul before finishing test to make shutting down process harmless

Categories

(Core :: Layout, defect)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: hiro, Unassigned)

Details

Attachments

(1 file)

With Frame Timing API implementation (bug 1158032) test_bug533845.xul crashes on Windows XP and 8 (not on 7 strangely). The stack traces on the crash is like this: 03:54:34 INFO - Thread 0 03:54:34 INFO - 0 xul.dll!std::_Deque_const_iterator<std::_Deque_val<std::_Deque_simple_types<IPC::Message> > >::_Deque_const_iterator<std::_Deque_val<std::_Deque_simple_types<IPC::Message> > >(unsigned int,std::_Container_base12 const *) [deque : 302 + 0x6] 03:54:34 INFO - eip = 0x01076c10 esp = 0x0012f0e0 ebp = 0x0012f0e0 ebx = 0x1f18e73c 03:54:34 INFO - esi = 0x00000000 edi = 0x0012f13c eax = 0x00014393 ecx = 0x0012f108 03:54:34 INFO - edx = 0x00000000 efl = 0x00200246 03:54:34 INFO - Found by: given as instruction pointer in context 03:54:34 INFO - 1 xul.dll!mozilla::ipc::MessageChannel::ProcessPendingRequests() [MessageChannel.cpp:e446a41178ee : 749 + 0xf] 03:54:34 INFO - eip = 0x0107c148 esp = 0x0012f0e8 ebp = 0x0012f148 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 2 xul.dll!mozilla::ipc::MessageChannel::Send(IPC::Message *,IPC::Message *) [MessageChannel.cpp:e446a41178ee : 829 + 0x6] 03:54:34 INFO - eip = 0x0107d140 esp = 0x0012f150 ebp = 0x0012f18c 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 3 xul.dll!mozilla::layers::PCompositorChild::SendFlushRendering() [PCompositorChild.cpp:e446a41178ee : 392 + 0xc] 03:54:34 INFO - eip = 0x01145d76 esp = 0x0012f194 ebp = 0x0012f1c8 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 4 xul.dll!nsViewManager::Refresh(nsView *,nsIntRegion const &) [nsViewManager.cpp:e446a41178ee : 334 + 0x9] 03:54:34 INFO - eip = 0x01bf6e4f esp = 0x0012f1d0 ebp = 0x0012f1f4 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 5 xul.dll!nsViewManager::PaintWindow(nsIWidget *,nsIntRegion) [nsViewManager.cpp:e446a41178ee : 718 + 0xb] 03:54:34 INFO - eip = 0x01bf6a28 esp = 0x0012f1fc ebp = 0x0012f210 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 6 xul.dll!nsView::PaintWindow(nsIWidget *,nsIntRegion) [nsView.cpp:e446a41178ee : 1046 + 0x15] 03:54:34 INFO - eip = 0x01bf5a64 esp = 0x0012f218 ebp = 0x0012f23c 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 7 xul.dll!nsWindow::OnPaint(HDC__ *,unsigned int) [nsWindowGfx.cpp:e446a41178ee : 517 + 0x15] 03:54:34 INFO - eip = 0x01c47c63 esp = 0x0012f244 ebp = 0x0012f3b8 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 8 xul.dll!nsWindow::OnPaint(HDC__ *,unsigned int) [nsWindowGfx.cpp:e446a41178ee : 557 + 0x10] 03:54:34 INFO - eip = 0x01c48344 esp = 0x0012f3c0 ebp = 0x0012f524 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 9 xul.dll!nsWindow::ProcessMessage(unsigned int,unsigned int &,long &,long *) [nsWindow.cpp:e446a41178ee : 4803 + 0xa] 03:54:34 INFO - eip = 0x01c499af esp = 0x0012f52c ebp = 0x0012f6c0 03:54:34 INFO - Found by: call frame info 03:54:34 INFO - 10 xul.dll!nsWindow::WindowProcInternal(HWND__ *,unsigned int,unsigned int,long) [nsWindow.cpp:e446a41178ee : 4361 + 0x16] Frame Timing API sends an async message from compositor thread to main thread periodically, it seems to cause residual message in IPC message queue. I have not investigated the crash reason in detail but I found that closing popped up window before finishing test stops the crash. I am attach a patch to fix the crash to close the popped up window.
Attachment #8613906 - Flags: review?(dbaron)
Blocks: 1158032
Comment on attachment 8613906 [details] [diff] [review] Close the popped up window before finishing test Transferring request to smaug, since he wrote the test. (Sorry for not catching that sooner.)
Attachment #8613906 - Flags: review?(dbaron) → review?(bugs)
We should obviously fix the crash even if we changed the test.
Comment on attachment 8613906 [details] [diff] [review] Close the popped up window before finishing test So, without a fix for the actual crash I'm not ready to take this patch to hide the crash.
Attachment #8613906 - Flags: review?(bugs)
:smaug, do you have any ideas why the crash happens on Windows XP and 8, and not on 7?
Flags: needinfo?(bugs)
Don't know about that. Sounds like some timing issue. Is your code perhaps using CompositorParent/Child after it has been shut down? Is it possible that your patch just reveals some existing bug in CompositorParent/Child implementation or usage? Are we doing still some painting after the nsWindow has been shut down? Perhaps IPC part of the stack trace says more to Nathan?
Flags: needinfo?(bugs) → needinfo?(nfroyd)
Is the stack trace in comment 0 the full stack trace?
Oh, I was totally misunderstanding this issue. The test was timed out, then crashed. I am so sorry for the confusion. So the problem here is the "timed out". Anyway I will investigate further in detail. Thanks smaug! For reference here is a try log for the failure: https://treeherder.mozilla.org/logviewer.html#?job_id=8111221&repo=try
Judging from comment 7, I don't think there's anything useful for me to add here.
Flags: needinfo?(nfroyd)
Today I set up Window 8 environment, but the timeout does not happen there unfortunately.
Closing. Frame Timing API with PerformanceObserver does not cause this crash any more.
No longer blocks: 1158032
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: