[Glass] Nested transactions and 'CorruptObj error', or: how to abort in GLASS?
Pieter Nagel
pieter at nagel.co.za
Wed Mar 19 05:08:49 PDT 2014
Still no luck with nested transactions on 3.1.0.5:
---
[1] AbstractException >> _signalFromPrimitive: (envId 0)
handleInCextensionBool: nil
num: nil
res: nil
.t1: nil
.t2: a InternalError occurred (error 2261), The object with object ID
aGsMethodLookupCache( 284640->aGsNativeCode) is corrupt. Reason: 'attempt
to commit a hidden object'
receiver: a InternalError occurred (error 2261), The object with object
ID aGsMethodLookupCache( 284640->aGsNativeCode) is corrupt. Reason:
'attempt to commit a hidden object'
[2] System class >> _primitiveCommit: (envId 0)
commitMode: 0
receiver: System
[3] System class >> __commit: (envId 0)
commitMode: 0
receiver: System
[4] [] in System class >> _localCommit: (envId 0)
actualMode: 0
self: System
receiver: System
[5] ExecBlock >> onException:do: (envId 0)
anException: Error
handlerBlock: anExecBlock1
receiver: System
[6] System class >> _localCommit: (envId 0)
commitMode: 0
commitResult: nil
actualMode: 0
self: System
.t1: anExecBlock0
.t2: Error
.t3: anExecBlock1
receiver: System
[7] TransactionBoundaryDefaultPolicy >> commit: (envId 0)
commitMode: 0
res: nil
.t1: System
.t2: 0
receiver: aSessionMethodTransactionBoundaryPolicy
[8] System class >> _commit: (envId 0)
commitMode: 0
coordinator: aSessionMethodTransactionBoundaryPolicy
.t1: aSessionMethodTransactionBoundaryPolicy
.t2: 0
receiver: System
[9] System class >> commitTransaction (envId 0)
receiver: System
[10] OBGemStonePlatform class >> doAutoCommit (envId 0)
result: nil
.t1: System
receiver: OBGemStonePlatform
[11] JadeServer >> evaluate:inContext: (envId 0)
aString: 'WonkaTestRunner runDomainTests.
'
anObject: nil
result: true
.t1: OBGemStonePlatform
receiver: aJadeServer
[12] JadeServer >> printIt:in: (envId 0)
aString: 'WonkaTestRunner runDomainTests.
'
aContext: nil
receiver: aJadeServer
[13] GsNMethod class >> _gsReturnToC (envId 0)
receiver: nil
---
This happens as part of the auto-commit that happens right at the end of
"print it"'ing the code that runs our entire unit test, so it is hard to
point a finger at which one of the many tests called caused the initial
corruption (except to say this does not happen when not using nested
transaction).
I've seen the above error many times under 3.1.0.4 as well.
More information about the Glass
mailing list