We just got done resolving a very odd error, and I spent a lot of time
constructing an email in order to ask for help here. We now have spotted the
cause, but I hate to waste the work, and the puzzle in case anyone likes
puzzles.
We just finished upgrading from z/OS 1.14 to 2.2. (I know, the rest comes in
phase 3.) A REXX/ISPF app started abending at each call to the external
subroutine named LOG. The call looks like this:
call log <string>
What LOG should do, and used to do, is manipulate the string and send me a TSO
message; what actually happened each time looks like this:
System abend code 0C4, reason code 00000004.
Abend in external subroutine LOG.
28 +++ call log self 'Entering'
Error running SCR0100, line 28: Incorrect call to routine
I added statements here and there trying to get it to give up its secrets but
made little progress. The clues I settled on were:
1) 0C4? That's a really weird code to get from a REXX call, isn't it?
2) It says "incorrect call to routine", but the call is ~not~ incorrect;
there's only one argument and it's any string value.
3) Since LOG's purpose is to send a TSO SEND message, attention focused for a
while on the fact that SYS1.BRODCAST had filled up. But a sysprog determined
it had been full for ages, and it had been sending me messages just fine for
months, until the upgrade.
4) The TSO SEND command continues to work fine, when I call it from the ISPF
command line.
5) The LOG subroutine, too, works fine, when I invoke it from the ISPF command
line using the TSO EX command, like this:
==> tso ex 'hlq.library.name(log)','string'
6) I added SAY statements inside the LOG module, hoping to find out exactly
where it was bogging down, but none of them were executed. I concluded that it
isn't any code inside LOG that's failing, but the call itself; the REXX
interpreter's never getting as far as the LOG exec.
7) I wondered whether a new member named LOG had crept into the SYSPROC or
SYSEXEC concatenation and was supplanting this one, but no.
I commented out all the calls to LOG and everything worked fine.
In the end a sysprog checked the linklist and determined that #7 was on the
right track; there's a new Broadcom module named LOG. So all I gotta do is
rename my LOG module and reïnstate the calls using the new name. But it sure
kept me awake a few nights first.
---
Bob Bridges, [email protected], cell 336 382-7313
/* It is well to remember that the entire universe, with one trifling
exception, is composed of others. -John Andrew Holmes */
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN