[Xquartz-dev] xterm original window hangs after launching and closing another xterm window

Scott Johnson sjohnson.imi at gmail.com
Tue Aug 5 12:55:14 PDT 2008


On Tue, Aug 5, 2008 at 3:43 PM, Jeremy Huddleston <jeremyhu at apple.com> wrote:
> On Aug 5, 2008, at 12:21, Scott Johnson wrote:
>>>> Running XQuartz 2.3.0 (xorg-server 1.4.2-apple5)
>>>> Under Mac OS X 10.5.4 on a G5
>>>>
>>>> If I start xterm (either from the terminal or by starting X11 or with
>>>> the applications menu in X11) and start another xterm from the
>>>> applications menu in X11, the first xterm hangs when I type "exit" to
>>>> close the second.
>>>>
>>>> If I start three xterms and then close the third, the second remains
>>>> functional but the first hangs.

>>> This sounds like the kernel issue...  Is xterm using 100% CPU in top?
>>>

>> No. It's idling at 0%. CPU usage doesn't spike when the orig xterm
>> hangs. It's just frozen dead.

> Are you able to move it?  Can you do a trace of the xterm, quartz-wm, and
> X11.app processes using Activity Monitor.app please?

Yes, I can move the xterm window after it hangs.

Sampling with Activity Monitor gives:

xterm:
--------

sample cannot examine process 5276 for unknown reasons, even though it
appears to exist.

*********

quartz-wm:
---------
Sampling process 5260 for 1 seconds with 1 millisecond of run time
between samples
Sampling completed, processing symbols...
Analysis of sampling quartz-wm (pid 5260) every 1 millisecond
Call graph:
    862 Thread_2503
      862 start
        862 main
          862 CFRunLoopRun
            862 CFRunLoopRunSpecific
              861 mach_msg
                861 mach_msg_trap
                  861 mach_msg_trap
              1 __CFSocketPerformV0
                1 __CFSocketEnableCallBacks
                  1 sendto$UNIX2003
                    1 sendto$UNIX2003
    862 Thread_2603
      862 __CFSocketManager
        862 select$DARWIN_EXTSN
          862 select$DARWIN_EXTSN

Total number in stack (recursive counted multiple, when >=5):

Sort by top of stack, same collapsed (when >= 5):
        select$DARWIN_EXTSN        862
        mach_msg_trap        861
Sample analysis of process 5260 written to file /dev/stdout

**********

and X11:
----------

Sampling process 5230 for 3 seconds with 1 millisecond of run time
between samples
Sampling completed, processing symbols...
Analysis of sampling X11 (pid 5230) every 1 millisecond
Call graph:
    2314 Thread_2503
      2310 start
        2310 main
          2310 mach_msg_server
            2310 mach_startup_server
              2310 _Xstart_x11_server
                2310 do_start_x11_server
                  2310 server_main
                    2310 X11ApplicationMain
                      2310 -[NSApplication run]
                        2308 -[NSApplication
nextEventMatchingMask:untilDate:inMode:dequeue:]
                          2308 _DPSNextEvent
                            2303 BlockUntilNextEventMatchingListInMode
                              2303 ReceiveNextEventCommon
                                2303 RunCurrentEventLoopInMode
                                  2303 CFRunLoopRunSpecific
                                    2289 mach_msg
                                      2289 mach_msg_trap
                                        2289 mach_msg_trap
                                    9 __CFMachPortPerform
                                      9
PullEventsFromWindowServerOnConnection(unsigned int, unsigned char)
                                        7 CGEventCreateNextEvent
                                          7 CGSGetNextEventRecordInternal
                                            7 snarfEvents
                                              7 _CGSGetPortStreamInline
                                                7 mach_msg
                                                  7 mach_msg_trap
                                                    7 mach_msg_trap
                                        1
ConvertPlatformEventRecordAndPostWithOptions(__CGEvent*,
_CGSEventRecord const*, short, unsigned char, unsigned char)
                                          1 PostEventToQueueInternal
                                            1 _NotifyEventLoopObservers
                                              1 SCTKeyEventObserver
                                                1 objc_msgSend_rtp
                                                  1 objc_msgSend_rtp
                                        1 _EventThreadLock
                                          1 dyld_stub_pthread_once
                                            1 dyld_stub_pthread_once
                                    3 __CFRunLoopDoObservers
                                      2 _handleWindowsNeedUpdateNote
                                        2 -[NSApplication updateWindows]
                                          1
-[NSApplication(NSWindowCache) _updateWindowsUsingCache]
                                            1 -[__NSPlaceholderArray
initWithCapacity:]
                                              1 _CFArraySetCapacity
                                                1 _CFArraySetCapacity
                                          1 -[NSNotificationCenter
postNotificationName:object:userInfo:]
                                            1 _CFXNotificationPostNotification
                                              1 CFDictionaryGetValue
                                                1 __CFDictionaryFindBuckets1b
                                                  1 CFHash
                                                    1 CFHash
                                      1
FlushAllBuffers(__CFRunLoopObserver*, unsigned long, void*)
                                        1
FlushAllBuffers(__CFRunLoopObserver*, unsigned long, void*)
                                    1 CFSetApplyFunction
                                      1 __CFRunLoopCollectSources0
                                        1 __CFRunLoopCollectSources0
                                    1 __addHandler2
                                      1 __addHandler2
                            3 _DPSNextEvent
                            2 SendEventToEventTarget
                              2
SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*,
HandlerCallRec*)
                                2
DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*,
HandlerCallRec*)
                                  2
ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*,
OpaqueEventRef*, void*)
                                    2 FindWindowAndPartFromMouseEvent
                                      2 FindWindow
                                        2 FindWindowOfClass
                                          2 FindWindowCommon(Point,
OpaqueWindowPtr**, short*)
                                            1 FindPlatformWindow
                                              1 CGSFindWindowAndOwner
                                                1 _CGSFindWindow
                                                  1 mach_msg
                                                    1 mach_msg_trap
                                                      1 mach_msg_trap
                                            1 MBarHit
                                              1 _MBarHit(MenuData*,
Point, unsigned char*, MenuData**)
                                                1 GetControlOwner
                                                  1
HIView::FindHIView(OpaqueControlRef*)
                                                    1
HIObject::IsRefValid(void*)
                                                      1 HLTBSearchRefTable
                                                        1 HLTBSearchRefTable
                        2 -[X11Application sendEvent:]
                          1 -[NSScreen frame]
                            1 _NXGetScreenRect
                              1 CGSGetDisplayBounds
                                1 unlockDisplay
                                  1 CGSShmemRWLockUnlockForReading
                                    1 CGSLockShmemLockWithTimeout
                                      1 _CG_spin_lock_try
                                        1 _CG_spin_lock_try
                          1 DarwinSendPointerEvents
                            1 DarwinPokeEQ
                              1 write$UNIX2003
                                1 write$UNIX2003
      4 _sigtramp
        4 _sigtramp
    2314 Thread_2603
      2314 _pthread_start
        2314 CAPThread::Entry(CAPThread*)
          2314 HALRunLoop::OwnThread(void*)
            2314 CFRunLoopRunSpecific
              2314 mach_msg
                2314 mach_msg_trap
                  2314 mach_msg_trap
    2314 Thread_2703
      2314 _pthread_start
        2314 server_thread
          2314 dix_main
            2314 Dispatch
              2310 WaitForSomething
                2307 select$DARWIN_EXTSN
                  2307 select$DARWIN_EXTSN
                3 __error
                  3 __error
              4 ProcessInputEvents
                3 mieqProcessInputEvents
                  2 ProcessPointerEvent
                    2 CoreProcessPointerEvent
                      2 CheckMotion
                        2 XYToWindow
                          2 XYToWindow
                  1 SwitchCorePointer
                    1 SwitchCorePointer
                1 read$UNIX2003
                  1 read$UNIX2003
    2314 Thread_2803
      2314 _pthread_start
        2314 _xp_async_thread
          2314 _xp_async_dequeue
            2314 _pthread_cond_wait
              2314 __semwait_signal
                2314 __semwait_signal

Total number in stack (recursive counted multiple, when >=5):

Sort by top of stack, same collapsed (when >= 5):
        mach_msg_trap        4611
        __semwait_signal        2314
        select$DARWIN_EXTSN        2307
Sample analysis of process 5230 written to file /dev/stdout

**********


More information about the Xquartz-dev mailing list