Kbase P47742: Error 3633 and the database crashes.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  11/12/2008 |
|
Status: Verified
SYMPTOM(s):
Database crashes with error 3633
SYSTEM ERROR: bkfndblk: dbkey <num> not locked. (3633)
Stack trace from _progres reads:
bmFindBuffer
cxSplit
cxSplit
cxPut
cxAddNL
proutil -C idxcheck against the database reveals index corruption.
FACT(s) (Environment):
Progress 9.1x
All Supported Operating Systems
CAUSE:
Error 3633 is generated by the database buffer manager when it is asked to locate a buffer already locked by the caller. This is used by the index manager when it is going to upgrade a lock on an index block that it will subsequently update, presumably while adding or deleting an index entry.
The index manager is performing the following sequence of operations:
1. find an index block with an intent to update lock.
2. do some other things, possibly finding other index blocks
3. get the address of the block found in step 1.
4. upgrade the lock from intent to exclusive
5. update the block
6. release the lock.
In step 3, the error occurs because the buffer manager cannot find the requested block.
FIX:
Run idxfix, which can be done online, or an index rebuild (database must be stopped).