Bug 46694

Informational

GemStone/S 64 Bit

3.6, 3.5.4, 3.5.3, 3.5.2, 3.5.1, 3.5, 3.4.5, 3.4.4, 3.4.3, 3.4.2, 3.4.1, 3.4, 3.3.9, 3.3.8, 3.3.7, 3.3.6, 3.3.5, 3.3.4, 3.3.3, 3.3.1, 3.3, 3.2.16, 3.2.15, 3.2.14, 3.2.13, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.8, 3.2.7, 3.2.6, 3.2.5, 3.2.4, 3.2.3, 3.2.2, 3.2.1, 3.2

Corrupt object / relops: encrypt (no Unicode collator) if fail to rebuild indexes on change to UnicodeComparisionMode

In Unicode Comparison Mode, introduced in v3.2, all string comparison operations (both traditional string and symbol and unicode string) use an ICU library collator, unlike in standard mode in which native GemStone code is used to perform comparisons.

When changing an existing application from the standard mode to Unicode Comparison Mode, you must take steps to ensure any structures relying on comparisons are rebuilt; indexes on strings must be rebuilt, sorted collections on strings may need to be re-sorted, and dictionaries with string keys may need to be rebuilt.

While the risk is primarily that lookups may fail to find objects, if you do not rebuilt indexes it reports a corrupt object error as below. This error is in the underlying system comparison and  is not detected by auditIndexes.

ERROR 2261 , a InternalError occurred (error 2261), The object with object ID 20 is corrupt. Reason: 'relops: encrypt (no Unicode collator) -- Unicode strings encountered' (InternalError)

Workaround

As part of changing to Unicode Comparison Mode, carefully ensure your application has had all string-sort based structures rebuilt.


Last updated: 8/13/18