Kbase P150381: ABL: Recursive garbage collection, session crash with C stack overflow or error 1may occur running c
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  4/29/2010 |
|
Status: Verified
SYMPTOM(s):
ABL: Recursive garbage collection, session crash with C stack overflow or error may occur running certain ABL code.
In 10.2A, warning 5407 occurs many times and finally error 1 and the session aborts.
WARNING: -nb exceeded. Automatically increasing from 2010 to 2042. (5407)
bfblst -- Too many block levels. Increase -nb parameter. (1)
The stack at the time of the stack overflow in 10.2B shows something like this, with the same calls over and over...
prow32.dll!runDestructor
prow32.dll!runDestructors
prow32.dll!rnWhackProcedure
prow32.dll!rndelprc
prow32.dll!rndeloo4gl
prow32.dll!rngarbagecollect
prow32.dll!rnexec_entry
prow32.dll!rninterpret
prow32.dll!runDestructor
prow32.dll!runDestructors
prow32.dll!rnWhackProcedure
prow32.dll!rndelprc
prow32.dll!rndeloo4gl
prow32.dll!rngarbagecollect
prow32.dll!rnexec_entry
prow32.dll!rninterpret
prow32.dll!runDestructor
prow32.dll!runDestructors
prow32.dll!rnWhackProcedure
prow32.dll!rndelprc
prow32.dll!rndeloo4gl
prow32.dll!rngarbagecollect
prow32.dll!rnexec_entry
prow32.dll!rninterpret
In 10.2A, warning 5407 occurs many times and finally error 1 and the session aborts:
In 10.2B, due to the increase of the limit for -nb, a C stack overflow.
FACT(s) (Environment):
All Supported Operating Systems
OpenEdge 10.2A
OpenEdge Category: Language (4GL/ABL)
CAUSE:
Bug# OE00191129
CAUSE:
When the code does not explicitly delete the objects by executing the DELETE OBJECT statement, and if there is code in the destructor, then, and depending on the number of objects to be garbage collected, the destructor may be called recursively on the objects and exhaust resources.
FIX:
Upgrade to OpenEdge 10.2A03 or higher. If an upgrade is not feasible, a workaround is to manually delete the objects using the DELETE OBJECT statement.