Process>>terminate woes

Lukas Renggli renggli at gmail.com
Wed Dec 5 19:09:56 UTC 2007


Maybe this is related, maybe not.

www.squeaksource.com has been successfully running with the recently
published Semaphore patches for about a month. This morning we
received the attached stack-trace. Going to the image shows that there
are thousands of processes waiting at the Semaphore you see in the
stack-trace. Cleaning up the mess only helps for a couple of hours,
after a while it looks up again ...

Any ideas?

Cheers,
Lukas

-- 
Lukas Renggli
http://www.lukas-renggli.ch
-------------- next part --------------
Error: subscript is out of bounds: -150708

Array(Object)>>error:
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
  aString             'subscript is out of bounds: -150708'
--------
Array(Object)>>errorSubscriptBounds:
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
  index               -150708
--------
Array(Object)>>at:
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
  index               -150708
--------
Array(SequenceableCollection)>>atRandom:
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
  aGenerator          a Random
--------
[] in Array(Collection)>>atRandom {[self atRandom: self class randomForPicking]}
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
--------
[] in Semaphore>>critical: {[caught := true.  self wait.  blockValue := mutuallyExcludedBlock value]}
  self                a Semaphore(a Process in [] in Semaphore>>critical: {[caught := true.  self wait.  blockValue := mut...etc...
  mutuallyExcludedBlock[] in Array(Collection)>>atRandom {[self atRandom: self class randomForPicking]}
  blockValue          nil
  caught              true
--------
BlockContext>>ensure:
  self                [] in Semaphore>>critical: {[caught := true.  self wait.  blockValue := mutuallyExcludedBlock value]...etc...
  aBlock              [] in Semaphore>>critical: '--source missing--'
  returnValue         nil
  b                   nil
--------
Semaphore>>critical:
  self                a Semaphore(a Process in [] in Semaphore>>critical: {[caught := true.  self wait.  blockValue := mut...etc...
  mutuallyExcludedBlock[] in Array(Collection)>>atRandom '--source missing--'
  blockValue          nil
  caught              true
--------
Array(Collection)>>atRandom
  self                #($a $b $c $d $e $f $g $h $i $j $k $l $m $n $o $p $q $r $s $t $u $v $w $x $y $z $A $B $C $D $E $F $G...etc...
--------
WAExternalID>>initialize
  self                kEC
  i                   4
  iLimiT              8
--------
WAExternalID class(Behavior)>>new:
  self                WAExternalID
  sizeRequested       8
--------
WAExternalID class>>new:
  self                WAExternalID
  aNumber             8
--------
WAExternalID class>>new
  self                WAExternalID
--------
WALRUCache>>nextKey
  self                a WALRUCache
  key                 nil
--------
WALRUCache>>store:
  self                a WALRUCache
  anObject            [] in SSSession(WASession)>>wrapContinuation: {[:v |  state restoreSnapshot: snap.  aContinuation va...etc...
  key                 nil
--------
SSSession(WASession)>>actionUrlForContinuation:
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aContinuation       a Continuation
--------
[] in SSSession(WASession)>>respond: {[:cc |  url := self actionUrlForContinuation: cc.  self   returnResponse: (r...]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  responseBlock       [] in SSSession(WASession)>>redirect {[:url | WARedirectResponse location: url]}
  request             nil
  cc                  a Continuation
  url                 nil
  ea                  nil
--------
Continuation class>>currentDo:
  self                Continuation
  aBlock              [] in SSSession(WASession)>>respond: {[:cc |  url := self actionUrlForContinuation: cc.  self   retu...etc...
--------
SSSession(WASession)>>respond:
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  responseBlock       [] in SSSession(WASession)>>redirect {[:url | WARedirectResponse location: url]}
  request             nil
  cc                  a Continuation
  url                 nil
  ea                  nil
--------
SSSession(WASession)>>redirect
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  url                 nil
--------
[] in SSSession>>enterSession: {[self alwaysRedirect   ifTrue: [self redirect].  aBlock value]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession(WASession)>>enterSessionWithRequest: {[self start: aRequest]}
--------
BlockContext>>on:do:
  self                [] in SSSession>>enterSession: {[self alwaysRedirect   ifTrue: [self redirect].  aBlock value]}
  exception           Error
  handlerAction       MessageSend(#handleError: -> a SSSession(/@ydmzeSWXEMfaFPRn))
  handlerActive       true
--------
[] in SSSession(WASession)>>withErrorHandler: {[aBlock   on: Error   do: (MessageSend receiver: self selector: #handleError...]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession>>enterSession: {[self alwaysRedirect   ifTrue: [self redirect].  aBlock value]}
--------
BlockContext>>on:do:
  self                [] in SSSession(WASession)>>withErrorHandler: {[aBlock   on: Error   do: (MessageSend receiver: self...etc...
  exception           Warning
  handlerAction       MessageSend(#handleWarning: -> a SSSession(/@ydmzeSWXEMfaFPRn))
  handlerActive       true
--------
SSSession(WASession)>>withErrorHandler:
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession>>enterSession: {[self alwaysRedirect   ifTrue: [self redirect].  aBlock value]}
--------
[] in SSSession>>enterSession: {[self   withErrorHandler: [self alwaysRedirect     ifTrue: [self redirect]. ...]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession(WASession)>>enterSessionWithRequest: {[self start: aRequest]}
--------
[] in SSSession(WASession)>>withEscapeContinuation: {[:cc |  escapeContinuation := cc.  aBlock value.  self defaultResponse]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession>>enterSession: {[self   withErrorHandler: [self alwaysRedirect     ifTrue: [self red...etc...
  cc                  a Continuation
--------
Continuation class>>currentDo:
  self                Continuation
  aBlock              [] in SSSession(WASession)>>withEscapeContinuation: {[:cc |  escapeContinuation := cc.  aBlock value...etc...
--------
SSSession(WASession)>>withEscapeContinuation:
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession>>enterSession: {[self   withErrorHandler: [self alwaysRedirect     ifTrue: [self red...etc...
  cc                  a Continuation
--------
[] in SSSession>>enterSession: {[self   withEscapeContinuation: [self     withErrorHandler: [self alwaysRedi...]}
  self                a SSSession(/@ydmzeSWXEMfaFPRn)
  aBlock              [] in SSSession(WASession)>>enterSessionWithRequest: {[self start: aRequest]}
--------
[] in WAProcessMonitor>>critical: {[value := aBlock value]}
  self                a WAProcessMonitor
  aBlock              [] in SSSession>>enterSession: {[self   withEscapeContinuation: [self     withErrorHandler: [self al...etc...
  value               nil
--------
BlockContext>>ensure:
  self                [] in WAProcessMonitor>>critical: {[value := aBlock value]}
  aBlock              [] in WAProcessMonitor>>critical: {[semaphore signal]}
  returnValue         nil
  b                   nil
--------
[] in WAProcessMonitor>>critical: {[[value := aBlock value]   ensure: [semaphore signal]]}
  self                a WAProcessMonitor
  aBlock              [] in SSSession>>enterSession: {[self   withEscapeContinuation: [self     withErrorHandler: [self al...etc...
  value               nil
--------
[] in BlockContext>>newProcess {[self value.  Processor terminateActive]}
  self                [] in WAProcessMonitor>>critical: {[[value := aBlock value]   ensure: [semaphore signal]]}
--------


More information about the Squeak-dev mailing list