Consultor Eletrônico



Kbase P121798: Idxfix is failing with a Memory Violation (49) when data within the block is corrupted.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   6/24/2009
Status: Verified

SYMPTOM(s):

Idxfix is failing with a Memory Violation (49) when data within the block is corrupted.

Index 126 (PUB.tablename.indexname): 39602801 keys.
SYSTEM ERROR: Memory violation. (49)

FACT(s) (Environment):

IDXBUILD does not fail
OpenEdge 10.x
Progress 9.x
Progress 8.2x
Progress 8.3x
All Supported Operating Systems

CAUSE:

Bug# OE00126926

CAUSE:

IDXFIX cannot fix index blocks with corrupted data.
For example when the key size exceeds the length of the key in the cursor, the copy of the key into the cursor will cause overflow as there is not enough memory allocated in cursor.

IDXFIX attempts to read the data and retrieve records based on the data already present in the index. Since the information in the index block is corrupt it triggers incorrect actions by the proutil operation.

IDXBUILD wipes all index blocks and reads all records to recreate the index blocks from scratch.

FIX:

Upgrade to OpenEdge 10.1B01 or later.

Workaround:
Run offline idxbuild on the affected table | index.