Closed Bug 474089 Opened 16 years ago Closed 16 years ago

camino hangs when using microsoft mouse wheel to scroll web page

Categories

(Camino Graveyard :: General, defect)

PowerPC
macOS
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: copterpete, Unassigned)

References

()

Details

User-Agent:       Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.19) Gecko/20081212 Camino/1.6.6 (like Firefox/2.0.0.19)
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en; rv:1.8.1.19) Gecko/20081212 Camino/1.6.6 (like Firefox/2.0.0.19)

Scrolling down on a web page using the scroll wheel on my microsoft mouse causes the beach ball to spin and camino to hang instead of scrolling the window.  Normal scrolling of the same web page occurs using the keyboard up and down arrows or clicking on the arrows in the scroll bar.  Dragging the scroll bar up and down also works normally.  The problem doesn't always happen though.  This window works normally, for example.  I have encountered this most often when viewing streaming video and trying to bring the video toward the top of the screen, and also when viewing newspaper articles that include photos and other content besides just text.  Also, camino sometimes hangs when trying to quit out of a video page, making it necessary to force quit.

Reproducible: Sometimes

Steps to Reproduce:
1. open web page with video content.
2. attempt to scroll the page down using the mouse scroll wheel.
3.



I have attached a sample of activity from the activity monitor during the last incident I encountered with camino being hung, and unresponsive.

Analysis of sampling pid 987 every 10.000000 milliseconds
Call graph:
    240 Thread_0f0f
      240 start
        240 _start
          240 main
            240 NSApplicationMain
              240 -[NSApplication run]
                240 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
                  240 _DPSNextEvent
                    240 BlockUntilNextEventMatchingListInMode
                      240 ReceiveNextEventCommon
                        240 RunCurrentEventLoopInMode
                          240 CFRunLoopRunSpecific
                            239 __CFRunLoopRun
                              140 mach_msg
                                140 mach_msg_trap
                                  140 mach_msg_trap
                              97 __CFRunLoopDoSources0
                                97 PL_ProcessPendingEvents
                                  97 PL_HandleEvent
                                    97 handleTimerEvent(TimerEventType*)
                                      97 nsTimerImpl::Fire()
                                        97 nsPluginInstanceOwner::Notify(nsITimer*)
                                          93 ns4xPluginInstance::HandleEvent(nsPluginEvent*, int*)
                                            93 dyld_stub_mach_absolute_time
                                              93 Flash_EnforceLocalSecurity
                                                93 Flash_EnforceLocalSecurity
                                                  90 dyld_stub_mach_absolute_time
                                                    84 dyld_stub_mach_absolute_time
                                                      84 sched_yield
                                                        84 swtch_pri
                                                          84 swtch_pri
                                                    6 Flash_EnforceLocalSecurity
                                                      5 dyld_stub_mach_absolute_time
                                                        5 dyld_stub_mach_absolute_time
                                                          5 dyld_stub_mach_absolute_time
                                                            5 dyld_stub_mach_absolute_time
                                                              5 dyld_stub_mach_absolute_time
                                                                5 dyld_stub_mach_absolute_time
                                                                  5 dyld_stub_mach_absolute_time
                                                                    5 dyld_stub_mach_absolute_time
                                                                      4 dyld_stub_mach_absolute_time
                                                                        4 dyld_stub_mach_absolute_time
                                                                          3 dyld_stub_mach_absolute_time
                                                                            2 dyld_stub_mach_absolute_time
                                                                              2 dyld_stub_mach_absolute_time
                                                                            1 dyld_stub_mach_absolute_time
                                                                          1 dyld_stub_mach_absolute_time
                                                                      1 dyld_stub_mach_absolute_time
                                                      1 Flash_EnforceLocalSecurity
                                                        1 Flash_EnforceLocalSecurity
                                                  2 Flash_EnforceLocalSecurity
                                                    2 Flash_EnforceLocalSecurity
                                                      1 RGBBackColor
                                                        1 SetPortRGBBackColor
                                                          1 InternalColor2Index
                                                            1 SetQDThreadError
                                                              1 GetQDThreadGlobals
                                                                1 GetQDThreadGlobals
                                                      1 RGBForeColor
                                                        1 GetThreadPortAndGDevice
                                                          1 GetQDThreadGlobals
                                                            1 GetThreadGlobals
                                                              1 GetThreadGlobals
                                                  1 +[NSAutoreleasePool allocWithZone:]
                                                    1 _NSCurrentThread
                                                      1 __moddi3
                                                        1 __moddi3
                                          2 nsChildView::StartDrawPlugin()
                                            2 nsChildView::GetPluginClipRect(nsRect&, nsPoint&, int&)
                                              2 -[NSView convertPoint:toView:]
                                                2 -[NSView _convertPoint:toAncestor:]
                                                  2 -[NSView _convertPoint:toAncestor:]
                                                    2 -[NSView _convertPoint:toAncestor:]
                                                      2 -[NSView _convertPoint:toAncestor:]
                                                        2 -[NSView _convertPoint:toAncestor:]
                                                          2 -[NSView _convertPoint:toAncestor:]
                                                            2 -[NSView _convertPoint:toAncestor:]
                                                              1 -[NSView _convertPoint:toAncestor:]
                                                                1 -[NSView _convertPoint:toAncestor:]
                                                                  1 -[NSView _convertPoint:toAncestor:]
                                                                    1 -[NSView _convertPointToSuperview:]
                                                                      1 -[NSView _convertPointToSuperview:]
                                                              1 -[NSView _convertPointToSuperview:]
                                                                1 objc_msgSend_rtp
                                                                  1 objc_msgSend_rtp
                                          1 InitializeEventRecord(EventRecord*)
                                            1 GetGlobalMouse
                                              1 CGSGetCurrentCursorLocation
                                                1 CGSCurrentInputPointerPosition
                                                  1 CGSScoreboard
                                                    1 CGSScoreboard
                                          1 nsPluginInstanceOwner::FixUpPluginWindow(int)
                                            1 nsChildView::GetPluginClipRect(nsRect&, nsPoint&, int&)
                                              1 -[NSView visibleRect]
                                                1 -[NSView visibleRect]
                                                  1 -[NSView visibleRect]
                                                    1 -[NSView visibleRect]
                                                      1 -[NSView visibleRect]
                                                        1 objc_msgSend_stret
                                                          1 objc_msgSend_stret
                              2 __CFRunLoopDoTimer
                                2 __NSFireDelayedPerform
                                  2 -[SiteIconProvider fetchFavoriteIconForPage:withIconLocation:allowNetwork:notifyingClient:]
                                    2 -[SiteIconProvider favoriteIconURLFromPageURL:]
                                      2 NeckoCacheHelper::GetFaviconLocationForPageURI(nsACString_internal const&, nsACString_internal&)
                                        2 NeckoCacheHelper::GetCanonicalPageURI(nsACString_internal const&, nsACString_internal&)
                                          1 nsCOMPtr_base::assign_from_gs_cid_with_error(nsGetServiceByCIDWithError const&, nsID const&)
                                            1 nsGetServiceByCIDWithError::operator()(nsID const&, void**) const
                                              1 nsComponentManagerImpl::GetService(nsID const&, nsID const&, void**)
                                                1 SearchTable
                                                  1 SearchTable
                                          1 nsIOService::NewURI(nsACString_internal const&, char const*, nsIURI*, nsIURI**)
                                            1 nsIOService::GetProtocolHandler(char const*, nsIProtocolHandler**)
                                              1 nsComponentManagerImpl::GetServiceByContractID(char const*, nsID const&, void**)
                                                1 SearchTable
                                                  1 SearchTable
                            1 __CFRunLoopDoObservers
                              1 isStrongMemory
                                1 isStrongMemory
    240 Thread_1003
      240 _pthread_body
        240 _pt_root
          240 nsThread::Main(void*)
            240 nsSocketTransportService::Run()
              240 nsSocketTransportService::Poll(unsigned*)
                240 PR_Poll
                  240 poll
                    240 select
                      240 select
    240 Thread_1103
      240 _pthread_body
        240 _pt_root
          240 nsThread::Main(void*)
            240 TimerThread::Run()
              239 PR_WaitCondVar
                239 pt_TimedWait
                  239 pthread_cond_timedwait
                    238 semaphore_timedwait_signal_trap
                      238 semaphore_timedwait_signal_trap
                    1 restore_sem_to_pool
                      1 restore_sem_to_pool
              1 nsTimerImpl::PostTimerEvent()
                1 nsEventQueueImpl::Release()
                  1 nsEventQueueImpl::Release()
    240 Thread_1203
      240 _pthread_body
        240 _pt_root
          240 nsSSLThread::Run()
            240 PR_WaitCondVar
              240 pthread_cond_wait
                240 semaphore_wait_signal_trap
                  240 semaphore_wait_signal_trap
    240 Thread_1303
      240 _pthread_body
        240 _pt_root
          240 nsCertVerificationThread::Run()
            240 PR_WaitCondVar
              240 pthread_cond_wait
                240 semaphore_wait_signal_trap
                  240 semaphore_wait_signal_trap
    240 Thread_1403
      240 _pthread_body
        240 __CFSocketManager
          240 select
            240 select
    240 Thread_1503
      240 _pthread_body
        240 Flash_EnforceLocalSecurity
          240 mach_msg
            240 mach_msg_trap
              240 mach_msg_trap
    240 Thread_1603
      240 _pthread_body
        240 dyld_stub_mach_absolute_time
          240 Flash_EnforceLocalSecurity
            240 dyld_stub_mach_absolute_time
              240 pthread_cond_wait
                240 semaphore_wait_signal_trap
                  240 semaphore_wait_signal_trap
    240 Thread_1703
      240 _pthread_body
        240 dyld_stub_mach_absolute_time
          240 Flash_EnforceLocalSecurity
            240 dyld_stub_mach_absolute_time
              240 pthread_cond_timedwait
                238 semaphore_timedwait_signal_trap
                  238 semaphore_timedwait_signal_trap
                2 __spin_lock
                  2 __spin_lock
    240 Thread_1803
      240 _pthread_body
        240 CAPThread::Entry(CAPThread*)
          240 HALRunLoop::OwnThread(void*)
            240 CFRunLoopRunSpecific
              240 __CFRunLoopRun
                240 mach_msg
                  240 mach_msg_trap
                    240 mach_msg_trap
    240 Thread_1903
      240 _pthread_body
        240 CAPThread::Entry(CAPThread*)
          240 HP_IOThread::ThreadEntry(HP_IOThread*)
            240 HP_IOThread::WorkLoop()
              235 CAGuard::WaitUntil(unsigned long long)
                235 CAGuard::WaitFor(unsigned long long)
                  235 pthread_cond_timedwait_relative_np
                    233 semaphore_timedwait_signal_trap
                      233 semaphore_timedwait_signal_trap
                    1 pthread_mutex_lock
                      1 semaphore_wait_trap
                        1 semaphore_wait_trap
                    1 restore_sem_to_pool
                      1 restore_sem_to_pool
              4 HP_IOThread::PerformIO(AudioTimeStamp const&)
                4 IOA_Device::CallIOProcs(AudioTimeStamp const&, AudioTimeStamp const&, AudioTimeStamp const&)
                  3 IOA_SingleDevice::WriteOutputData(AudioTimeStamp const&, unsigned long)
                    3 IOA_HWDevice::WriteOutputData(unsigned long, unsigned long, unsigned long, unsigned long long)
                      3 iokit_user_client_trap
                        3 iokit_user_client_trap
                  1 DefaultOutputAUEntry
                    1 DefaultOutputAUEntry
                      1 dyld_stub__keymgr_get_and_lock_processwide_ptr
                        1 DefaultOutputAUEntry
                          1 AudioConverterFillComplexBuffer
                            1 BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&, AudioStreamPacketDescription*)
                              1 AudioConverterChain::RenderOutput(CABufferList*, unsigned long, unsigned long&, AudioStreamPacketDescription*)
                                1 BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&, AudioStreamPacketDescription*)
                                  1 CBRConverter::RenderOutput(CABufferList*, unsigned long, unsigned long&, AudioStreamPacketDescription*)
                                    1 BufferedAudioConverter::GetInputBytes(unsigned long, unsigned long&, CABufferList const*&)
                                      1 AudioConverterChain::FillBufferFromInputProc(unsigned long*, unsigned long*, CABufferList*)
                                        1 AudioConverterChain::CallInputProc(unsigned long)
                                          1 dyld_stub__keymgr_get_and_lock_processwide_ptr
                                            1 dyld_stub__keymgr_get_and_lock_processwide_ptr
                                              1 DefaultOutputAUEntry
                                                1 AUHighShelfFilterEntry
                                                  1 DefaultOutputAUEntry
                                                    1 dyld_stub__keymgr_get_and_lock_processwide_ptr
                                                      1 DefaultOutputAUEntry
                                                        1 AudioConverterFillComplexBuffer
                                                          1 BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&, AudioStreamPacketDescription*)
                                                            1 AudioConverterChain::RenderOutput(CABufferList*, unsigned long, unsigned long&, AudioStreamPacketDescription*)
                                                              1 BufferedAudioConverter::FillBuffer(unsigned long&, AudioBufferList&, AudioStreamPacketDescription*)
                                                                1 CBRConverter::RenderOutput(CABufferList*, unsigned long, unsigned long&, AudioStreamPacketDescription*)
                                                                  1 StereoDeinterleave32_Altivec
                                                                    1 StereoDeinterleave32_Altivec
              1 HP_IOThread::WorkLoop()
    58 Thread_1a03
      58 _pthread_body
        58 _pt_root
          58 nsHostResolver::ThreadFunc(void*)
            58 nsHostResolver::GetHostToLookup(nsHostRecord**)
              58 PR_WaitCondVar
                58 pt_TimedWait
                  58 pthread_cond_timedwait
                    58 semaphore_timedwait_signal_trap
                      58 semaphore_timedwait_signal_trap
    43 Thread_1c03
      43 _pthread_body
        43 TimerThread
          43 TSWaitOnSemaphoreCommon
            43 pthread_cond_timedwait_relative_np
              43 semaphore_timedwait_signal_trap
                43 semaphore_timedwait_signal_trap
    13 Thread_2503
      13 _pthread_body
        13 TimerThread
          13 TSWaitOnSemaphoreCommon
            13 pthread_cond_timedwait_relative_np
              13 semaphore_timedwait_signal_trap
                13 semaphore_timedwait_signal_trap
    13 Thread_2603
      13 _pthread_body
        13 TimerThread
          13 TSWaitOnSemaphoreCommon
            13 pthread_cond_timedwait_relative_np
              13 semaphore_timedwait_signal_trap
                13 semaphore_timedwait_signal_trap
    2 Thread_1b03
      2 _pthread_body
        2 TimerThread
          2 TSWaitOnSemaphoreCommon
            2 pthread_cond_timedwait_relative_np
              2 semaphore_timedwait_signal_trap
                2 semaphore_timedwait_signal_trap
    1 Thread_1d03
      1 _pthread_body
        1 _pthread_body
    1 Thread_1e03
      1 _pthread_body
        1 _pthread_body
    1 Thread_1f03
      1 _pthread_body
        1 _pthread_body
    1 Thread_2003
      1 _pthread_body
        1 _pthread_body
    1 Thread_2103
      1 _pthread_body
        1 _pthread_body
    1 Thread_2203
      1 _pthread_body
        1 _pthread_body
    1 Thread_2303
      1 _pthread_body
        1 _pthread_body
    1 Thread_2403
      1 _pthread_body
        1 _pthread_body

Total number in stack (recursive counted multiple, when >=5):
        23       _pthread_body
        19       dyld_stub_mach_absolute_time
        10       -[NSView _convertPoint:toAncestor:]
        9       Flash_EnforceLocalSecurity
        8       semaphore_timedwait_signal_trap
        6       DefaultOutputAUEntry
        5       -[NSView visibleRect]
        5       _pt_root
        5       pthread_cond_timedwait_relative_np

Sort by top of stack, same collapsed (when >= 5):
        semaphore_timedwait_signal_trap        838
        semaphore_wait_signal_trap        720
        mach_msg_trap        620
        select        480
        swtch_pri        84
        _pthread_body        8
        dyld_stub_mach_absolute_time        5
Sample analysis of process 987 written to file /dev/stdout
Sampling process 987 each 10 msecs 300 times
What (if any) driver are you using for the mouse? If you're using a driver other than the one built into the OS, does disabling the driver change anything?

Have you ever been able to reproduce the problem without Flash being involved somehow? What version of Flash is installed on your Mac, and what are the specs (OS version/CPU speed/RAM) of your Mac? Does upgrading to Flash 10 (if you're still running version 9) make any difference?

cl
Does Camino recover after you stop sending scroll events?  Or do you have to force quit?

Also, in the future, please attach the sample using the "Add an attachment" link rather than pasting it in the comments; doing so keeps both the bug and the sample easier to read.  Thanks!
Summary: camino hangs when using microsoft mouse wheel to scroll web page. → camino hangs when using microsoft mouse wheel to scroll web page
Thank you for you interest in this bug.  

I am using Microsoft Mouse.app version 3.0 as a driver.

I launched the driver app install, and got a dialog claiming that a "KERNEL" was either missing or outdated.  So, I ran the installation to update the mouse driver.  Since that time, the problem has disappeared and all the web pages I've visited have scrolled normally by using the mouse wheel.  

This seems to have solved the problem.

I apologize for pasting the "sample" in the comment window, as I was unable to find the attachment link on the bug reporting page.

Thank you again,

Peter Watson
Closing this WFM based on comment 3; glad that updating your mouse driver resolved things for you :)
Status: UNCONFIRMED → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
INVALID, actually, since it appears to have been a bug in an older version of the MS mouse driver.
Resolution: WORKSFORME → INVALID
You need to log in before you can comment on or make changes to this bug.