Consultor Eletrônico



Kbase P170180: Returning an extent variable from a function or method can trigger errors depending on the number of
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   14/09/2010
Status: Unverified

SYMPTOM(s):

Returning an extent variable from a function or method can trigger errors depending on the number of elements in the extent.

Defining a user defined function or method that returns an EXTENT value.

One of the following errors may be seen when calling the function/method:

SYSTEM ERROR: -s exceeded. Raising STOP condition and attempting to write stack trace to file 'procore'. Consider increasing -s startup parameter. (5635)

SYSTEM ERROR: sizditm -- invalid type. (51)

If error 51 is seen, the error will also crash.

FACT(s) (Environment):

OpenEdge 10.2B
All Supported Operating Systems

CAUSE:

Bug# OE00199058

CAUSE:

The return value of a method or function is placed in the stack memory, specified by the -s startup parameter. If this value is too large, the error 5635 should occur.
The bug is hit when the error 51 occurs instead.

FIX:


Upgrade to OpenEdge 10.2B02 or later

The bug fix in the service pack will stop the "SYSTEM ERROR: sizditm -- invalid type. (51)"

To avoid the error 5635 at all times:
Pass the extent as an output parameter extent instead of as the return value. Doing so will avoid using the stack space (-s) to hold the extent value.
This will also work around the error 51 in releases before OpenEdge 10.2B02.