i got one article :-https://community.progress.com/s/article/looping-additions-to-longchar-variable-corrupt-memory-of-client-and-attached-database-causing-1179-error . is tat related to this?
Looping additions to LONGCHAR variable corrupt memory of client and attached database causing 1179 error
Looping additions to LONGCHAR variable corrupt memory of client and attached database causing 1179 error
Title
Looping additions to LONGCHAR variable corrupt memory of client and attached database causing 1179 error
URL Name
looping-additions-to-longchar-variable-corrupt-memory-of-client-and-attached-database-causing-1179-error
Article Number
000154164
Environment
Product: OpenEdgeVersion: 11.6, 11.7.0, 11.7.1, 11.7.2, 11.7.3, 11.7.4, 11.7.5OS: All supported platforms
Question/Problem Description
Looping additions to LONGCHAR variable corrupt memory of client and attached database causing 1179 error
After the first 1179 there are no more logins
Client's fail to connect and new remote servers fail to start once shared memory cannot be attached
Steps to Reproduce
prodb x demoproserve x -B 212000mpro x -p x.px.p contains the code example below
Clarifying Information
DEFINE VARIABLE X AS LONGCHAR NO-UNDO.
OUTPUT TO x.txt PAGE-SIZE 0 UNBUFFERED.
ASSIGN X = FILL("X",128).
DO WHILE TRUE:
ASSIGN X = X + X.
PUT UNFORMATTED LENGTH(X) SKIP.
END.
OUTPUT CLOSE.
Error Message
The shared memory does not have the correct MAGIC number (1179)
Defect Number
Defect PSC00350346 / OCTA-20493
Enhancement Number
Cause
More memory can be allocated to a MEMPTR/LONGCHAR than is allowed (between 2 and 4 GB)
On UNIX systems, when this memory structure is cleared, the size is signed long with a negative number which then attempts to clear memory outside of the
processes address space. In this case, it clears memory that is in database shared memory and this memory stomp results in the MAGIC number issue (1179)
On Windows, while greater than 2 GB can be allocated to a MEMPTR/LONGCHAR, the program cannot do anything with it as the buffer copy with fail.
Resolution
Upgrade to OpenEdge 11.7.6, 12.0 where the request input size is checked when allocating memory to a MEMPTR/LONGCHAR. If the input size is negative a message will be returned and terminate the session. This verification is performed on all supported Operating Systems:
Size of MEMPTR/LONGCHAR cannot exceed 2147483647 bytes (19208)
Workaround
Notes
Keyword Phrase
Last Modified Date
7/24/2020 2:24 PM