Client process (batch or interactive) crashing after being blocked on record lock when dbnotification is enabled
Crash or hang after interactive or batch client waits for a record lock to be granted.
Known symptoms:
1. After upgrading to OpenEdge 12.2.2 a large number of crashes on FIND statements when a record lock is requested and another user attempts to lock the same record.
The C Stack from _progres reads:
bmLocateBuffer2
cxLocateValidBlock
cxSearchTree
cxPositionToNext
cxNextPrevious
cxRowidNext
dbCursorFindAndGet
There are other manifestations of the same issue where the following message is seen on the client or written to the client log file:
Failed to get database notification information from server
Disconnect from server, server received invalid message code (2661)
There are other manifestations of the same issue where the following message is seen in the database .lg file:
Message recvd while waiting: uc_wait=1, msg=136
2. Client hung while searching for record.
protrace from hung client process:
utnap
cxGetRootAndArea
cxLocateValidBlock
cxSearchTree
cxPositionToNext
cxNextPrevious
cxRowidNext
dbCursorFindAndGet
dsmCursorFindAndGet
qrIxGet
qrNext
dbqry
profnd
fdfnd
bfFindRow
rnbfnxtDoit
rnbfnxtBody
rnbfnxt
rnexec_entry
rninterpret
rnrq
main
3. PAS Instance seems to be running but client connections hang and agents show RUNNING but never move beyond.
All PAS agents getting spawned but clients aren't able to process work.