Closed Bug 529865 Opened 15 years ago Closed 14 years ago

Camino hard-hanging when viewng page with Quicktime embedded

Categories

(Camino Graveyard :: General, defect)

x86_64
macOS
defect
Not set
critical

Tracking

(Not tracked)

RESOLVED INCOMPLETE

People

(Reporter: jamie, Unassigned)

References

()

Details

User-Agent:       Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15)
Build Identifier: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en; rv:1.9.0.15) Gecko/2009102617 Camino/2.0 (like Firefox/3.0.15)

WHen I look at http://eucalyptusapp.com, Camino hands and has to be force-quitted.

Reproducible: Always

Steps to Reproduce:
1. Open Camino
2. Go to http://eucalyptusapp.com/
3. If the hang doesn't happen immediately, click a few of the titles on the left, and resize the window a few times while the movie is playing.
Actual Results:  
Camino hangs with a spinning beachball and has to be force-quit.

Expected Results:  
Not hang.

Here's a sample of the hung Camino produced by the command-line Sample tool:

Analysis of sampling Camino (pid 7288) every 1 millisecond
Call graph:
    7051 Thread_84527   DispatchQueue_1: com.apple.main-thread  (serial)
      7051 start
        7051 _start
          7051 main
            7051 NSApplicationMain
              7051 -[NSApplication run]
                7051 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
                  7051 _DPSNextEvent
                    7051 BlockUntilNextEventMatchingListInMode
                      7051 ReceiveNextEventCommon
                        7051 RunCurrentEventLoopInMode
                          7051 CFRunLoopRunInMode
                            7051 CFRunLoopRunSpecific
                              7051 __CFRunLoopRun
                                7051 __CFRunLoopDoSources0
                                  7051 nsAppShell::ProcessGeckoEvents(void*)
                                    7051 nsBaseAppShell::NativeEventCallback()
                                      7051 NS_ProcessPendingEvents_P(nsIThread*, unsigned int)
                                        7051 nsThread::ProcessNextEvent(int, int*)
                                          7051 nsAppShell::OnProcessNextEvent(nsIThreadInternal*, int, unsigned int)
                                            7051 nsBaseAppShell::OnProcessNextEvent(nsIThreadInternal*, int, unsigned int)
                                              7051 nsBaseAppShell::DoProcessNextNativeEvent(int)
                                                7051 nsAppShell::ProcessNextNativeEvent(int)
                                                  7051 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
                                                    7051 _DPSNextEvent
                                                      7051 BlockUntilNextEventMatchingListInMode
                                                        7051 ReceiveNextEventCommon
                                                          7051 RunCurrentEventLoopInMode
                                                            7051 CFRunLoopRunInMode
                                                              7051 CFRunLoopRunSpecific
                                                                7051 __CFRunLoopRun
                                                                  7051 __CFRunLoopDoObservers
                                                                    7051 _handleWindowNeedsDisplay
                                                                      7051 -[NSWindow displayIfNeeded]
                                                                        7051 -[NSView displayIfNeeded]
                                                                          7051 -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]
                                                                            7051 -[NSThemeFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                              7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                  7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                    7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                      7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                        7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                          7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                            7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                              7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                                7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                                  7051 -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
                                                                                                    7051 -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
                                                                                                      7051 -[NSView _drawRect:clip:]
                                                                                                        7051 -[ChildView drawRect:]
                                                                                                          7051 nsChildView::DispatchWindowEvent(nsGUIEvent&)
                                                                                                            7051 nsChildView::DispatchEvent(nsGUIEvent*, nsEventStatus&)
                                                                                                              7051 HandleEvent(nsGUIEvent*)
                                                                                                                7051 nsViewManager::DispatchEvent(nsGUIEvent*, nsEventStatus*)
                                                                                                                  7051 nsViewManager::Refresh(nsView*, nsIRenderingContext*, nsIRegion*, unsigned int)
                                                                                                                    7051 nsViewManager::RenderViews(nsView*, nsIRenderingContext&, nsRegion const&)
                                                                                                                      7051 PresShell::Paint(nsIView*, nsIRenderingContext*, nsRegion const&)
                                                                                                                        7051 nsLayoutUtils::PaintFrame(nsIRenderingContext*, nsIFrame*, nsRegion const&, unsigned int)
                                                                                                                          7051 nsDisplayList::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) const
                                                                                                                            7051 nsDisplayClip::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&)
                                                                                                                              7051 nsDisplayList::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) const
                                                                                                                                7051 nsDisplayClip::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&)
                                                                                                                                  7051 nsDisplayList::Paint(nsDisplayListBuilder*, nsIRenderingContext*, nsRect const&) const
                                                                                                                                    7051 0x8aa21f
                                                                                                                                      7051 nsObjectFrame::PaintPlugin(nsIRenderingContext&, nsRect const&, nsPoint const&)
                                                                                                                                        7051 nsPluginInstanceOwner::Paint(nsRect const&)
                                                                                                                                          7051 ns4xPluginInstance::HandleEvent(nsPluginEvent*, int*)
                                                                                                                                            7051 WebHelper_Private_HandleEvent
                                                                                                                                              7051 NPP_HandleEvent
                                                                                                                                                7051 handleEventNow
                                                                                                                                                  7051 doUpdateEvent
                                                                                                                                                    7051 MCDraw
                                                                                                                                                      7051 CallComponentDispatch
                                                                                                                                                        7051 _MCComponentDispatch
                                                                                                                                                          7051 CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long)
                                                                                                                                                            7051 _MCDraw
                                                                                                                                                              7051 internalDoAction
                                                                                                                                                                7051 doUpdateMovie
                                                                                                                                                                  7051 UpdateMovie
                                                                                                                                                                    7051 UpdateMovie_priv
                                                                                                                                                                      7051 InvalidateMovieRegion_priv
                                                                                                                                                                        7051 ForEachMedia_priv
                                                                                                                                                                          7051 updateMedia
                                                                                                                                                                            7051 MediaUpdateMovie
                                                                                                                                                                              7051 CallComponentDispatch
                                                                                                                                                                                7051 Video2ComponentDispatch
                                                                                                                                                                                  7051 CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long)
                                                                                                                                                                                    7051 Video2UpdateMovie
                                                                                                                                                                                      7051 CDSequenceFlush
                                                                                                                                                                                        7051 ImageCodecFlush
                                                                                                                                                                                          7051 CallComponentDispatch
                                                                                                                                                                                            7051 Base_CDComponentDispatch
                                                                                                                                                                                              7051 CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long)
                                                                                                                                                                                                7051 Base_CDFlush
                                                                                                                                                                                                  7051 CancelCallBack_priv
                                                                                                                                                                                                    7051 QTMLGrabMutex
                                                                                                                                                                                                      7051 pthread_mutex_lock
                                                                                                                                                                                                        7051 semaphore_wait_signal_trap
    7051 Thread_84534   DispatchQueue_2: com.apple.libdispatch-manager  (serial)
      7051 start_wqthread
        7051 _pthread_wqthread
          7051 _dispatch_worker_thread2
            7051 _dispatch_queue_invoke
              7051 _dispatch_mgr_invoke
                7051 kevent
    7051 Thread_84536
      7051 thread_start
        7051 _pthread_start
          7051 google_breakpad::ExceptionHandler::WaitForMessage(void*)
            7051 mach_msg
              7051 mach_msg_trap
    7051 Thread_84539
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsThread::ThreadFunc(void*)
              7051 NS_ProcessNextEvent_P(nsIThread*, int)
                7051 nsThread::ProcessNextEvent(int, int*)
                  7051 nsSocketTransportService::Run()
                    7051 NS_ProcessNextEvent_P(nsIThread*, int)
                      7051 nsThread::ProcessNextEvent(int, int*)
                        7051 nsSocketTransportService::OnProcessNextEvent(nsIThreadInternal*, int, unsigned int)
                          7051 nsSocketTransportService::DoPollIteration(int)
                            7051 nsSocketTransportService::Poll(int, unsigned int*)
                              7051 PR_Poll
                                7051 _pr_poll_with_poll
                                  7051 poll
                                    7051 select
                                      7051 select$DARWIN_EXTSN$NOCANCEL
    7051 Thread_84544
      7051 thread_start
        7051 _pthread_start
          7051 __CFSocketManager
            7051 select$DARWIN_EXTSN
    7051 Thread_84546
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsThread::ThreadFunc(void*)
              7051 NS_ProcessNextEvent_P(nsIThread*, int)
                7051 nsThread::ProcessNextEvent(int, int*)
                  7051 TimerThread::Run()
                    7051 PR_WaitCondVar
                      7051 pt_TimedWait
                        7051 pthread_cond_timedwait
                          7051 _pthread_cond_wait
                            7051 semaphore_timedwait_signal_trap
    7051 Thread_84557
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsSSLThread::Run()
              7051 PR_WaitCondVar
                7051 pthread_cond_wait
                  7051 _pthread_cond_wait
                    7051 semaphore_wait_signal_trap
    7051 Thread_84558
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsCertVerificationThread::Run()
              7051 PR_WaitCondVar
                7051 pthread_cond_wait
                  7051 _pthread_cond_wait
                    7051 semaphore_wait_signal_trap
    7051 Thread_84559
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsThread::ThreadFunc(void*)
              7051 NS_ProcessNextEvent_P(nsIThread*, int)
                7051 nsThread::ProcessNextEvent(int, int*)
                  7051 nsEventQueue::GetEvent(int, nsIRunnable**)
                    7051 PR_Wait
                      7051 PR_WaitCondVar
                        7051 pthread_cond_wait
                          7051 _pthread_cond_wait
                            7051 semaphore_wait_signal_trap
    7051 Thread_84568
      7051 thread_start
        7051 _pthread_start
          7051 _pt_root
            7051 nsThread::ThreadFunc(void*)
              7051 NS_ProcessNextEvent_P(nsIThread*, int)
                7051 nsThread::ProcessNextEvent(int, int*)
                  7051 nsEventQueue::GetEvent(int, nsIRunnable**)
                    7051 PR_Wait
                      7051 PR_WaitCondVar
                        7051 pthread_cond_wait
                          7051 _pthread_cond_wait
                            7051 semaphore_wait_signal_trap
    7051 Thread_84706
      7051 thread_start
        7051 _pthread_start
          7051 QTSNetworkThread_RunThread
            7051 CFRunLoopRun
              7051 CFRunLoopRunSpecific
                7051 __CFRunLoopRun
                  7051 mach_msg
                    7051 mach_msg_trap
    7051 Thread_84708
      7051 thread_start
        7051 _pthread_start
          7051 __NSThread__main__
            7051 -[NSThread main]
              7051 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]
                7051 CFRunLoopRunInMode
                  7051 CFRunLoopRunSpecific
                    7051 __CFRunLoopRun
                      7051 mach_msg
                        7051 mach_msg_trap
    7051 Thread_84721
      7051 thread_start
        7051 _pthread_start
          7051 DeferredTaskThread
            7051 ExecuteCallBack_priv
              7051 BaseCodec_DecompressCallBack_Common
                7051 BaseCodec_DecompressWorkFunction
                  7051 BaseCodec_ImageCodecDecodeBand
                    7051 ImageCodecDecodeBand
                      7051 CallComponentDispatch
                        7051 JVTDecoComponentDispatch
                          7051 CallComponentFunctionCommonWithStorage(char**, ComponentParameters*, long (*)(), unsigned long)
                            7051 JVTDecoDecodeBand_ForkH264
                              6982 mach_msg
                                6974 mach_msg_trap
                                8 mach_msg
                              68 JVTDecoDecodeBand_ForkH264
                              1 _sysenter_trap
    7051 Thread_84749
      7051 thread_start
        7051 _pthread_start
          7051 JVTDecoDrawBand
            7051 waitpid
              7051 wait4

Total number in stack (recursive counted multiple, when >=5):
        12       _pthread_start
        12       thread_start
        11       -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
        6       _pt_root
        6       nsThread::ProcessNextEvent(int, int*)
        5       NS_ProcessNextEvent_P(nsIThread*, int)
        5       PR_WaitCondVar
        5       _pthread_cond_wait
        5       semaphore_wait_signal_trap

Sort by top of stack, same collapsed (when >= 5):
        semaphore_wait_signal_trap        35255
        mach_msg_trap        28127
        kevent        7051
        select$DARWIN_EXTSN        7051
        select$DARWIN_EXTSN$NOCANCEL        7051
        semaphore_timedwait_signal_trap        7051
        wait4        7051
        JVTDecoDecodeBand_ForkH264        68
        mach_msg        8
Hi Jamie :)

Looks like it might be within QuickTime itself; do Safari/Firefox 3/Firefox 3.5 have the same issue?
Hey, Stuart!  Small world :-)

I was going to say "no" to your question, but after trying /very/ hard, I was able to get Firefox to hang.  The video is also very flickery at times in Firefox too.  

Camino does seem more susceptible than Firefox though - it always hangs pretty much immediately if you interact with the page/window.

Safari exhibits no problems.
Hm, maybe whatever is tickling the issue has improved in 1.9.2. I'll try it with Firefox 3 when I get a chance.
Is that 10.6 only ? I can't get the browser to hang on 10.5.8. Lots of flickering in the QuickTime movie but that is all (and the same happens with any version of Firefox & Minefield).
Hm, I can't get Camino to hang either, on 10.6.2. Maybe there's something configuration-specific going on.
Were either of you able to make any further progress on this?
No I wasn't ever able to reproduce it. I'll try a couple of other machines in the next few days though, and see if I have more luck.
I don't see this at all with a recent nightly build on 10.6.4; Jamie, is it still a problem for you with a recent nightly build?

Stuart, did you ever get around to testing on the other equipment back in January?
At this point I don't remember :(

I do know why Safari would likely not have this bug though; on 10.6 in Safari, the QT plugin uses the Core Animation drawing model, so the code path for drawing is totally different.
Is it safe to close this INCOMPLETE, then?
I think it probably is, especially given that plugin handling in core has changed a *lot*, so core people would almost certainly not be interested in it at this point.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.