Project

General

Profile

Bug #2482

conversion of FIND does not honor NO-LOCK when specified early

Added by Eric Faulhaber over 9 years ago. Updated about 8 years ago.

Status:
WIP
Priority:
Normal
Assignee:
Vadim Nebogatov
Target version:
-
Start date:
Due date:
% Done:

0%

billable:
No
vendor_id:
GCD
case_num:
version_reported:
version_resolved:

History

#1 Updated by Eric Faulhaber over 9 years ago

I found that a FIND statement of the following form is converted without a LockType.NONE lock type:

FIND FIRST table NO-LOCK WHERE ...

The actual statement I encountered was significantly more complicated than this, but I'm assuming the conversion omission can be replicated in a test case of this simplicity. If not, also try variations of:

FIND FIRST table NO-LOCK USE-INDEX index WHERE ... NO-WAIT NO-ERROR

The Progress documentation syntax diagram for FIND indicates that the lock specifier comes after the WHERE clause, but I'm guessing they honor this deviation.

Please determine whether Progress honors the NO-LOCK (also SHARE-LOCK, EXCLUSIVE-LOCK) option when specified out of order like this (not just at compile time, but at runtime as well).

To do the runtime test, you will need to start a database in multi-user mode (using the proserve program) and log into two sessions, where you will use the mpro (multi-user) client instead of the pro (single-user) client. In one session, lock a record with EXCLUSIVE-LOCK and pause while the record is locked. In the other session, try to access the locked record using a FIND statement with a misplaced lock specifier. Note that the default lock type for a FIND is SHARE-LOCK, so you should see SHARE-LOCK behavior if the misplaced NO-LOCK is not honored.

If you determine that Progress honors the misplaced option, we can discuss the best approach to fix the P2J conversion to match this behavior.

#2 Updated by Vadim Nebogatov over 9 years ago

  • Status changed from New to WIP

#3 Updated by Paul E about 8 years ago

Was this in our code?

#4 Updated by Eric Faulhaber about 8 years ago

Paul Eames wrote:

Was this in our code?

Not that I'm aware of.

Also available in: Atom PDF