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)
Core
Layout
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: hiro, Unassigned)
Details
Attachments
(1 file)
1.04 KB,
patch
|
Details | Diff | Splinter Review |
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)
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)
Comment 2•10 years ago
|
||
We should obviously fix the crash even if we changed the test.
Comment 3•10 years ago
|
||
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)
Reporter | ||
Comment 4•10 years ago
|
||
:smaug, do you have any ideas why the crash happens on Windows XP and 8, and not on 7?
Flags: needinfo?(bugs)
Comment 5•10 years ago
|
||
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)
Reporter | ||
Comment 7•10 years ago
|
||
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
![]() |
||
Comment 8•10 years ago
|
||
Judging from comment 7, I don't think there's anything useful for me to add here.
Flags: needinfo?(nfroyd)
Reporter | ||
Comment 9•10 years ago
|
||
Today I set up Window 8 environment, but the timeout does not happen there unfortunately.
Reporter | ||
Comment 10•10 years ago
|
||
Closing. Frame Timing API with PerformanceObserver does not cause this crash any more.
You need to log in
before you can comment on or make changes to this bug.
Description
•