Kbase 15281: SYSTEM ERROR: bkrlsbuf : cannot release buffer lock ( 1051 )
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  10/05/1998 |
|
SYSTEM ERROR: bkrlsbuf : cannot release buffer lock ( 1051 )
The following system error:
SYSTEM ERROR: bkrlsbuf: cannot release buffer lock, use count <count>
is invalid (1051).
is followed by an automatic shutdown of the database. The message
indicates an unexpected attempt was made to release a buffer that
appears is not locked and an internal consistency check shutdown the
database to protect it from risk of corruption.
Normal buffer locking works as follows:
Each time a buffer is locked, it is locked one of the following
desired states: shared, exclusive, shared with intent to update, or
for backup. If the current buffer state is incompatible with the
desired state, the locking process has to wait for the current lock
holder(s) to release their conflicting locks before the new one can be
granted.
Whenever a new lock is granted, the buffer's use count is incremented.
Whenever a buffer lock is released, the use count is decremented and
one or more waiting processes are awakened if a lock conflict clears.
If the "use count" in the message is zero, the message indicates that
a buffer lock was about to be released, but the use count was already
zero, which is only supposed to be the case when no one has a lock on
the buffer (or in some special circumstances related to online backup)
So there is an internal inconsistency in the buffer manager: a buffer
is in a locked state, but the number of active locks on the buffer is
zero. If this case occurs, there may be corrupution caused by a
buffer mangager bug, but there will be no risk of further
database corruption, because the database will do an automatic
shutdown to protect the database.
NOV-27-1995
Progress Software Technical Support Note # 15281