Kbase P4049: database to crash after Can't find table lock for table number 1
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  12/16/2008 |
|
Status: Verified
SYMPTOM(s):
SYSTEM ERROR: Can't find table lock for table number 1
SYSTEM ERROR: Can't find table lock for table number <n>
SYSTEM ERROR: Can't find table lock for table number 7 recid 11786913 owner 47
SYSTEM ERROR: Can't find table lock for table number <n> recid <n> owner <userid>
** Save file named core for analysis by Progress Software Corporation. (439)
Database performance drops until it is too slow to use any longer
Error results in the database taking a very long time to be shutdown
Database re-starts without further errors
FACT(s) (Environment):
Progress 9.1C
All Supported Operating Systems
CHANGE:
New release of application code to client
CAUSE:
There are two conditions that cause this behavior:
1) The lock all chain macro fails to take into consideration table lock chains, causing race conditions throughout the enablement / disablement of the table locking mechanism.
2) When table locks were enabled, there are outstanding purge locks on the table locks that were associated with the purge locks and these were released at the end of the transaction, even if a record lock outside the transaction needed that table lock.
This causes the database to crash when the second record lock is released as the database manager interprets this as a potential data integrity violation that needs to be managed.
When re-starting the database, roll back recovery ensures that the outstanding transaction has been rolled back.
FIX:
This issue was addressed in Progress 9.1C patches. Progress 9.1C12 was the last patch that this issue was resolved in. As Progress 9.1C is considered a retired version, the last 9.1C patches are avaiable through Technical Support, provided that certain caveats are agreed. Otherwise upgrade to a later version.