Consultor Eletrônico



Kbase P125102: Progress clients crash and index corrupted when using UTF-8 client against non-UTF8 database
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   8/3/2007
Status: Verified

FACT(s) (Environment):

OpenEdge 10.x
All Supported Operating Systems

SYMPTOM(s):

Progress client crashes when updating a character field that participates in an index

Word indices are corrupted from 10.0A to 10.1B01

Normal indices are corrupted in 10.1B and 10.1B01 when Large Key Entry support is enabled

For word index corruption to occur, ALL the following criteria MUST be true:

- A client using -cpinternal UTF-8 against a non-UTF-8 database
- A word index on a character field
- A value in the character field that, when converted to the database codepage, exceeds 200 bytes

For normal index corruption to occur, ALL the following criteria MUST be true:

- A client using -cpinternal UTF-8 against a non-UTF-8 database
- The database has Large Key Entry support enabled
- A character field that is part of an index
- A value in the character field that, when converted to the database codepage, exceeds 200 bytes

As a result, users will be unable to find records when they should or will get records when they shouldn't.

The corruption can happen when users create, update or delete records.

Error 1422 will appear when updating or deleting records:

SYSTEM ERROR: Index <index-name> in <table-name> for recid <recid> could not be deleted. (1422)

Error 12112 will appear when updating or deleting records:

Unable to delete old values for the index of a word-indexed field (index <index-name> of table <table-name>). The index may be damaged. (12112)

Only ABL clients are affected, SQL clients do not have this problem

CAUSE:

Bug# OE00154758

FIX:

Upgrade to 10.1B02.
Alternatively, do not use a UTF-8 client running against a non-UTF-8 database.