View previous topic :: View next topic
|
Author |
Message |
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Hello Team,
Our job is abending with following error code in sysout. But when I looked into the IBM fault analyzer it is showing the job has abended because of S0C7. Sometime the Job ended okay with normal restart. But now the job is abending even after restart.
I have checked the data, everything is correct. There is no reason for S0C7.
The line number on which fault analyzer is showing S0C7 is an assignment statement where a PIC variable is getting assigned to bin fixed variable. The PIC variable has numeric value. S0C7 should not have occurred.
Could you guys help me identifying the error. This issue is occurring in production.
SYSOUT:
IBM0472S ONCODE=290 The INVALIDOP condition was raised.
Regards
Biswajit |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
|
|
|
|
How do you KNOW that the value is correct? Have you displayed it? Are you assigning into an array? |
|
Back to top |
|
|
Garry Carroll
Senior Member
Joined: 08 May 2006 Posts: 1205 Location: Dublin, Ireland
|
|
|
|
Quote: |
There is no reason for S0C7. |
If this were true, there'd be no S0C7.
Can you show the declaration of variables and the assignment statement(s). What value is being assigned?
Garry. |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Thank you Nic and Garry for the quick reply on the issue. It is very much appreciated.
PFB the variable declaration and assignment
PIC variable declaration:
2 kc_kondbah04 pic'(10)9' init(0),
Bin fixed declaration:
dcl inp_seq_num bin fixed(31) init(0);
Assignment and lines after that:
inp_seq_num = kcKond_h.kc_kondbah04;
if verify(work_seq_nummer,zero) = 0 &
seqi.seq_nummer ^= kcKond_h.kc_kondbah04
then do;
call u_fehler(16,'');
work_input_ok = 'N';
end;
Message from Fault analyzer:
The cause of the failure was program XXXXXX in module XXXXXX. The PL/I source
code that immediately preceded the failure was:
Source
File # Line #
------ ------
000000 000778 inp_seq_num = kcKond_h.kc_kondbah04;
Fault analyzer also mentioned the value of kcKond_h.kc_kondbah04 at the time of assignment and it is correct.
No one has any idea how to solve this problem. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
What is the value of kc_kondbah04? You DO realize, I hope, that not all 10-digit values can be stored in a 32-bit word -- hence if the value cannot be stored in inp_seq_num, what happens? |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Max value a bin fixed(32) can hold is 2147483648. So the PIC declaration is Okay.
The program has been running for 1 year successfully with the same code. The problem is occurring since 20 days. There is no change in Job or program. The funny thing is sometimes the job executes successfully after restart in CTRL-M.
Some more information from fault analyzer.
Source
File # Line #
------ ------
000000 000460 INP_SEQ_NUM FIXED BIN(31,0) AUTO = X'00000000'
000000 000386 KC_KONDBAH04 PIC '(10)9' BASED = X'F0F0F0F0F0F0F3F5F5F9' |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
Quote: |
Max value a bin fixed(32) can hold is 2147483648. So the PIC declaration is Okay. |
Until you get a value of 4588313000 in the variable. Merely saying the code has run fine for a year (or 5 years or whatever) does NOT mean the code won't cause problems tomorrow -- it all depends upon what value is stored in KC_KONDBAH04, and unless that is a fixed value there is ALWAYS the potential for a problem with your assignment statement.
Quote: |
The funny thing is sometimes the job executes successfully after restart in CTRL-M. |
This implies the problem is something else entirely -- such as a wild branch or some other external action impacting the code. Such problems are notoriously difficult to diagnose and correct. If your site has a code analyzer, you need to turn it on for the program and take the performance hit until you collect enough data to figure out the true problem and resolve it. |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Robert,
IBM fault analyzer is pointing to the assignment statement . I have also mention the value of KC_KONDBAH04. The value of this field is X'F0F0F0F0F0F0F3F5F5F9' .
I did not say that If a program is running for long time it will not abend in future. This is a very strange problem. Now we are thinking about changing bin fixed variable to PIC. |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1314 Location: Vilnius, Lithuania
|
|
|
|
Sprinkle the code with "PUT DATA(whatever)" statements around the abend, or as anyone with a bit of sense would do, run the program through Debug Tool...
And ONCODE 290 (INVALIDOP) is not a S0C7!
Quote: |
Status
INVALIDOP is enabled throughout the program, except within the scope of the NOINVALIDOP condition prefix.
Result
The result of the invalid operation is undefined.
Cause and syntax
The INVALIDOP computational condition is raised when any of the following are detected during the evaluation of IEEE floating-point expressions.
- Subtraction of two infinities
- Multiplication of infinity by 0
- Division of two infinities
- Division of zero by zero
- Invalid floating-point data
|
Show us the compiler options used, aka this
Code: |
aggregate(dec)
arch(10)
attributes(s)
backreg(5)
bifprec(31)
blank('05'x)
blkoff
caserules(keyword(lower))
ceestart(last)
check(noconformance nostorage)
cmpat(v2)
codepage(1140)
nocommon
nocompile(s)
copyright('(C) Copyright Robert AH Prins')
csect
csectcut(4)
currency('$')
nodbcs
dd('sysprint','sysin','syslib','syspunch',*,*,*,*)
dd(*,*,*,*,'syslin','sysadata','sysxmlsd','sysdebug')
ddsql('')
decimal(nofoflonasgn nofoflonmult noforcedsign notruncfloat
default(aligned)
default(ibm)
default(ebcdic)
default(assignable)
default(nobin1arg)
default(byaddr)
default(connected)
default(desclocator)
.
.
. |
lot, the version of the compiler used, aka the first line of the listing, format like "V4.R5.M0 (Built:20170125)", and way more context of the source! |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Prino,
I am from production support so I do not have authorization to modify the code and test it in test environment. So I cannot display the data using PUT SKIP. I have requested development team to do it.
PFB the compiler listing. let me know if you need any more data.
Code: |
5655-W67 IBM(R) Enterprise PL/I for z/OS V4.R5.M0 (Built:20160503)
Options Specified
Install:
Command: +DD:CSSTD PP(,,MACRO,),
File: DD:CSSTD
SYSPARM('PLO')
CHECK(CONFORMANCE)
CHECK(STORAGE)
DISPLAY(WTO(ROUTCDE(11),DESC(7)))
EXTRN(SHORT)
GONUMBER(NOSEPARATE)
LIMITS(FIXEDBIN(31,63))
LIMITS(FIXEDDEC(15,31))
LINECOUNT(32767)
MARGINS(2,72,0)
MAXMEM(2097152)
MAXMSG(I,32767,W,32767,E,32767,S,32767)
NOT('^¬')
ONSNAP(STRINGRANGE)
ONSNAP(STRINGSIZE)
OPTIMIZE(2)
OR('!|¦')
PPMACRO('CASE(ASIS)')
NORENT
RULES(NOLAXNESTED(SOURCE))
RULES(NOLAXQUAL(STRICT,FORCE))
RULES(NOPADDING(SOURCE))
RULES(NOPROCENDONLY(SOURCE))
RULES(NOUNREF(SOURCE))
XINFO(DEF)
XINFO(MSG)
XINFO(SYM)
XINFO(SYN)
XINFO(XML)
Line.File Process Statements
1.0 *PROCESS RULES(BYNAME);
Install: AGGREGATE(HEXADEC)
ARCH(11)
ATTRIBUTES(FULL)
BACKREG(5)
BIFPREC(31)
NOBLKOFF
CMPAT(V2)
CODEPAGE(01148)
NOCOMMON
CSECT
CSECTCUT(4)
DD(SYSPRINT,SYSIN,SYSLIB,SYSPUNCH,SYSLIN,SYSADATA,SYSXMLSD,SYSDEBUG)
DDSQL(SYSLIB)
DEFAULT(ALIGNED)
DEFAULT(EBCDIC)
DEFAULT(BYADDR)
DEFAULT(DESCLOCATOR)
DEFAULT(DESCRIPTOR)
DEFAULT(DUMMY(ALIGNED))
DEFAULT(NATIVE)
DEFAULT(NATIVEADDR)
DEFAULT(INLINE)
DEFAULT(LINKAGE(OPTLINK))
DEFAULT(NULL370)
DEFAULT(NULLSTRADDR)
DEFAULT(NULLSTRPTR(NULL))
DEFAULT(RETURNS(BYADDR))
NODLLINIT
EXIT
FILEREF
FLAG(I)
FLOAT(AFP(NOVOLATILE))
FLOAT(NODFP)
NOHGPR
NOINCLUDE
LIMITS(STRING(32K))
NOMACRO
MAP
MDECK
MSGSUMMARY(NOXREF)
NONAME
NEST
NUMBER
OBJECT
OFFSET
OPTIONS(ALL)
PRECTYPE(DECRESULT)
PREFIX(CONVERSION)
PREFIX(FIXEDOVERFLOW)
PREFIX(INVALIDOP)
PREFIX(OVERFLOW)
PREFIX(UNDERFLOW)
PREFIX(ZERODIVIDE)
PROCESS(KEEP)
REDUCE
RESPECT(DATE)
RULES(IBM)
RULES(NOBYNAME)
RULES(NOLAXBIF)
RULES(NOLAXCTL)
RULES(NOLAXDCL)
RULES(NOLAXDEF)
RULES(NOLAXIF)
RULES(NOLAXLINK)
RULES(NOLAXPUNC)
RULES(NOLAXSEMI)
RULES(NOLAXSTRZ)
RULES(NOMULTICLOSE)
RULES(NOSELFASSIGN)
SOURCE
NOSTMT
STORAGE
USAGE(ROUND(IBM))
USAGE(UNSPEC(IBM))
WCHAR(BIGENDIAN)
WINDOW(1970)
NOWRITABLE(FWS)
XREF(FULL)
Options Used
AGGREGATE(HEXADEC)
ARCH(11)
ATTRIBUTES(FULL)
BACKREG(5)
BIFPREC(31)
BLANK('05'x)
NOBLKOFF
CASERULES( KEYWORD( MIXED ) )
CEESTART(FIRST)
+ CHECK( CONFORMANCE STORAGE )
CMPAT(V2)
CODEPAGE(01148)
NOCOMMON
NOCOMPILE(S)
NOCOPYRIGHT
CSECT
CSECTCUT(4)
CURRENCY('$')
NODBCS
DD('SYSPRINT','SYSIN','SYSLIB','SYSPUNCH','SYSLIN','SYSADATA','SYSXMLSD'
DDSQL('SYSLIB')
DECIMAL( FOFLONASGN NOFOFLONMULT NOFORCEDSIGN NOTRUNCFLOAT )
DEFAULT(IBM ASSIGNABLE NOINITFILL NONCONNECTED
DESCRIPTOR DESCLOCATOR DUMMY(ALIGNED) ORDINAL(MIN)
BYADDR RETURNS(BYADDR) LINKAGE(OPTLINK) NORETCODE
INLINE REORDER NOOVERLAP NONRECURSIVE ALIGNED NULL370
BIN1ARG PSEUDODUMMY NULLSTRADDR NULLSTRPTR(NULL) EVENDEC
SHORT(HEXADEC) EBCDIC HEXADEC NATIVE NATIVEADDR E(HEXADEC))
DEPRECATE(
BUILTIN()
ENTRY()
INCLUDE()
VARIABLE()
STMT()
)
DEPRECATENEXT(
BUILTIN()
ENTRY()
INCLUDE()
VARIABLE()
STMT()
)
+ DISPLAY( WTO( ROUTCDE( 11 ) DESC( 7 ) ) )
NODLLINIT
EXIT('' 'IBMUEXIT')
+ EXTRN(SHORT)
FILEREF
FLAG(I)
FLOAT( AFP(NOVOLATILE) NODFP )
FLOATINMATH(ASIS)
NOGOFF
+ GONUMBER(NOSEPARATE)
NOGRAPHIC
NOHGPR
NOIGNORE
INCAFTER(PROCESS(""))
NOINCDIR
NOINCLUDE
NOINITAUTO
NOINITBASED
NOINITCTL
NOINITSTATIC
NOINSOURCE
NOINTERRUPT
JSON( CASE(UPPER) )
LANGLVL(OS)
+ LIMITS( EXTNAME(7) FIXEDBIN(31,63) FIXEDDEC(15,31) NAME(100) STRING(32K)
+ LINECOUNT(32767)
NOLINEDIR
NOLIST
LISTVIEW(SOURCE)
NOMACRO
MAP
MARGINI(' ')
+ MARGINS(2,72)
MAXBRANCH(2000)
MAXGEN(100000)
+ MAXMEM(2097152)
+ MAXMSG(S 32767)
MAXNEST( BLOCK(17) DO(17) IF(17) )
MAXSTMT(4096)
MAXTEMP(50000)
MDECK
MSGSUMMARY(NOXREF)
NONAME
NAMES('@#$' '@#$')
NATLANG(ENU)
NEST
+ NOT('^¬')
NUMBER
OBJECT
OFFSET
+ ONSNAP( STRINGRANGE STRINGSIZE )
+ OPTIMIZE(2)
OPTIONS(ALL)
+ OR('!|¦')
+ PP( MACRO )
NOPPCICS
NOPPINCLUDE
PPLIST(KEEP)
+ PPMACRO('CASE(ASIS)')
NOPPSQL
NOPPTRACE
PRECTYPE(DECRESULT)
PREFIX(CONVERSION FIXEDOVERFLOW INVALIDOP OVERFLOW
NOSIZE NOSTRINGRANGE NOSTRINGSIZE NOSUBSCRIPTRANGE
UNDERFLOW ZERODIVIDE)
NOPROCEED(S)
PROCESS(KEEP)
QUOTE('"')
REDUCE
NORENT
RESEXP
RESPECT(DATE)
RTCHECK( NONULLPTR )
+ RULES(IBM NOBYNAME CONTROLLED NODECSIZE
+ ELSEIF EVENDEC GOTO GLOBALDO
+ NOLAXBIF NOLAXCTL NOLAXDCL NOLAXDEF
+ LAXENTRY NOLAXIF LAXINOUT NOLAXLINK
+ LAXMARGINS NOLAXNESTED(SOURCE) NOLAXPUNC NOLAXQUAL(STRICT,FORCE)
+ LAXRETURN LAXSCALE NOLAXSEMI LAXSTG
+ LAXSTMT NOLAXSTRZ NOMULTICLOSE NOPADDING(SOURCE)
+ NOPROCENDONLY(SOURCE) RECURSIVE NOSELFASSIGN NOUNREF(SOURCE))
NOSEMANTIC(S)
NOSERVICE
SOURCE
SPILL(512)
STATIC(SHORT)
NOSTDSYS
NOSTMT
STORAGE
STRINGOFGRAPHIC(GRAPHIC)
NOSYNTAX(S)
+ SYSPARM('PLO')
SYSTEM(MVS)
NOTEST
UNROLL(AUTO)
USAGE( HEX(SIZE) ROUND(IBM) SUBSTR(STRICT) UNSPEC(IBM) )
WIDECHAR(BIGENDIAN)
WINDOW(1970)
NOWRITABLE(FWS)
+ XINFO( DEF MSG SYM SYN XML )
XML( CASE(UPPER) XMLATTR(APOSTROPHE) )
XREF(FULL)
|
|
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1314 Location: Vilnius, Lithuania
|
|
|
|
The only thing that is worrying is the fact that your compiler has not been updated for 8 months so it's out-of-date, and given that DFP instructions are now used in quite a few conversions, that might be something to look at. |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
I am not an expert on compiler but just a thougt, if the compiler is out-of-date then the job should abend all the time. But the job is not always abending. It is abending randomly and it is running successfully after restart.
Our Development team is changing something and testing it. In the listing of testing code the version of compiler is V4.R5.M0 (Built:20160829). I hope the issue will be resolved. |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1314 Location: Vilnius, Lithuania
|
|
|
|
That version of the compiler is still six months behind the current service level! |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Prino, Could you please tell me how the compiler version would have an impact on my case? |
|
Back to top |
|
|
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
Biswajit Pattanayak wrote: |
... The program has been running for 1 year successfully with the same code. ... |
So what. My personal record. Error code created 1975. Failed 1989. The code failed to respond correctly to a rarely occurring data error. The code detected the data error; the response was incorrect. A designed in work around (which caused the program to run much slower) was available which immediately corrected the problem until a permanent correction was developed. |
|
Back to top |
|
|
Nic Clouston
Global Moderator
Joined: 10 May 2007 Posts: 2454 Location: Hampshire, UK
|
|
|
|
If you are in production support then you should not be worrying about this. It is the progammer's job to find and fix the error. Al you should be doing is verifying the correctness of the data. If it is correct then the program is wrong - not your problem. If the data is wrong - pass it back to whoever provides it and get them to fix. |
|
Back to top |
|
|
Biswajit Pattanayak Currently Banned New User
Joined: 24 Apr 2013 Posts: 15 Location: India
|
|
|
|
Hello steve-myers,
Quote: |
So what. My personal record. Error code created 1975. Failed 1989. The code failed to respond correctly to a rarely occurring data error. The code detected the data error; the response was incorrect. A designed in work around (which caused the program to run much slower) was available which immediately corrected the problem until a permanent correction was developed.
Read more: ibmmainframes.com/viewtopic.php?p=340003#340003#ixzz4ggFXW470
|
Instead providing any valid solution or any information that could help you are just saying which everyone knows. I never said that if the code is running for long time it will not abend in future. When I said the code is running for a 1 year successfully with same code, I mean the assignment statement for which the code is abending is not causing the problem.
If you do not have any solution or idea or any information then just stay away for this discussion. |
|
Back to top |
|
|
prino
Senior Member
Joined: 07 Feb 2009 Posts: 1314 Location: Vilnius, Lithuania
|
|
|
|
Biswajit Pattanayak wrote: |
If you do not have any solution or idea or any information then just stay away for this discussion. |
And that's what I will do with every future posting from you on this forum. |
|
Back to top |
|
|
Rohit Umarjikar
Global Moderator
Joined: 21 Sep 2010 Posts: 3076 Location: NYC,USA
|
|
|
|
Quote: |
If you do not have any solution or idea or any information then just stay away for this discussion. |
If you don't like replies then why hang in here. They are expert so respect their thoughts and experience. I am sure they have much more relevant experience than your age.
Moreover, if you disagree wait till you agree with some other replies or move on; You are asking here because none from your organization could able to solve it so be patient nothings always come at one go.
If I were you I could first try all the possibilities mentioned IBM0472S so did you do that? |
|
Back to top |
|
|
|