Omnibase forgetAllGrabcommandsFrom: problem

Derek Brans brans at nerdonawire.com
Mon Jun 30 23:12:39 UTC 2003


CommandHistory class>>forgetAllGrabCommandsFrom:

This method gets executed when saving and quitting the image.  The method seems to enumerate a whole bunch of objects in the image, starting at nil.  It eventually gets to an ODBObjectID and then locks up, waiting for some semaphore.  This is where I find the thread when I interrupt:

June 30, 2003 15:45

VM: Win32 - Squeak3.4 of 1 March 2003 [latest update: #5170]
Image: Squeak3.5 [latest update: #5180]

Semaphore>>critical:
 Receiver: a Semaphore()
 Arguments and temporary variables: 
  mutuallyExcludedBlock:  [] in ODBFileStream>>atPosition:getBytesFor:len:
  blockValue:  nil
 Receiver's instance variables: 
  firstLink:  nil
  lastLink:  nil
  excessSignals:  0

ODBFileStream>>atPosition:getBytesFor:len:
 Receiver: ODBFileStream on: 'C:\Documents and Settings\brans\My Documents\Document Directory\Project...etc...
 Arguments and temporary variables: 
  anInteger:  288
  aByteCollection:  a ByteArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
  len:  16
 Receiver's instance variables: 
  position:  160
  fileHandle:  StandardFileStream: 'C:\Documents and Settings\brans\My Documents\D...etc...
  pathName:  'C:\Documents and Settings\brans\My Documents\Document Directory\Proj...etc...
  seekingMutex:  a Semaphore()

ODBObjectIndexFile>>at:
 Receiver: an ODBObjectIndexFile
 Arguments and temporary variables: 
  anInteger:  10
  bytes:  a ByteArray(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)
 Receiver's instance variables: 
  stream:  ODBFileStream on: 'C:\Documents and Settings\brans\My Documents\Documen...etc...
  valueLength:  16
  pageSize:  nil
  start:  144
  gcPosition:  nil
  gcBuffer:  nil
  gcCount:  nil
  var1:  nil

ODBContainer>>at:
 Receiver: an ODBContainer
 Arguments and temporary variables: 
  index:  10
  bytes:  nil
 Receiver's instance variables: 
  objectManager:  an ODBObjectManager
  id:  1
  name:  'Default'
  path:  'C:\Documents and Settings\brans\My Documents\Document Directory\Projects...etc...
  indexFile:  an ODBObjectIndexFile
  dbFiles:  an ODBWeakValueIdentityDictionary
  dataFileA:  an ODBObjectStorage
  dataFileB:  nil
  activeDataFile:  an ODBObjectStorage
  byteStorageQueue:  an OrderedCollection()
  queueSize:  0


--- The full stack ---
Semaphore>>critical:
ODBFileStream>>atPosition:getBytesFor:len:
ODBObjectIndexFile>>at:
ODBContainer>>at:
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ODBObjectManager>>holderAt:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ensure:
BlockContext>>valueUnpreemptively
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
BlockContext>>on:do:
BlockContext>>ifError:
CommandHistory class>>forgetAllGrabCommandsFrom:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
[] in BlockContext>>ifError:
Error(Exception)>>handlerAction
Error(Exception)>>signal
Error(Exception)>>signal:
StandardFileStream(Object)>>error:
StandardFileStream(Object)>>primitiveFailed
StandardFileStream>>primSetPosition:to:
StandardFileStream>>position:
[] in ODBFileStream>>atPosition:getBytesFor:len:
[] in Semaphore>>critical:
BlockContext>>ensure:
Semaphore>>critical:
ODBFileStream>>atPosition:getBytesFor:len:
ODBObjectIndexFile>>at:
ODBContainer>>at:
ODBObjectManager>>holderAt:
[] in ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
BlockContext>>ensure:
BlockContext>>valueUnpreemptively
ODBLocalTransaction(ODBTransaction)>>transactionObjectAt:
ODBDemandLoader>>getObject
ODBDemandLoader>>perform:withArguments:
ODBReference>>doesNotUnderstand:
[] in CommandHistory class>>forgetAllGrabCommandsFrom:
BlockContext>>on:do:
BlockContext>>ifError:
CommandHistory class>>forgetAllGrabCommandsFrom:
CommandHistory class>>resetAllHistory
CommandHistory class>>shutDown:
[] in SystemDictionary>>send:toClassesNamedIn:with:
OrderedCollection>>do:
SystemDictionary>>send:toClassesNamedIn:with:
SystemDictionary>>processShutDownList:
SystemDictionary>>snapshot:andQuit:embedded:
SystemDictionary>>snapshot:andQuit:
TheWorldMenu>>saveAndQuit
TheWorldMenu>>doMenuItem:with:
[] in MenuItemMorph>>invokeWithEvent:
BlockContext>>ensure:
CursorWithMask(Cursor)>>showWhile:
MenuItemMorph>>invokeWithEvent:
MenuItemMorph>>mouseUp:
MenuItemMorph>>handleMouseUp:
MouseButtonEvent>>sentTo:
-- and more not shown --

Derek Brans
Nerd on a Wire
Web design that's anything but square
http://www.nerdonawire.com 
mailto: brans at nerdonawire.com
phone: 604.874.6463
toll-free: 1-877-NERD-ON-A-WIRE
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20030630/b3ec6b1c/attachment.htm


More information about the Squeak-dev mailing list