Simon icon Simon
Flexible server monitoring

Freezing on Xserve

I'm running Simon on a G4 Xserve (10.5.6) Around 22 tests are specified and none of them overlap & execute at the same time.

Seems like Simon won't get through even 8 hours without freezing up.

Nothing in the crash log to report. Where else can I check, or is there anything I can do within Simon's preferences to overcome this issue?

David Sinclair's picture

Re: Freezing on Xserve

That's rather unusual. If it's freezing (becoming unresponsive without crashing), there may be relevant info in the hang log. Take a look in the directory "/Library/Logs/HangReporter/Simon". The Console log might also have a clue.

What kinds of services are you using for the tests?

Hang Logs

I found the hang reports. A couple of them are posted below.

Most of the services are plain HTTP (no authentication). I recently added a new HTTP test with Smart Change Detection, but I'm not certain that the crashing started after this test was added.

Date/Time: 2008-12-30 07:38:34 -0500
OS Version: 10.5.6 (Build 9G55)
Architecture: ppc
Report Version: 4

Command: Simon
Path: /Applications/Simon.app/Contents/MacOS/Simon
Version: 2.4.2 (2043)
Parent: launchd [235]

PID: 31488
Event: hang
Time: 7.25s
Steps: 10

Date/Time: 2008-12-30 20:15:31 -0500
OS Version: 10.5.6 (Build 9G55)
Architecture: ppc
Report Version: 4

Command: Simon
Path: /Applications/Simon.app/Contents/MacOS/Simon
Version: 2.4.2 (2043)
Parent: launchd [235]

PID: 48184
Event: hang
Time: 8.34s
Steps: 21

David Sinclair's picture

Re: Hang Logs

Hmm. I think the next diagnostic step would be to get a sample of the app when it is hung. Use Activity Monitor (in /Applications/Utilities) and click the Sample toolbar button to capture a sample of the app while it is unresponsive, then upload or email that to me. It will show exactly what Simon is doing at the time.

Sample Activity Captured

Here is a capture of Simon after it hung again. Hope it's what you were looking for.

Sampling process 57279 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling Simon (pid 57279) every 1 millisecond
Call graph:
1474 Thread_2503
1474 start
1474 _start
1474 NSApplicationMain
1474 -[NSApplication run]
1474 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
1474 _DPSNextEvent
1474 BlockUntilNextEventMatchingListInMode
1474 ReceiveNextEventCommon
1474 RunCurrentEventLoopInMode
1474 CFRunLoopRunSpecific
1474 MultiplexerSource::perform()
1474 URLConnectionClient::processEvents()
1474 URLConnectionClient::ClientConnectionEventQueue::processAllEventsAndConsumePayload(XConnectionEventInfo*, long)
1474 URLConnectionClient::clientDidFinishLoading()
1474 _NSURLConnectionDidFinishLoading
1474 -[URLElementData connectionDidFinishLoading:]
1474 +[NSHTTPCookie cookiesWithResponseHeaderFields:forURL:]
1474 CFHTTPCookieCreateWithResponseHeaderFields
1474 CFDictionaryGetValue
1474 CFDictionaryGetValue
1474 Thread_2603
1474 __monitor_file_descriptor__
1474 kevent
1474 kevent
1474 Thread_2703
1474 _pthread_start
1474 fe_fragment_thread
1474 _pthread_cond_wait
1474 __semwait_signal
1474 __semwait_signal
1474 Thread_2803
1470 _pthread_start
1470 __NSThread__main__
1470 -[NSUIHeartBeat _heartBeatThread:]
826 usleep$UNIX2003
821 nanosleep$UNIX2003
821 __semwait_signal
821 __semwait_signal
5 cerror
5 cerror
313 CGSFlushSurfaceWithOptions
188 _CGSGetSurfaceBinding
179 mach_msg
177 mach_msg_trap
177 mach_msg_trap
2 mach_msg
7 _CGSGetSurfaceBinding
2 mig_get_reply_port
2 mig_get_reply_port
118 _CGSFlushSurfaceInline
110 mach_msg
109 mach_msg_trap
109 mach_msg_trap
1 mach_msg
6 _CGSFlushSurfaceInline
2 mig_get_reply_port
1 dyld_stub_pthread_self
1 dyld_stub_pthread_self
1 mig_get_reply_port
3 _CGSConnectionByID
3 _CGSConnectionByID
3 _CGSWindowByID
3 _CGSWindowByID
1 CGSFlushSurfaceWithOptions
191 -[NSProgressIndicator heartBeat:]
149 __NSRenderSpinningIndeterminateIndicator
138 CUIRenderer::Draw(CGRect, CGContext*, __CFDictionary const*, __CFDictionary const**)
113 CUIRenderer::DrawAnimation(CUIContext const*)
108 CUIRenderer::DrawImage(CGRect, long, CUIContext const*)
42 CGContextDrawImage
20 ripc_DrawImage
15 ripc_RenderImage
15 ripl_BltImage
12 ripd_Mark
12 ARGB32_image
7 ARGB32_image_mark
5 ARGB32_sample_ARGB32
5 ARGB32_sample_ARGB32
2 ARGB32_image_mark
3 _blt_image_initialize
3 _blt_image_initialize
1 ARGB32_image
1 ARGB32_image_mark_RGB32
1 ARGB32_image_mark_RGB32
2 CGSDeviceUnlock
1 CGSBoundingShapeAdd
1 shape_accum_add_bounds
1 shape_accum_add_bounds
1 _CGSUnlockWindow
1 CGSRMWLockEnterCritialSectionUnlock
1 CGSRMWLockEnterCritialSectionUnlock
1 CGBlt_initialize
1 CGBlt_initialize
3 ripc_GetRenderingState
3 ripd_Geometry
2 CGSDeviceGetGeometry
2 CGSDeviceGetGeometry
1 dyld_stub_CGSDeviceGetGeometry
1 dyld_stub_CGSDeviceGetGeometry
2 ripc_DrawImage
12 ripc_RenderImage
11 ripl_BltImage
11 ripl_BltImage
1 dyld_stub_CGGStateGetAlpha
1 dyld_stub_CGGStateGetAlpha
3 ripc_AcquireImage
2 ripc_AcquireImage
1 bcmp
1 bcmp
3 ripc_GetRenderingState
2 ripc_GetRenderingState
1 ripd_Geometry
1 ripd_Geometry
1 CGImageGetShouldInterpolate
1 CGImageGetShouldInterpolate
1 dyld_stub_CGImageGetEPSRep
1 dyld_stub_CGImageGetEPSRep
1 dyld_stub_CGRenderingStateGetMaxInterpolationQuality
1 dyld_stub_CGRenderingStateGetMaxInterpolationQuality
1 ripc_ReleaseImage
1 ripc_ReleaseImage
42 CUIRenderer::CreateImage(long, CUIContext const*, CGRect*, float*, long*, unsigned char*)
39 __CFString::Create(__CFDictionary const*, __CFString const*, ...)
39 _CFStringCreateWithFormatAndArgumentsAux
34 _CFStringAppendFormatAndArgumentsAux
13 snprintf_l$LDBL128
13 __vfprintf$LDBL128
6 __vfprintf$LDBL128
5 __dtoa
2 __d2b_D2A
1 __Balloc_D2A
1 __Balloc_D2A
1 dyld_stub___Balloc_D2A
1 dyld_stub___Balloc_D2A
2 __rv_alloc_D2A
1 __Balloc_D2A
1 __Balloc_D2A
1 __Bfree_D2A
1 __Bfree_D2A
1 __dtoa
1 __Bfree_D2A
1 __Bfree_D2A
1 dyld_stub___sfvwrite
1 dyld_stub___sfvwrite
10 _CFStringAppendFormatAndArgumentsAux
6 __CFStringAppendBytes
5 __CFStringChangeSizeMultiple
4 __CFStringChangeSizeMultiple
1 malloc_good_size
1 malloc_good_size
1 __CFStringAppendBytes
3 __CFStringChangeSizeMultiple
3 __CFStringChangeSizeMultiple
1 CFStringAppendCString
1 strlen
1 strlen
1 dyld_stub_pthread_getspecific
1 dyld_stub_pthread_getspecific
4 CFStringCreateCopy
4 __CFStringCreateImmutableFunnel3
2 _CFRuntimeCreateInstance
1 malloc_size
1 malloc_size
1 szone_malloc
1 tiny_malloc_from_free_list
1 tiny_malloc_from_free_list
2 __CFStringCreateImmutableFunnel3
1 __CFStringDeallocate
1 szone_free
1 szone_free
2 CUICache::Copy(void const*, void const**)
2 CFSetGetValue
1 CFSetGetValue
1 _CFHash
1 _CFHash
1 CUIRenderer::CreateImage(long, CUIContext const*, CGRect*, float*, long*, unsigned char*)
7 CopyDefaultEffectsArray(long, CUIContext const*, bool*)
2 CUISharedArtReader::GetImageHeader(long)
1 CUISharedArtReader::GetImageHeader(long)
1 TSUnlockMutex
1 TSUnlockMutex
2 CopyDefaultEffectsArray(long, CUIContext const*, bool*)
2 __CFArrayInit
1 _CFRuntimeCreateInstance
1 szone_malloc
1 tiny_malloc_from_free_list
1 tiny_malloc_from_free_list
1 __CFArrayInit
1 CUISharedArtReader::GetImageType(long)
1 CUISharedArtReader::GetImageType(long)
5 CUIRenderer::DrawImage(CGRect, long, CUIContext const*)
3 CGContextRotateCTM
3 CGAffineTransformRotate
3 CGAffineTransformMakeRotation
2 cosf
2 cos
2 cos
1 CGAffineTransformMakeRotation
3 _CFRelease
1 CFAllocatorDeallocate
1 CFAllocatorDeallocate
1 __CFArrayDeallocate
1 __CFArrayDeallocate
1 __CFArrayReleaseValues
1 __CFArrayReleaseValues
2 CGContextTranslateCTM
1 CGAffineTransformTranslate
1 CGAffineTransformTranslate
1 CGContextTranslateCTM
1 CGContextRestoreGState
1 CGGStackRestore
1 renderingStateRelease
1 renderingStateRelease
1 CGContextSaveGState
1 CGGStackSave
1 CGGStateCreateCopy
1 calloc
1 malloc_zone_calloc
1 szone_calloc
1 szone_calloc
1 CGImageRelease
1 CGImageRelease
1 _CUIDebugDrawBox
1 pthread_once
1 dyld_stub__spin_lock
1 dyld_stub__spin_lock
3 _CUICalcAlignedBounds(CGRect*, CGRect, float, float, long, long, unsigned char, unsigned char)
3 _CUICalcAlignedBounds(CGRect*, CGRect, float, float, long, long, unsigned char, unsigned char)
1 CFArrayGetCount
1 CFArrayGetCount
1 CGRectGetWidth
1 CGRectGetWidth
11 CUIRenderer::DecodeToCUIInfo(CGRect, CGContext*, __CFDictionary const*, CUIInfo*)
3 CFNumberGetValue
2 __memcpy
2 __memcpy
1 dyld_stub_memmove
1 dyld_stub_memmove
3 __CFDictionaryFindBuckets1b
2 __CFDictionaryFindBuckets1b
1 CFHash
1 CFHash
2 CUIRenderer::DecodeToCUIInfo(CGRect, CGContext*, __CFDictionary const*, CUIInfo*)
2 dyld_stub_CFDictionaryGetValue
2 dyld_stub_CFDictionaryGetValue
1 CFDictionaryGetValue
1 CFDictionaryGetValue
5 CUIRenderer::Draw(CGRect, CGContext*, __CFDictionary const*, __CFDictionary const**)
2 _CUIDebugShowInputBounds
2 _CUIDebugShowInputBounds
1 CFDictionaryGetValue
1 CFDictionaryGetValue
1 CGContextRestoreGState
1 CGGStackRestore
1 szone_free
1 szone_free
1 CUIPenCG::GetCTM(void*)
1 CGContextGetCTM
1 CGContextGetCTM
1 CUIRenderer::Draw(CGRect, CGContext*, __CFDictionary const*, __CFDictionary const**)
1 CGAffineTransformInvert
1 CGAffineTransformInvert
1 CUIRenderer::EncodeToCUIReturnInfo(CUIReturnInfo&, __CFDictionary const**)
1 CUIRenderer::EncodeToCUIReturnInfo(CUIReturnInfo&, __CFDictionary const**)
1 roundf
1 roundf
1 sqrtf
1 __sqrt
1 __sqrt
3 CFDictionaryRemoveAllValues
2 CFDictionaryRemoveAllValues
1 _CFRelease
1 _CFRelease
2 CFDictionarySetValue
1 CFDictionarySetValue
1 CFRetain
1 CFRetain
2 CFRelease
2 CFRelease
2 objc_msgSend_rtp
2 objc_msgSend_rtp
1 -[NSProgressIndicator controlSize]
1 -[NSProgressIndicator controlSize]
1 CFNumberCreate
1 dyld_stub_memmove
1 dyld_stub_memmove
17 -[NSView convertRect:fromView:]
16 -[NSView _convertRect:fromAncestor:]
14 -[NSView _convertRect:fromAncestor:]
14 -[NSView _convertRect:fromAncestor:]
10 -[NSView _convertRect:fromAncestor:]
9 -[NSView _convertRect:fromAncestor:]
9 -[NSView _convertRect:fromAncestor:]
9 -[NSView _convertRect:fromAncestor:]
7 -[NSView _convertRect:fromAncestor:]
4 objc_msgSend_stret
4 objc_msgSend_stret
3 -[NSView _convertRect:fromAncestor:]
2 -[NSView _convertRectFromSuperview:test:]
2 -[NSView _convertRectFromSuperview:test:]
1 objc_msgSend_stret
1 objc_msgSend_stret
1 -[NSView _convertRect:fromAncestor:]
1 -[NSView _convertRectFromSuperview:test:]
1 objc_msgSend_rtp
1 objc_msgSend_rtp
1 -[NSView _convertRectFromSuperview:test:]
1 -[NSView _convertRectFromSuperview:test:]
2 -[NSView _convertRectFromSuperview:test:]
2 objc_msgSend_rtp
2 objc_msgSend_rtp
2 malloc_size
2 objc_msgSend_stret
2 objc_msgSend_stret
1 dyld_stub_objc_msgSend_stret
1 dyld_stub_objc_msgSend_stret
1 objc_msgSend_stret
1 objc_msgSend_stret
1 -[NSView convertRect:fromView:]
16 -[NSSurface lockFocusIfCanDraw]
7 CGContextSaveGState
5 CGGStackSave
4 CGGStateCreateCopy
2 CGGStateRenderingCopy
2 CGGStateRenderingCopy
1 CGGStateStrokeCopy
1 CGGStateStrokeCopy
1 CGGStateTextCopy
1 CGGStateTextCopy
1 CGGStackSave
1 CGContextSaveGState
1 push
1 push
5 +[NSGraphicsContext setCurrentContext:]
3 -[NSObject release]
2 __CFDoExternRefOperation
1 CFBagContainsValue
1 CFBagContainsValue
1 __CFDoExternRefOperation
1 -[NSObject release]
1 -[NSObject retain]
1 __CFDoExternRefOperation
1 CFBagAddValue
1 CFBagAddValue
1 objc_msgSend_rtp
1 objc_msgSend_rtp
2 dyld_stub_CGContextSaveGState
2 dyld_stub_CGContextSaveGState
1 -[NSObject retain]
1 __CFDoExternRefOperation
1 CFBagAddValue
1 CFBagAddValue
1 objc_msgSend_rtp
1 objc_msgSend_rtp
3 -[NSProgressIndicator heartBeat:]
2 objc_msgSend_stret
2 objc_msgSend_stret
1 dyld_stub_CFDictionarySetValue
1 dyld_stub_CFDictionarySetValue
1 dyld_stub_CGContextSetCompositeOperation
1 dyld_stub_CGContextSetCompositeOperation
1 dyld_stub_objc_msgSend_stret
1 dyld_stub_objc_msgSend_stret
1 objc_msgSend_rtp
1 objc_msgSend_rtp
90 -[NSSurface flush]
85 ripc_Operation
76 CGSDeviceSynchronize
60 _CGSFlushRegionInline
49 mach_msg
47 mach_msg_trap
47 mach_msg_trap
1 dyld_stub_mach_msg_trap
1 dyld_stub_mach_msg_trap
1 mach_msg
11 _CGSFlushRegionInline
10 CGSReleaseRegion
7 _CFRelease
4 regionFinalize
1 __spin_lock
1 __spin_lock
1 dyld_stub__spin_lock
1 dyld_stub__spin_lock
1 szone_free
1 szone_free
1 tiny_free_list_add_ptr
1 tiny_free_list_add_ptr
1 CFAllocatorDeallocate
1 CFAllocatorDeallocate
1 objc_collecting_enabled
1 objc_collecting_enabled
1 tiny_free_list_add_ptr
1 tiny_free_list_add_ptr
2 CGSReleaseRegion
1 CFGetTypeID
1 CFGetTypeID
4 CGSBoundingShapeGetRegion
3 shape_accum_shape
2 malloc_zone_malloc
2 szone_malloc
2 tiny_malloc_from_free_list
2 tiny_malloc_from_free_list
1 __memcpy
1 __memcpy
1 CGSNewRegion
1 CGTypeCreateInstanceWithAllocator
1 _CFRuntimeCreateInstance
1 szone_malloc
1 dyld_stub__spin_unlock
1 dyld_stub__spin_unlock
2 CGSBoundingShapeReset
2 CGSBoundingShapeReset
5 ripc_Synchronize
3 ripc_Synchronize
1 __mach_absolute_time
1 __mach_absolute_time
1 dyld_stub_mach_absolute_time
1 dyld_stub_mach_absolute_time
3 ripc_Operation
1 dyld_stub_CGSDeviceSynchronize
1 dyld_stub_CGSDeviceSynchronize
4 objc_msgSend_rtp
4 objc_msgSend_rtp
1 -[NSSurface flush]
9 -[NSSurface unlockFocus]
7 +[NSGraphicsContext setCurrentContext:]
2 +[NSGraphicsContext setCurrentContext:]
2 -[NSObject release]
2 __CFDoExternRefOperation
1 CFBagRemoveValue
1 __CFBagFindBuckets1a
1 __CFBagFindBuckets1a
1 dyld_stub_OSSpinLockLock
1 dyld_stub_OSSpinLockLock
2 objc_msgSend_rtp
2 objc_msgSend_rtp
1 -[NSObject isKindOfClass:]
1 dyld_stub_class_getSuperclass
1 dyld_stub_class_getSuperclass
2 CGContextRestoreGState
2 CGGStackRestore
2 CGGStateRelease
2 CGGStateStrokeRelease
2 CGGStateStrokeRelease
7 -[NSSet makeObjectsPerformSelector:]
7 -[NSWindow flushWindow]
3 objc_msgSend_rtp
3 objc_msgSend_rtp
2 -[NSViewHierarchyLock lockForReadingWithExceptionHandler:]
1 _CFDoExceptionOperation
1 objc_assign_strongCast_rtp
1 objc_assign_strongCast_rtp
1 pthread_mutex_lock
1 pthread_mutex_lock
1 -[NSWindow isFlushWindowDisabled]
1 -[NSWindow _realHeartBeatThreadContext]
1 -[NSWindow _realHeartBeatThreadContext]
1 CGContextFlush
1 CGContextFlush
7 -[NSViewHierarchyLock unlock]
4 -[NSViewHierarchyLock unlock]
1 __NSAppKitGetThreadSpecificData
1 dyld_stub_pthread_getspecific
1 dyld_stub_pthread_getspecific
1 getState
1 getState
1 pthread_mutex_lock
1 pthread_mutex_lock
6 CFSetAddValue
4 CFSetAddValue
1 CFHash
1 CFHash
1 objc_msgSend
1 objc_msgSend
5 -[NSWindow _copyAcquiredViewHierarchyLock]
4 -[NSViewHierarchyLock lockForReadingWithExceptionHandler:]
2 objc_msgSend_rtp
2 objc_msgSend_rtp
1 -[NSRecursiveLock isLocking]
1 -[NSRecursiveLock isLocking]
1 pushState
1 pushState
1 -[NSView canDraw]
1 -[NSView canDraw]
4 -[NSView visibleRect]
3 -[NSView visibleRect]
1 -[NSView(NSPrivateHLTBSupport) _boundToHIView]
1 objc_msgSend_rtp
1 objc_msgSend_rtp
3 objc_msgSend_rtp
3 objc_msgSend_rtp
2 -[NSView canDraw]
1 objc_is_finalized
1 objc_is_finalized
1 objc_msgSend_rtp
1 objc_msgSend_rtp
2 NSPopAutoreleasePool
1 NSPopAutoreleasePool
1 dyld_stub_objc_assign_strongCast
1 dyld_stub_objc_assign_strongCast
1 -[NSObject retain]
1 -[NSObject retain]
1 -[NSViewHierarchyLock release]
1 __atomic_add32
1 __atomic_add32
1 -[NSWindow release]
1 -[NSWindow release]
1 CFAbsoluteTimeGetCurrent
1 gettimeofday
1 __gettimeofday
1 __gettimeofday
1 dyld_stub_CGSFlushSurface
1 dyld_stub_CGSFlushSurface
4 __NSThread__main__
4 -[NSUIHeartBeat _heartBeatThread:]
4 -[NSUIHeartBeat _heartBeatThread:]
1474 Thread_2903
1474 _pthread_start
1474 __NSThread__main__
1474 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]
1474 CFRunLoopRunSpecific
1474 mach_msg
1474 mach_msg_trap
1474 mach_msg_trap
1474 Thread_2a03
1474 __CFSocketManager
1474 select$DARWIN_EXTSN
1474 select$DARWIN_EXTSN
1474 Thread_2b03
1474 _pthread_start
1474 CFURLCacheWorkerThread(void*)
1474 CFRunLoopRunSpecific
1474 mach_msg
1474 mach_msg_trap
1474 mach_msg_trap

Total number in stack (recursive counted multiple, when >=5):
13 objc_msgSend_rtp
9 -[NSView _convertRect:fromAncestor:]
5 mach_msg
5 mach_msg_trap
5 objc_msgSend_stret

Sort by top of stack, same collapsed (when >= 5):
mach_msg_trap 3281
__semwait_signal 2295
CFDictionaryGetValue 1476
kevent 1474
select$DARWIN_EXTSN 1474
objc_msgSend_rtp 24
_CGSFlushRegionInline 11
ripl_BltImage 11
_CFStringAppendFormatAndArgumentsAux 10
objc_msgSend_stret 10
_CGSGetSurfaceBinding 7
__CFStringChangeSizeMultiple 7
_CGSFlushSurfaceInline 6
__vfprintf$LDBL128 6
ARGB32_sample_ARGB32 5
CUIRenderer::Draw(CGRect, CGContext*, __CFDictionary const*, __CFDictionary const**) 5
CUIRenderer::DrawImage(CGRect, long, CUIContext const*) 5
cerror 5
Sample analysis of process 57279 written to file /dev/stdout

David Sinclair's picture

Re: Sample Activity Captured

Unfortunately the formatting was lost when you pasted that in, so I can't tell the hierarchy. But I'm not sure it'd be all that helpful after all.

One other idea could be for you to email me your data, using the email link at the top of the Contact page, so I can try it myself. I will of course keep it confidential (don't post it in the forum). There's no guarantee the problem would occur for me, but it's worth trying. If I can recreate it, I should be able to fix it.