There is a problem with RC commit retry processing that can cause a doesNotUnderstand error on the method #_selectiveAbort in #_resolveRcConflictsWith:. The call stack will be similar to this:
(Object) >> _doesNotUnderstand:args:envId:reason: @8 line 13
[] in RcKeyValueDictionary >> _resolveRcConflictsWith: @37 line 32
IdentityKeyValueDictionary (KeyValueDictionary) >> keysAndValuesDo: @19 line 15
RcIndexDictionary (RcKeyValueDictionary) >> _resolveRcConflictsWith: @21 line 31
System class >> _resolveRcConflicts @17 line 19
System class >> _resolveRcConflictsForCommit: @4 line
[] in System class >> _localCommit: @28 line 42
ExecBlock0 (ExecBlock) >> onException:do: @2 line 66
System class >> _localCommit: @16 line 44
GsCommitList >> nbCommit: @12 line 17
GsCommitList >> commit: @4 line 7
System class >> _commit: @8 line 16
System class >> commitTransaction @5 line 7
File-in the following code as SystemUser and commit:
! fix 47796 ! file-in as SystemUser and commit ! method: PrivateObject _primitiveSelectiveAbort "Performs an abort operation on the receiver. That is, if the object is committed, it removes any changes made by the current transaction and allows access to the committed state of the object. The error #rtErrSelectiveAbort is thrown if the receiver has depMap entries." <primitive: 274> self _primitiveFailed: #_primitiveSelectiveAbort . self _uncontinuableError % method: PrivateObject _selectiveAbort "Performs an abort operation on the receiver. That is, if the object is committed, it removes any changes made by the current transaction and allows access to the committed state of the object." ^ self _primitiveSelectiveAbort. %
Last updated: 10/30/18