Consultor Eletrônico



Kbase 21276: 9.1B Database crashes with Progress error 3724
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   13/12/2004
Status: Verified

FACT(s) (Environment):

Progress 9.1B

SYMPTOM(s):

Error: mtusrwake: user <num> already waked, queue <num> wake <num>. (3724)

Database is down.

CAUSE:

This is a known issue where the problem is a race condition that occurs when several users are running transactions concurrently against the database.

The scenario would arise when particular user releases a latch for a resource that they were using (for example, the transaction end lock). The database broker then goes to wake up the next user in the queue waiting to get that latch. The problem then arises because according to the information the broker has, the 'woken up' user is found to be already awake. This indicates a fundamental integrity problem such that the queues can no longer be trusted to hold accurate information. So, the database is brought down.

-- Here is an Example of this behavior:

User A goes to get a record lock, finds that the record is already locked (by User B), and waits for the record to be released.

At the same (relatively speaking) time, User A's lock times out, so the watchdog wakes him up and tells him that his lock has expired. So he must remove himself from the wait queue.

User B then finishes with the record, and pings User A so that he (A) can go get and lock the record.

The watchdog woke up user A first, so when B gets to theThis is a known issue point of trying to wake up User A, he finds that User A has already been woken up, which shouldn't happen, and the database is shut down.

This is a rare timing condition that only happens when several users are running against the database

FIX:

Upgrade to Progress 9.1C or later.
If unable to upgrade, please contact your region's Technical Support for the latest Progress 9.1B patch for your platform. (This issue was patched in 9.1B15).