[Glass] Nested transactions and 'CorruptObj error', or: how to abort in GLASS?
Dale Henrichs
dale.henrichs at gemtalksystems.com
Wed Mar 19 13:30:32 PDT 2014
Pieter,
We'd like to find out more information about the failure that you are
seeing ... specifically we'd like to start by getting a C stack at the
point of the error. If you could add:
GEM_HALT_ON_ERROR = 2261;
to your system.conf (or gem.conf) and then restart your seaside gems and
keep an eye on your gem log file ...
When you hit the error, you should get a c and smalltalk stacks dumped to
the log file so send us a copy of the log file and go from there ...
Basically, you shouldn't be able to reference a GsMethodLookupCache from
persistent state, so we're interesting in finding out how it's sneaking in
...
Dale
On Wed, Mar 19, 2014 at 5:08 AM, Pieter Nagel <pieter at nagel.co.za> wrote:
> 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.
>
>
> _______________________________________________
> Glass mailing list
> Glass at lists.gemtalksystems.com
> http://lists.gemtalksystems.com/mailman/listinfo/glass
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gemtalksystems.com/mailman/private/glass/attachments/20140319/426a55f3/attachment.html>
More information about the Glass
mailing list