Salesforce

IDXBUILD using -datascanthreads causes corruption in index keys.

« Go Back

Information

 
TitleIDXBUILD using -datascanthreads causes corruption in index keys.
URL Nameidxbuild-using-datascanthreads-causes-corruption-in-index-keys
Article Number000118383
EnvironmentProduct: OpenEdge
Version: 11.3.x, 11.4.x, 11.5.x, 11.6.x, 11.7.x
OS: All supported platforms
Question/Problem Description

IDXBUILD of table reports many 4431 errors "Record has exceeded max key size"
IDXCHECK reports 8783 errors after IDXBUILD
Repeating IDXBUILD of table after correcting reported corruption reports different records found being too large by idxcheck / idxbuild.

Steps to Reproduce
Clarifying Information
proutil dbname -C idxbuild all -TF 20 -TB 64 -TM 64 -TMB 64 -thread 1 -datascanthreads 4 -mergethreads 4 -threadnum 4 -cpinternal UTF-8 -cpcoll ICU-UCA

IDXFIX is used to correct the errors on the RECID listed:
proutil dbname  -C idxfix -cpinternal UTF-8 -cpcoll ICU-UCA
Error MessageSYSTEM ERROR: Index<index-num> (<owner-name>.<table-name>, <index-name>): couldn't find key <key> RECID <DBKEY>. (8783)

SYSTEM ERROR: Failed to build key for recid = <recid num> index number <index num> table number <table num>. (4431)

Record has exceeded max key size.

The following error has also been seen but if it doesn't appear with the above errors it still points to the same problem:

SYSTEM ERROR: Schema cache key, xref, or key field count incorrect. (996)
Defect NumberDefect OCTA-18370 / OCTA-34797
Enhancement Number
Cause
A thread-safe issue with sorting strings in DataScan process of threaded idxbuild to sort and convert strings for building keys. Databases with double-byte code pages such as utf-8, ICU-UCA are likely more affected than databases using single-byte code pages.
Resolution
Fixed version(s): OpenEdge 12.6, 12.2.1.0 and 11.7.9
Workaround
When running IDXBUILD, either use -datascanthreads 1 or do not use the -datascanthreads parameter at all.
Notes
Keyword Phrase
Last Modified Date6/21/2022 9:21 PM

Powered by