Consultor Eletrônico



Kbase P66204: GPF on AppServer running a program inside of a memory-mapped procedure library
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   04/10/2010
Status: Verified

SYMPTOM(s):

GPF on AppServer running a program inside of a memory-mapped procedure library

Function call that failed:
rnExecDynStatement

//=====================================================
PROGRESS stack trace
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00601A83 01:00200A83
C:\Progress\91d\PROGRESS\bin\_proapsv.exe

Registers:
EAX:003B0380
EBX:7FFDF000
ECX:003B0390
EDX:00000000
ESI:00000000
EDI:00000000
CS:EIP:001B:00601A83
SS:ESP:0023:0012FB24 EBP:0012FB30
DS:0023 ES:0023 FS:0038 GS:0000
Flags:00010282

Call Stack:
Address Frame
00601A83 0012FB30 rnExecDynStatement+9C
006019E3 0012FB40 rnsqlqopn+D
005F798F 0012FB88 rnsqlopn+325
005CB4AB 0012FBDC rnexec_entry+381
005B6EFA 0012FBE8 rninterpret+30
00459C4C 0012FBF4 cr_run_loaded+25
0045AA35 0012FC3C csodlg+1F7
0045A860 0012FC58 csodlg+22
0045A4F7 0012FC7C init4GLInterface+253
00459E4B 0012FCA4 ReaderClose+5F
0045C9FD 0012FCBC ServerSourceInit+4D
0045C656 0012FCD0 open4GLWriteLast+5B
0045FA50 0012FE2C ub_processRequest+3D1
0045F73B 0012FE70 ub_processRequest+BC
00450C92 0012FE8C csd_dispatch_message+BC
00450051 0012FEE4 drmain+3C2
0044FD59 0012FEFC drmain+CA
0044FCFF 0012FF3C drmain+70
00416876 0012FF4C main+18
007E3913 0012FFC0 mainCRTStartup+E3
[B77E814C7 0012FFF0 GetCurrentDirectoryW+44

//=====================================================
PROGRESS stack trace
//=====================================================
Exception code: C0000005 ACCESS_VIOLATION
Fault address: 00601A83 01:00200A83
C:\Progress\91d\PROGRESS\bin\_proapsv.exe

Registers:
EAX:003B0380
EBX:7FFDF000
ECX:003B0390
EDX:00000000
ESI:00000000
EDI:00000000
CS:EIP:001B:00000000
SS:ESP:0023:0012FFF8 EBP:00000000
DS:0023 ES:0023 FS:0038 GS:0000
Flags:00010282

Call Stack:
Address Frame
00000000 0012FFF4

FACT(s) (Environment):

Memory-mapped procedure library
There are SQL statements in procedures that are included in the memory mapped procedure library.
Progress 9.1D
All Supported Operating Systems

CAUSE:

Bug# OE00100519

CAUSE:

When using NO-ERROR on a SQL-89 statement within a 4GL procedure in 9.1D, the 4GL interpreter has to flag the SQL statement as NO-ERROR on its in-memory copy of the procedure. If the procedure is in a memory-mapped library, this "in-memory" copy is read-only, which causes the access violation.

FIX:

There are two solutions for this issue.

1. Don't use NO-ERROR when calling procedures containing SQL statements in a
memory-mapped pl.

2. Don't use SQL statements in procedures within a memory-mapped pl. Use 4GL statements instead.