[squeak-dev] Mac VM hanging

David T. Lewis lewis at mail.msen.com
Mon Jun 27 03:37:41 UTC 2011


Bob,

Are you saying that your code runs fine for six or more minutes, or
are you saying that it runs fine for 6 minutes and then hangs? In other
words, does it happen only when you wrap your code in MessageTally,
or does MessageTally just seem to make it happen sooner?

I don't know the Mac environment, but on the face of it this sounds
like a system that is trying to grow object memory beyond available
memory and just getting bogged down and unresponsive. Is there a code
snippet you can share to reproduce?

Dave

On Sun, Jun 26, 2011 at 01:48:52PM -0400, Bob Arning wrote:
> Hi,
> 
> I've been using the all-in-one 4.2 Squeak and can't figure out why the 
> VM is hanging. I have some code that runs fine for about six minutes, 
> but if I wrap it in a
> MessageTally spyOn: [], then the VM will hang after a while (typically 
> 30 to 90 seconds). CMD-period does not wake it up. According to the 
> activity monitor, cpu remains right around 100% and real memory at 
> around 180 meg. Activity Monitor sampling output attached below. Any 
> suggestions?
> 
> Cheers,
> Bob
> 
> Sampling process 71029 for 1 seconds with 1 millisecond of run time 
> between samples
> Sampling completed, processing symbols...
> Analysis of sampling Squeak VM Opt (pid 71029) every 1 millisecond
> Call graph:
>     880 Thread_2507
>       543 markAndTrace
>         543 markAndTrace
>       247 updatePointersInRangeFromto
>         247 updatePointersInRangeFromto
>       63 sweepPhase
>         63 sweepPhase
>       8 interpret
>         8 interpret
>       6 updatePointersInRootObjectsFromto
>         6 updatePointersInRootObjectsFromto
>       5 aioPoll
>         3 select$DARWIN_EXTSN$NOCANCEL
>           3 select$DARWIN_EXTSN$NOCANCEL
>         2 __memcpy
>           2 __memcpy
>       3 ioProcessEvents
>         3 ReceiveNextEvent
>           3 ReceiveNextEventCommon
>             3 RunCurrentEventLoopInMode
>               3 CFRunLoopRunInMode
>                 3 CFRunLoopRunSpecific
>                   3 __CFRunLoopDoObservers
>                     2 FlushAllBuffers(__CFRunLoopObserver*, unsigned 
> long, void*)
>                       1 FlushWindowObject(WindowData*, void**, unsigned 
> char)
>                         1 GetWindowPropertyCore(WindowData*, unsigned 
> long, unsigned long, unsigned long, unsigned long*, void*)
>                           1 HIGetCollectionItem
>                             1 GetCollectionItem
>                               1 FindItem(OpaqueCollection*, unsigned 
> long, long, unsigned long*)
>                                 1 CollectionItemRec::getTag()
>                                   1 CollectionItemRec::getTag()
>                       1 IsSafeToCallApplication
>                         1 GetTaskStorageKeyForSafeToCall
>                           1 GetTaskStorageKeyForSafeToCall
>                     1 bsd_qsort
>                       1 __CFRunLoopObserverQSortComparator
>                         1 __CFRunLoopObserverQSortComparator
>       2 mapPointersInObjectsFromto
>         2 mapPointersInObjectsFromto
>       1 instantiateSmallClasssizeInBytes
>         1 instantiateSmallClasssizeInBytes
>       1 ioMicroMSecs
>         1 gettimeofday
>           1 __gettimeofday
>             1 __nanotime
>               1 __nanotime
>       1 markAndTraceInterpreterOops
>         1 markAndTraceInterpreterOops
>     880 Thread_2603
>       880 thread_start
>         880 _pthread_start
>           880 TimerThread
>             880 TSWaitOnSemaphoreCommon
>               880 TSWaitOnConditionTimedRelative
>                 880 pthread_cond_timedwait_relative_np
>                   880 _pthread_cond_wait
>                     879 semaphore_timedwait_signal_trap
>                       879 semaphore_timedwait_signal_trap
>                     1 pthread_mutex_lock
>                       1 semaphore_wait_trap
>                         1 semaphore_wait_trap
> 
> Total number in stack (recursive counted multiple, when >=5):
> 
> Sort by top of stack, same collapsed (when >= 5):
>         semaphore_timedwait_signal_trap        879
>         markAndTrace        543
>         updatePointersInRangeFromto        247
>         sweepPhase        63
>         interpret        8
>         updatePointersInRootObjectsFromto        6
> Sample analysis of process 71029 written to file /dev/stdout
> 

> 




More information about the Squeak-dev mailing list