[GemStone-Smalltalk] Class connector conundrum

Richard Sargent richard.sargent at gemtalksystems.com
Mon Jun 3 09:02:50 PDT 2024


On Sun, Jun 2, 2024 at 9:28 PM David Shaffer via GemStone-Smalltalk <
gemstone-smalltalk at lists.gemtalksystems.com> wrote:

> Hey folks…killed a whole day on this one and I’m stuck.  I’m running an
> application on VW9.4/GBS8.7.1/GS3.6.5 where I have some (a lot of) class
> connectors in my session parameters.  Among them:
>
> GbsClassConnector stName: #'Trader.LevelTriggersOrderSignal' gsName:
> 'Trader_LevelTriggersOrderSignal' dictionary: #TraderClasses
>
>
> I am able to access objects in my repository replicated into GBS on my
> desktop image.  When I package it up and run it headless in my docker
> container I get:
>
> Unhandled exception: No client class Trader_LevelTriggersOrderSignal,
> class generation is disabled.
>
> when loading objects in my repository of the aforementioned type.  I’ve
> verified that the Smalltalk class Trader.LevelTriggersOrderSignal is in the
> deployed image.  I’ve also checked that there is only one class with that
> name in my repo (the class history has 1 element in it) and that the class
> of the object in the repository that is causing the problem has the same
> OOP as the class in TraderClasses.
>
> Full stack trace is pasted below.  I’ve tried poking around quite a bit
> including adding some tracing to
> GbsSession>>connectClassConnectorsTypeNoneIn:addFailedConnectorsTo:addMessagesTo:
> to double-check that the connector is indeed being connected and everything
> looks OK.  I’ve tried all kinds of things but I’m pretty much stuck on this
> one.  Sorry for the lack of details…not expecting anyone to be able to sort
> this out from my vague description…just hoping for some debugging
> suggestions.  GBS is complicated.
>

Let's start with verifying that the connector really was established. Add
some diagnostic code to iterate through your connectors after logging in
and find that particular one. Then report the value of each instance
variable. Also, report the result of sending the
GbsConnector>>isConnectedInSession: message for the connector.

The fact that it is executing
GbxUnmappedClassReplicator>>findOrGenerateClientClass strongly suggests the
class is NOT connected (yet). But, if that were the case, I would have
expected to see the same problem in an image with a GUI.

Are any of the connectors defining a class hierarchy? In particular, is the
missing one a subclass of another that's also in the connectors list?
If so, the problem could be the fact that the connectors in the Session
Parameters is a Set. The order is effectively random so an attempt to
connect a subclass before its superclass, might be problematic. I would
have expected an error if that had happened, but your investigation showed
everything connected fine.



> BTW: In order to get my application to run under GBS8.7.1 I had to patch
> GbsRuntime parcel to include GbsSessionManager>>connectorList (which is in
> GbsTools but is sent from GbsSession>>mapCrucialClasses) since I don’t load
> GbsTools in my deployed image.  I think this is a GBS packaging bug but I
> could be wrong.
>

Definitely an error. It's been like that since at least 2014! I will fix it
for GBS 8.8. I have created bug #51015 for it.


> Best,
>
> David
>
>
> Unhandled exception: No client class Trader_LevelTriggersOrderSignal,
> class generation is disabled.
>
> ----------------------------------------------------------------------
> GbxMessageDispatcher>>basicRaise:message:
> Receiver:
> a GbxMessageDispatcher
> Instance Variables:
> handler = a CstMessageHandlerVw
> Arguments:
> errorSignal = GemStone.Gbs.GbsClassGenerationError
> errorString = 'No client class Trader_LevelT...lass generation is
> disabled.'
> Context PC = 4
>
> ----------------------------------------------------------------------
> GbxMessageDispatcher>>raise:message:withArguments:
> Receiver:
> a GbxMessageDispatcher
> Instance Variables:
> handler = a CstMessageHandlerVw
> Arguments:
> errorSignal = GemStone.Gbs.GbsClassGenerationError
> aString = 'No client class %1, class generation is disabled.'
> args = an Array[1]
> Temporaries:
> string = 'No client class Trader_LevelT...lass generation is disabled.'
> Context PC = 12
>
> ----------------------------------------------------------------------
> GbxMessageDispatcher>>raise:message:with:
> Receiver:
> a GbxMessageDispatcher
> Instance Variables:
> handler = a CstMessageHandlerVw
> Arguments:
> errorSignal = GemStone.Gbs.GbsClassGenerationError
> aString = 'No client class %1, class generation is disabled.'
> arg1 = 'Trader_LevelTriggersOrderSignal'
> Context PC = 10
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxUnmappedClassReplicator>>generateClientClass
> Receiver:
> a GemStone.Gbs.GbxUnmappedClassReplicator
> Instance Variables:
> manager = a GemStone.Gbs.GbxReplicatorManager
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> serverClass = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> classDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r2E79C01}
> classProxy = 'Not cached'
> clientClass = nil
> metaclassDelegate = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> metaclassProxy = 'Not cached'
> report =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Temporaries:
> aClientClass = nil
> cname = 'Trader_LevelTriggersOrderSignal'
> Context PC = 27
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxUnmappedClassReplicator>>findOrGenerateClientClass
> Receiver:
> a GemStone.Gbs.GbxUnmappedClassReplicator
> Instance Variables:
> manager = a GemStone.Gbs.GbxReplicatorManager
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> serverClass = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> classDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r2E79C01}
> classProxy = 'Not cached'
> clientClass = nil
> metaclassDelegate = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> metaclassProxy = 'Not cached'
> report =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Context PC = 12
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxUnmappedClassReplicator>>replicateClassItself
> Receiver:
> a GemStone.Gbs.GbxUnmappedClassReplicator
> Instance Variables:
> manager = a GemStone.Gbs.GbxReplicatorManager
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> serverClass = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> classDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r2E79C01}
> classProxy = 'Not cached'
> clientClass = nil
> metaclassDelegate = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> metaclassProxy = 'Not cached'
> report =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Context PC = 13
>
> ----------------------------------------------------------------------
>
> GemStone.Gbs.GbxUnmappedClassReplicator>>forReplication:replicateFromDeferredReport:
> Receiver:
> a GemStone.Gbs.GbxUnmappedClassReplicator
> Instance Variables:
> manager = a GemStone.Gbs.GbxReplicatorManager
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> serverClass = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> classDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r2E79C01}
> classProxy = 'Not cached'
> clientClass = nil
> metaclassDelegate = a GbxL8Delegate sess: 1 flags: 0 {16r2E79E01}
> metaclassProxy = 'Not cached'
> report =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Arguments:
> replication = a GemStone.Gbs.GbxReplication
> aReport =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Context PC = 26
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxReplication>>replicateFromDeferredReport:
> Receiver:
> a GemStone.Gbs.GbxReplication
> Instance Variables:
> interaction = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> objectsWithDeferredAssignments = an OrderedCollection[40]
> reportsWithDeferredElements = an OrderedCollection[0]
> reportsWithNoMappedClass = an OrderedCollection[3]
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> Arguments:
> report =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Temporaries:
> replicator = a GemStone.Gbs.GbxUnmappedClassReplicator
> Context PC = 10
>
> ----------------------------------------------------------------------
> optimized [] in GemStone.Gbs.GbxReplication>>resolveUnmappedClasses
> Receiver:
> an UndefinedObject
> Arguments:
> aReport =  GbxL8v3ObjectReport with:
> valueBuffSize = 8
> namedSize = 1
> idxSize = 0
> firstOffset = 1
> objId = GbxL8BufferOop{16r2E79C01}
> objClass = GbxL8BufferOop{16r2E79E01}
> segment = 0
> objSize = 1
> objImpl = 0
> isIndexable = false
> isInvariant = true
> isOverlayed = false
> isPartial = false
> lacksReadAuth = false
> isClamped = false
> oops = GbxL8OopArray(16r7FE2101 )
> Temporaries:
> .self = a GemStone.Gbs.GbxReplication
> Context PC = 18
>
> ----------------------------------------------------------------------
> OrderedCollection>>do:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 3
> Arguments:
> aBlock = BlockClosure [] in
> GemStone.Gbs.GbxReplication>>resolveUnmappedClasses
> Temporaries:
> index = 1
> Context PC = 17
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxReplication>>resolveUnmappedClasses
> Receiver:
> a GemStone.Gbs.GbxReplication
> Instance Variables:
> interaction = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> objectsWithDeferredAssignments = an OrderedCollection[40]
> reportsWithDeferredElements = an OrderedCollection[0]
> reportsWithNoMappedClass = an OrderedCollection[3]
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> Context PC = 8
>
> ----------------------------------------------------------------------
> optimized [] in GemStone.Gbs.GbxReplication>>resolve
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = a GemStone.Gbs.GbxReplication
> Context PC = 7
>
> ----------------------------------------------------------------------
> optimized [] in GbxRecursionLock>>critical:
> Receiver:
> an UndefinedObject
> Temporaries:
> .activeProcess = a Process in nil
> .self = a GbxRecursionLock[0]
> .mutuallyExcludedBlock = BlockClosure [] in
> GemStone.Gbs.GbxReplication>>resolve
> Context PC = 8
>
> ----------------------------------------------------------------------
> BlockClosure>>ensure:
> Receiver:
> a BlockClosure
> Instance Variables:
> method = CompiledBlock [] in GbxRecursionLock>>critical:
> outerContext = nil
> copiedValues = an Array[3]
> Arguments:
> aBlock = BlockClosure [] in GbxRecursionLock>>critical:
> Temporaries:
> result = nil
> Context PC = 4
>
> ----------------------------------------------------------------------
> GbxRecursionLock>>critical:
> Receiver:
> a GbxRecursionLock
> Instance Variables:
> firstLink = nil
> lastLink = nil
> excessSignals = 0
> lockingProcess = a Process in nil
> Arguments:
> mutuallyExcludedBlock = BlockClosure [] in
> GemStone.Gbs.GbxReplication>>resolve
> Temporaries:
> terminationProtectionBlock = BlockClosure [] in GbxRecursionLock>>critical:
> activeProcess = a Process in nil
> Context PC = 27
>
> ----------------------------------------------------------------------
>
> GemStone.Gbs.GbxClientObjDictionary64(GemStone.Gbs.GbxClientObjDictionary)>>writeCritical:
> Receiver:
> a GemStone.Gbs.GbxClientObjDictionary64
> Instance Variables:
> finalizationLatch = a GemStone.Gbs.GbxFinalizationLatch
> cachedClassStats = nil
> finalizer = a GemStone.Gbs.GbxClientObjDictionaryFinalizer
> writeProtect = a GbxRecursionLock[0]
> keys = a WeakArray[60077]
> values = an Array[60077]
> tally = 26816
> capacity = 30038
> tableSize = 60077
> rehashInProgress = false
> rehashCount = 0
> deletionCount = 7
> Arguments:
> criticalBlock = BlockClosure [] in GemStone.Gbs.GbxReplication>>resolve
> Context PC = 5
>
> ----------------------------------------------------------------------
> GemStone.Gbs.GbxReplication>>resolve
> Receiver:
> a GemStone.Gbs.GbxReplication
> Instance Variables:
> interaction = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> objectsWithDeferredAssignments = an OrderedCollection[40]
> reportsWithDeferredElements = an OrderedCollection[0]
> reportsWithNoMappedClass = an OrderedCollection[3]
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> Context PC = 8
>
> ----------------------------------------------------------------------
> optimized [] in GemStone.Gbs.GbxServerInteraction>>completeResult:
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> .delegateOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> result = nil
> Context PC = 18
>
> ----------------------------------------------------------------------
> optimized [] in GbsSession>>sessionCritical:
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> .aBlock = BlockClosure [] in
> GemStone.Gbs.GbxServerInteraction>>completeResult:
> Context PC = 8
>
> ----------------------------------------------------------------------
> GbxSessionRecursionLock(GbxRecursionLock)>>critical:
> Receiver:
> a GbxSessionRecursionLock
> Instance Variables:
> firstLink = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> lastLink = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> excessSignals = 0
> lockingProcess = a Process in nil
> eventDetectorThread = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> Arguments:
> mutuallyExcludedBlock = BlockClosure [] in GbsSession>>sessionCritical:
> Temporaries:
> terminationProtectionBlock = nil
> activeProcess = a Process in nil
> Context PC = 10
>
> ----------------------------------------------------------------------
> GbsSession>>sessionCritical:
> Receiver:
> a GbsSession
> Instance Variables:
> activeInteractions = an IdentitySet[1]
> causeOfDeath = nil
> clientTimeZone = a CompositeTimeZone  -04:00
> configuration = (GbsConfiguration default
> alwaysUseGemCursor: false;
> confirm: false;
> generateClassConnectors: false;
> libraryName: './libgcirpc-3.6.5-64.so';
> yourself)
> dependents = nil
> dirtyPool = a GemStone.Gbs.GbxDirtyPool
> eventHandlers = an IdentityDictionary[6]
> eventDetectorErrorHandler = nil
> freeOops = a GemStone.Gbs.GbxFreeOopStream
> gbsm = a GbsSessionManager
> gemTimeZone = a GbxL8Delegate sess: 1 flags: 0 {16r14}
> gsClassOrganizer = nil
> isRemote = true
> isUnwindingAsyncAbort = false
> nestingLevel = 0
> notCachedToken = 'Not cached'
> parameters = 'Trader' on '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> procBalancer = nil
> replicatorManager = a GemStone.Gbs.GbxReplicatorManager
> serverInterface = a GemStone.Gbs.GbxGciSingleTripInterface
> serverMap = a GemStone.Gbs.GbxServerMap
> sessionDisplayString = 'Session 1 (remote) for ''Trade...0055!gs64stone''
> @ ''gemstone'''
> sessionId = 1
> sessionProtect = a GbxSessionRecursionLock[1]
> specialConverter = a GemStone.Gbs.GbxSpecialConverter64Vw64
> stats = a GbxSessionStatResource:
> bytesSentByStoreTraversal: 0
> bytesTraversed: 0
> changedObjNotifications: 0
> classesMapped: 1694
> dirtyPoolSize: 0
> freeOopsFetched: 0
> gciCallsToGem: 0
> gciCallsToGemTime: 0
> gciErrors: 0
> lostOtRoots: 0
> nbEndResultNoProgress: 0
> nbEndResultProgressed: 0
> nbEndResultReady: 0
> objectsStoredByTraversal: 0
> objectsTraversed: 0
> serverMapSize: 28002
> sessionProtectInvocations: 0
> sessionSignals: 0
> sigAborts: 0
> storeTraversals: 0
> traversalUnpackingTime: 0
> traverseCallTime: 0
> traverseCalls: 0
> asyncAbortStartAction = nil
> asyncAbortFinishAction = nil
> Arguments:
> aBlock = BlockClosure [] in
> GemStone.Gbs.GbxServerInteraction>>completeResult:
> Context PC = 14
>
> ----------------------------------------------------------------------
>
> GemStone.Gbs.GbxSingleTripServerTraversal(GemStone.Gbs.GbxServerInteraction)>>completeResult:
> Receiver:
> a GemStone.Gbs.GbxSingleTripServerTraversal
> Instance Variables:
> argumentDelegates = an Array[0]
> arguments = an Array[0]
> fetchTraversal = a GemStone.Gbs.GbxFetchTraversal
> interactionState = a GemStone.Gbs.GbxInteractionState
> replicationClampDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r7F81601}
> replication = a GemStone.Gbs.GbxReplication
> replicationLevel = 4
> replicationScheme = Replication Scheme replicationSpec
> resultDelegateOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> serverInterface = a GemStone.Gbs.GbxGciSingleTripInterface
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> shouldReplicateResultBodyAsDelegates = false
> shouldReplicateResult = true
> shouldSynchronize = true
> statResource = nil
> stopForBreakpoints = true
> storeTraversal = a GemStone.Gbs.GbxStoreTraversal
> rootDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Arguments:
> delegateOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Temporaries:
> result = nil
> Context PC = 17
>
> ----------------------------------------------------------------------
> optimized [] in [] in [] in GemStone.Gbs.GbxServerInteraction>>execute
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> resultOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> completeResult = nil
> Context PC = 17
>
> ----------------------------------------------------------------------
> BlockClosure>>ensure:
> Receiver:
> a BlockClosure
> Instance Variables:
> method = CompiledBlock [] in [] in [] in
> GemStone.Gbs.GbxServerInteraction>>execute
> outerContext = nil
> copiedValues = an Array[3]
> Arguments:
> aBlock = BlockClosure [] in [] in [] in
> GemStone.Gbs.GbxServerInteraction>>execute
> Temporaries:
> result = nil
> Context PC = 4
>
> ----------------------------------------------------------------------
> optimized [] in [] in GemStone.Gbs.GbxServerInteraction>>execute
> Receiver:
> an UndefinedObject
> Temporaries:
> completeResult = nil
> .self = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> resultOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Context PC = 18
>
> ----------------------------------------------------------------------
> BlockClosure>>on:do:
> Receiver:
> a BlockClosure
> Instance Variables:
> method = CompiledBlock [] in [] in
> GemStone.Gbs.GbxServerInteraction>>execute
> outerContext = nil
> copiedValues = an Array[2]
> Arguments:
> anExceptionSelector = GemStone.Gbs.GbxReturnNotification
> handlerBlock = BlockClosure [] in [] in
> GemStone.Gbs.GbxServerInteraction>>execute
> Context PC = 18
>
> ----------------------------------------------------------------------
> optimized [] in GemStone.Gbs.GbxServerInteraction>>execute
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> resultOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Context PC = 15
>
> ----------------------------------------------------------------------
> BlockClosure>>ifCurtailed:
> Receiver:
> a BlockClosure
> Instance Variables:
> method = CompiledBlock [] in GemStone.Gbs.GbxServerInteraction>>execute
> outerContext = nil
> copiedValues = an Array[2]
> Arguments:
> terminationBlock = BlockClosure [] in
> GemStone.Gbs.GbxServerInteraction>>execute
> Context PC = 4
>
> ----------------------------------------------------------------------
>
> GemStone.Gbs.GbxSingleTripServerTraversal(GemStone.Gbs.GbxServerInteraction)>>execute
> Receiver:
> a GemStone.Gbs.GbxSingleTripServerTraversal
> Instance Variables:
> argumentDelegates = an Array[0]
> arguments = an Array[0]
> fetchTraversal = a GemStone.Gbs.GbxFetchTraversal
> interactionState = a GemStone.Gbs.GbxInteractionState
> replicationClampDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r7F81601}
> replication = a GemStone.Gbs.GbxReplication
> replicationLevel = 4
> replicationScheme = Replication Scheme replicationSpec
> resultDelegateOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> serverInterface = a GemStone.Gbs.GbxGciSingleTripInterface
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> shouldReplicateResultBodyAsDelegates = false
> shouldReplicateResult = true
> shouldSynchronize = true
> statResource = nil
> stopForBreakpoints = true
> storeTraversal = a GemStone.Gbs.GbxStoreTraversal
> rootDelegate = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Temporaries:
> resultOrError = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Context PC = 19
>
> ----------------------------------------------------------------------
> OrderedCollection(GbxObjectStub)>>unboundMethodwith:with:with:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Arguments:
> levelOrNil = nil
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> delegate = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Temporaries:
> serverTraversal = a GemStone.Gbs.GbxSingleTripServerTraversal for session 1
> replicationSpecSelector: #replicationSpec
> , traversal root: a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> level = 4
> Context PC = 22
>
> ----------------------------------------------------------------------
> [] in OrderedCollection(GbxObjectStub)>>unboundMethodwith:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Temporaries:
> .self = an OrderedCollection[40]
> .levelOrNil = nil
> .session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> .delegate = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> Context PC = 17
>
> ----------------------------------------------------------------------
> optimized [] in GbsSession>>sessionCritical:
> Receiver:
> an UndefinedObject
> Temporaries:
> .self = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> .aBlock = BlockClosure [] in GbxObjectStub>>faultToLevel:
> Context PC = 8
>
> ----------------------------------------------------------------------
> optimized [] in GbxRecursionLock>>critical:
> Receiver:
> an UndefinedObject
> Temporaries:
> .activeProcess = a Process in nil
> .self = a GbxSessionRecursionLock[1]
> .mutuallyExcludedBlock = BlockClosure [] in GbsSession>>sessionCritical:
> Context PC = 8
>
> ----------------------------------------------------------------------
> BlockClosure>>ensure:
> Receiver:
> a BlockClosure
> Instance Variables:
> method = CompiledBlock [] in GbxRecursionLock>>critical:
> outerContext = nil
> copiedValues = an Array[3]
> Arguments:
> aBlock = BlockClosure [] in GbxRecursionLock>>critical:
> Temporaries:
> result = nil
> Context PC = 4
>
> ----------------------------------------------------------------------
> GbxSessionRecursionLock(GbxRecursionLock)>>critical:
> Receiver:
> a GbxSessionRecursionLock
> Instance Variables:
> firstLink = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> lastLink = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> excessSignals = 0
> lockingProcess = a Process in nil
> eventDetectorThread = a Process in
> GbxSessionRecursionLock(Semaphore)>>waitIfCurtailedSignal
> Arguments:
> mutuallyExcludedBlock = BlockClosure [] in GbsSession>>sessionCritical:
> Temporaries:
> terminationProtectionBlock = BlockClosure [] in GbxRecursionLock>>critical:
> activeProcess = a Process in nil
> Context PC = 27
>
> ----------------------------------------------------------------------
> GbsSession>>sessionCritical:
> Receiver:
> a GbsSession
> Instance Variables:
> activeInteractions = an IdentitySet[1]
> causeOfDeath = nil
> clientTimeZone = a CompositeTimeZone  -04:00
> configuration = (GbsConfiguration default
> alwaysUseGemCursor: false;
> confirm: false;
> generateClassConnectors: false;
> libraryName: './libgcirpc-3.6.5-64.so';
> yourself)
> dependents = nil
> dirtyPool = a GemStone.Gbs.GbxDirtyPool
> eventHandlers = an IdentityDictionary[6]
> eventDetectorErrorHandler = nil
> freeOops = a GemStone.Gbs.GbxFreeOopStream
> gbsm = a GbsSessionManager
> gemTimeZone = a GbxL8Delegate sess: 1 flags: 0 {16r14}
> gsClassOrganizer = nil
> isRemote = true
> isUnwindingAsyncAbort = false
> nestingLevel = 0
> notCachedToken = 'Not cached'
> parameters = 'Trader' on '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> procBalancer = nil
> replicatorManager = a GemStone.Gbs.GbxReplicatorManager
> serverInterface = a GemStone.Gbs.GbxGciSingleTripInterface
> serverMap = a GemStone.Gbs.GbxServerMap
> sessionDisplayString = 'Session 1 (remote) for ''Trade...0055!gs64stone''
> @ ''gemstone'''
> sessionId = 1
> sessionProtect = a GbxSessionRecursionLock[1]
> specialConverter = a GemStone.Gbs.GbxSpecialConverter64Vw64
> stats = a GbxSessionStatResource:
> bytesSentByStoreTraversal: 0
> bytesTraversed: 0
> changedObjNotifications: 0
> classesMapped: 1694
> dirtyPoolSize: 0
> freeOopsFetched: 0
> gciCallsToGem: 0
> gciCallsToGemTime: 0
> gciErrors: 0
> lostOtRoots: 0
> nbEndResultNoProgress: 0
> nbEndResultProgressed: 0
> nbEndResultReady: 0
> objectsStoredByTraversal: 0
> objectsTraversed: 0
> serverMapSize: 28002
> sessionProtectInvocations: 0
> sessionSignals: 0
> sigAborts: 0
> storeTraversals: 0
> traversalUnpackingTime: 0
> traverseCallTime: 0
> traverseCalls: 0
> asyncAbortStartAction = nil
> asyncAbortFinishAction = nil
> Arguments:
> aBlock = BlockClosure [] in GbxObjectStub>>faultToLevel:
> Context PC = 14
>
> ----------------------------------------------------------------------
> OrderedCollection(GbxObjectStub)>>unboundMethodwith:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Arguments:
> levelOrNil = nil
> Temporaries:
> delegate = a GbxL8Delegate sess: 1 flags: 32 {16r288AF01}
> session = Session 1 (remote) for 'Trader' on
> '!@gemstone#netldi:40055!gs64stone' @ 'gemstone'
> Context PC = 35
>
> ----------------------------------------------------------------------
> OrderedCollection(GbxObjectStub)>>unboundMethod
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Context PC = 5
>
> ----------------------------------------------------------------------
> OrderedCollection(GbxObjectStub)>>unboundMethodwith:with:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Arguments:
> selector = #do:
> anArray = an Array[1]
> Temporaries:
> delegate = nil
> Context PC = 21
>
> ----------------------------------------------------------------------
> OrderedCollection(GbxAbstractProxy)>>unboundMethodwith:
> Receiver:
> an OrderedCollection
> Instance Variables:
> firstIndex = 1
> lastIndex = 40
> Arguments:
> aMessage = a Message with selector: #do: and arguments: #(BlockClosure []
> in Trader.WrappingSignalConfiguration>>instrumentDurations)
> Context PC = 9
>
> ----------------------------------------------------------------------
>
> Trader.AllSignalsEnsembleConfiguration(Trader.WrappingSignalConfiguration)>>instrumentDurations
> Receiver:
> an Trader.AllSignalsEnsembleConfiguration
> Instance Variables:
> signalId = '1ab265a8-fada-49bb-b734-03c855966bce'
> instrumentDurations = nil
> signalClass = a GbxPointerStub
> stopPolicies = a GbxPointerStub
> recordChartData = nil
> positionSizePolicy = a GbxPointerStub
> primingDaysRequired = nil
> pendingPositionSizePolicy = nil
> coreSignalConfigurations = an OrderedCollection[40]
> enabledSignalIds = a GbxPointerStub
> Temporaries:
> r = a Set[0]
> Context PC = 13
> _______________________________________________
> GemStone-Smalltalk mailing list
> GemStone-Smalltalk at lists.gemtalksystems.com
> https://lists.gemtalksystems.com/mailman/listinfo/gemstone-smalltalk
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/archives/gemstone-smalltalk/attachments/20240603/66f3c993/attachment-0001.htm>


More information about the GemStone-Smalltalk mailing list