Kbase P164678: Runaway AppServer process caused by code setting memptr to size 0 on protected memory.
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  27/04/2010 |
|
Status: Unverified
SYMPTOM(s):
Runaway AppServer process caused by code setting memptr to size 0 on protected memory.
AppServer process runs ABL code which issues a statement to set memptr size to 0.
Used userdump to get stack of AppServer process.
Stack of AppServer process shows the fmFreeMemptr function as the last OpenEdge function called:
0012f800 00441d59 _proapsv!fmFreeMemptr+0xc9
0012f8e0 0044c213 _proapsv!fmrawo+0x339
0012f950 0066cf4a _proapsv!fmeval+0x503
0012fa14 0068a9d5 _proapsv!rnasgsimple+0x3ea
0012fa60 0063c872 _proapsv!rnexec_entry+0x225
...
ABL code using external functions from a Windows dll which is setting up memory addresses.
FACT(s) (Environment):
Windows
OpenEdge 10.x
CAUSE:
The memory invoked by the Windows DLL is protected and is not allowing other programs to modify the memory.
FIX:
If an external function protects memory it may be necessary to avoid performing any adjustment to a memptr as this may return an error status that is unexpected by the ABL code and therefore will likely cause erratic behavior within the ABL code.