Consultor Eletrônico



Kbase P124509: Database server process, _mprosrv is terminating periodically without reporting errors.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   31/03/2011
Status: Verified

SYMPTOM(s):

Database server process, _mprosrv is terminating periodically without reporting errors.

Database shuts down when Broker is trying to clean up users associated with the dead server.

Users tend to be holding latches associated with Buffer Pool, Hash Table etc.

Database log file showing clients being cleaned up after dead server messages.

Disconnecting dead server -1. (2525)

Disconnecting dead server <number>. (2525)

Disconnecting client <number> of dead server <number>. (2526)

Clients can no longer connect via the AppServer.

The memory dump from ADPlus (a third party tool) shows that the server had > 16383 cursors open at the time the server crashed.

Partial stack trace from _mprosrv on Windows reads:

qrTerm
qrClearQuery
qrdlc
nsaCursorDelete
nsadoix

FACT(s) (Environment):

Clients run code in client/server mode.
Multiple login brokers being started for the database.
Each login broker is being given a different minport and maxport
Clients not connecting to the AppServer are fine
Application being used makes use of many persistent procedures.
No error messages are being reported in the AppServer broker log files.
No error messages are being reported in the AppServer server log files.
Windows
OpenEdge 10.0B
Progress 9.1E04 Service Pack
All Supported Operating Systems

CAUSE:

Bug# OE00150526

CAUSE:

Too many cursors remaining in memory which results in the server (_mprosrv) terminating because of an overflow.

FIX:

Upgrade to 10.2A or higher.

A workaround is to:
Manage structures being placed in memory and clean up after them as necessary. The solution P124514, "How to check for leaked dynamic objects?" is useful for identification of structures / objects being left in memory.