Learn it on Mainframe Path. Do it with MainframeKit.Learn on Mainframe Path ▸
MainframeKit

U4088

Language Environment: storage condition while handling a storage conditionLANGUAGE ENVIRONMENT USER ABEND

Language Environment hit a storage problem while it was already handling a storage condition, so it ended the enclave. The reason code shows which request failed.

MOST LIKELY

5B-63: stack pointer, guard field or back chain damaged (63 is probably a storage overlay)

FIRST CHECK

Reason 96 (decimal): look for a stack buffer overflow in your code.

TRY IT ▸

Record decoder

What it means

U4088 means Language Environment (LE) ran into a storage condition while it was still dealing with an earlier one. The reason code shows the kind of request that failed, and it is the main clue to the cause. This page gives codes in hex, with decimal where the fixes need it.

The codes cover stack pointer and guard damage, free storage requests, Debug Tool and MEMCHECK storage routines, running out of storage for the stack, and failures when LE expands or switches stacks. Some point to storage being overwritten, so check your own code first. This page covers z/OS Language Environment only, not z/VSE.

Typical causes

  • 5B-63: stack pointer, guard field or back chain damaged (63 is probably a storage overlay)
  • 64-6C and C8-D8: a free storage request failed (C8-D8 is the second request)
  • 6E-74: Debug Tool storage control blocks corrupted
  • 75-7B: Down stack overflow handling, or an invalid stack segment during stack growth, went wrong
  • 12C: a call to CEEVFSTR failed
  • 190-191: the MEMCHECK storage tool could not start or ran out of storage
  • 3E8-3F8: getting stack storage failed and no reserve stack segment was free, so the out-of-storage condition could not be signalled
  • BB8-BC8: getting stack storage failed after the out-of-storage condition had already been signalled to user handlers
  • 400: out of storage with no reserve stack allocated
  • 800-80C: stack expansion or stack switching failed
  • nnn: a critical condition could not be retried, so the module terminated

How to fix it

  1. Reason 96 (decimal): look for a stack buffer overflow in your code.
  2. Reason 1001 or 1004 (decimal): increase the region size or check for infinite recursion.
  3. Reason 1024 (decimal): increase the region size or request a reserve stack.
  4. Use the STORAGE runtime option to see more of the situation before storage ran out, or let a user handler respond to the condition.
  5. Reason codes 5B to D8 hex (91 to 216 decimal): probable internal fault or storage corruption, so keep the dump and send it to IBM.

Example

Illustrative only; names and values are invented.

IEF450I PAYJOB01 STEP030 - ABEND=S000 U4088 REASON=00000060