MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » August 2014

Re: MCH0601 - I've no idea what's happening



fixed

On 08-Aug-2014 10:54 -0500, Needles,Stephen J wrote:
MCH0601 - I've no idea what's happening.

We are on v7r1 and last TR.

In the examples below, the messages, CONDITIONHANDLER is our
registered condition handler process that is invoked whenever a CPF
error is encountered.

The reference to LIBRARY/ANYPROGRAM is the program that is supposed
to run. It changes, but the line number reference does not.

A number of different, unrelated programs are failing and an RNQ9999
message is sent...the messages are all:

Message: Message received for RPG procedure CONDITIONHANDLER (C G D
F).
Cause: Message was received by RPG procedure CONDITIONHANDLER in
program LIBRARY/ANYPROGRAM at statement 227.

Always line number 227. Dumps show nothing.

The MCH0601 error is for a Job Object and looks like:

<<SNIP ed: msgMCH0601 >>
Message: Space offset X'00887C0F' or X'0000000000000000' is outside
current limit for object QRWTSRVR QUSER 727437.
Cause: A program tried to set a space pointer, tried to use storage
outside a space, or tried to use an unallocated page in teraspace.
The space class is X'03'. The space class designates the type of
space:
<<SNIP>>
03-implicit process space for static storage in activation
group mark X'0000000000000002'.
<<SNIP>>
Offset X'00887C0F' only applies to storage outside teraspace.
X'8000000000000000CE98A40101001000' is a pointer to the
teraspace page or the start of the implicit process space for the
allocation.

I'm totally lost. Any assistance will be appreciated!

Preferably the details [F6=Print or spooled second-level joblog] would be included for the MCH0601 to ensure the full context of the failure is presented. Probably the stmt/227 accurately describes the context of the failure.

The error is suggesting that a reference to the /static storage/ of the job was made at statement 227, but the reference was outside the bounds of the storage provided to the job for the PSSA provided to the activation group identifier of two [probably created for the named activation group for the ANYPROGRAM?]. The implication is that the condition handler is improperly coded, attempting an invalid storage access request; likely an assignment to or from that storage location.

I believe the RNX9999 implies the error was implicitly handled in response to an unmonitored exception, and if so, the MCH0601 can be used to trigger an action [and should by default the existing action would include spooled files QPDSPLOG and QPSRVDMP being produced; wherein the former includes a stack and the latter likely including some of the static storage identified by the pointer, which I suppose would reveal the actual length and implying the large offset was invalid due to being far past the end]. One such action is to pend processing until debug is activated... though if the problem can be reproduced, just starting debug and debugging through to just prior to the point of failure to review the address\pointer references that are eventually made in stmt/227, is possibly the best approach.






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact