[Glass] Experiences migrating a Gemstone/S database

Dale Henrichs dale.henrichs at gemtalksystems.com
Fri Dec 20 10:11:23 PST 2019


Marten,

Thanks for the stack ... For completeness, could you share the code in 
the removeAllIndices:total: with me? I would like to reproduce this 
problem, so the number of concurrent processes doing removal would be 
useful, as well ... Concurrent bugs are always difficult to track down 
(and reproduce) so the more information I have the better.

I've submitted a bug: "48485 'CorruptObj, FetchObjId fetch past end' 
during concurrent index removal" to track this problem.

Finally I am curious if you have tried `IndexManager removeAllIndexes`? 
It is intended for use in the case where you are removing all of the 
indexes in the system ... Instead of removing the individual objects 
participating in the indexes (which is what is done by the standard 
remove index code), the index data structures (btrees, etc.) are simply 
dropped on the floor  --- the objects participating in index are removed 
directly from the dependency lists, so it should be quite a bit faster 
than removing each individual index from it's collection  ...

Dale

On 12/20/19 7:45 AM, Marten Feldtmann wrote:
> This is the error I get from my tasks which are removig indices. The 
> code works, when its running alone. My working theory is, that the 
> RcConflictSet in the IndexManager instance is the reason for this 
> failure ... but I have no proof for that.
>
> the commitTransaction in line 16 is just after I remove all indices 
> from ONE structure. the removeIndex code is a copy of the createIndex 
> code, so iI think, that all tasks are working on their own (not 
> common) data
>
> ERROR 2261 , a InternalError occurred (error 2261), The object with 
> object ID 1480033747713 is corrupt. Reason: 'CorruptObj, FetchObjId 
> fetch past end' (InternalError)
> topaz > exec iferr 1 : where
> ==> 1 InternalError (AbstractException) >> _signalFromPrimitive: @6 
> line 15
> 2 DepListTable >> depListBucketFor: @1 line 1
> 3 DepListTable >> _add: @3 line 8
> 4 DepListTable (Object) >> perform:withArguments: @1 line 1
> 5 LogEntry >> redo @2 line 5
> 6 RedoLog >> _redoOperationsForEntries: @6 line 4
> 7 DepListTable (Object) >> _abortAndReplay: @15 line 20
> 8 DepListTable >> _resolveRcConflictsWith: @3 line 10
> 9 System class >> _resolveRcConflicts @21 line 26
> 10 System class >> _resolveRcConflictsForCommit: @4 line 8
> 11 [] in System class >> _localCommit: @28 line 42
> 12 ExecBlock0 (ExecBlock) >> onException:do: @2 line 66
> 13 System class >> _localCommit: @16 line 44
> 14 SessionMethodTransactionBoundaryPolicy 
> (TransactionBoundaryDefaultPolicy) >> commit: @3 line 3
> 15 System class >> _commit: @8 line 16
> 16 System class >> commitTransaction @5 line 7
> 17 [] in WCATIServiceClass class >> removeAllIndices:total: @59 line 28
> 18 SortedCollection (Collection) >> do: @6 line 10
> 19 WCATIServiceClass class >> removeAllIndices:total: @35 line 24
> 20 Executed Code @2 line 1
> 21 GsNMethod class >> _gsReturnToC @1 line 1
> topaz 1> commit
> ERROR 2249 , a TransactionError occurred (error 2249), Further commits 
> have been disabled for this session because: 'CorruptObj, FetchObjId 
> fetch past end'. This session must logout. (TransactionError)
> topaz > exec iferr 1 : where
> ==> 1 TransactionError (AbstractException) >> _signalFromPrimitive: @6 
> line 15
> 2 System class >> _primitiveCommit: @1 line 1
> 3 [] in System class >> _localCommit: @21 line 30
> 4 ExecBlock0 (ExecBlock) >> onException:do: @2 line 66
> 5 System class >> _localCommit: @9 line 31
> 6 SessionMethodTransactionBoundaryPolicy 
> (TransactionBoundaryDefaultPolicy) >> commit: @3 line 3
> 7 System class >> _commit: @8 line 16
> 8 System class >> _gciCommit @5 line 5
> 9 GsNMethod class >> _gsReturnToC @1 line 1
> topaz 1> doit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.gemtalksystems.com/mailman/private/glass/attachments/20191220/d914c6e5/attachment-0001.htm>


More information about the Glass mailing list