Salesforce

Remote server crashes with client error 438 and error 49

« Go Back

Information

 
TitleRemote server crashes with client error 438 and error 49
URL NameP116612
Article Number000164118
EnvironmentProduct: Progress
Version: 9.1x
Product: OpenEdge
Version: 10.0x
OS: All supported platforms
Question/Problem Description
Remote server crashes with client error 438 and SYSTEM ERROR 49
After an error 438 a memory violation 49 crashes the remote server

Indexes for table listed in error 438 are clean
ASCII dump of all records for the table listed in error 438 is successful
Steps to Reproduce
Clarifying Information
Error MessageClient attempting to access recid <record-number> not part of file <file-number>. (438)
SYSTEM ERROR: Memory violation. (49)
Defect NumberDefect OE00123769 / PSC00169591
Enhancement Number
Cause
Error 438 is not a defect, it is due to a failed FIND. This can be caused by:
  • Index corruption
  • When RECIDs are stored in the database fields or called in the application code. When a RECID is used for a FIND, and it is no longer valid due to the database being changed or records simultaneously being deleted by another client session at the time for example, error 438 could result. 
The fact that this instance is followed by SYSTEM ERROR 49 and specifically causing the Remote Server to stop, is where the Progress issue lies.  The impact of bringing down a remote server, could be potentially dangerous when the "other" C/S connections to that remote server are also interrupted, resulting in a potential abnormal shutdown when these in-process clients are cleaned up by the watchdog process.

To date, this issue has not been reproducible outside of production environments. In these reported cases where this also results in the Database Broker terminating, have been rare.
Resolution
This issue has been addressed in OpenEdge 10.0B05 and 10.1B.

Error 438 itself no longer throws a SYSTEM ERROR.

A SYSTEM ERROR may still be thrown by the Remote Server if it is consequently experiencing a memory problem. Each remote server keeps track of all its clients' queries (be it static or dynamic) in an area which cannot exceed:
  • 64 KB in 64 bit products and
  • 32 KB for 32 bit products.  
A very common cause for this issue is that dynamic queries or buffers referring to database tables are not cleaned up properly. For further information refer to Article  Remote server crashes with error 9874 or 893 - Client error 2659  
Workaround
Notes
Keyword Phrase
Last Modified Date11/20/2020 7:04 AM

Powered by