I agree that it's likely a subscript range overflow. I believe I had this same symptom for a program, and the cause was trying to write beyond my working-storage (because of attempting to subscript beyond the length of a table.) It wiped out some file area control blocks and caused this error. ________________________________ From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> on behalf of Schmitt, Michael <michael.schm...@dxc.com> Sent: Friday, April 7, 2023 12:35 PM To: IBM-MAIN@LISTSERV.UA.EDU <IBM-MAIN@LISTSERV.UA.EDU> Subject: Re: U4038 - IGZ0099C Internal error CLOSE-FIB was detected in module IGZ@QSAM.
Since no one else has answered, I'll speculate. One possibility is that the file is fine, but it is driving application logic that is stomping on LE, leading to the internal error. If COBOL, try compiling with SSRANGE. And add the HEAPCHK(ON) LE runtime option, such as via CEEOPTS DD. HEAPCHK will check for damage to the heap control information at each call to a Language Environment heap storage management service. If damage is found, it will immediately abend with a U4042. (But it won't abend on the actual line that is causing the damage, since it only checks when LE services are used.) If it is an actual file problem, what is the RECFM? If it is VB, perhaps there's something wrong with the file structure. Try dumping the block that contains the problem record and inspect the BDW and RDW. And, if you copy the file with a utility that does record level copies (such as IEBGENER, but not SYNCGENER!), does it fix it? -----Original Message----- From: IBM Mainframe Discussion List <IBM-MAIN@LISTSERV.UA.EDU> On Behalf Of Crusty Old Guy Sent: Friday, April 7, 2023 11:28 AM To: IBM-MAIN@LISTSERV.UA.EDU Subject: U4038 - IGZ0099C Internal error CLOSE-FIB was detected in module IGZ@QSAM. I have a program that abends with a U4038 on file close. This only happens when a specific record is on an input file. No record, no problem. This is from the dump - IGZ0099C Internal error CLOSE-FIB was detected in module IGZ@QSAM. >From compile unit XXXXXXXX at entry point XXXXXXXX at compile unit offset >+00000B5A at entry offset +00000B5A at address 00007B5A. <> LEAID LEAID001I UNRECOGNIZED CEEMGET FEEDBACK CODE: x000301C259C3C5C500000021 U4038 is usually associated with record or storage size. Is that correct? How can one record alter the size of a storage or record size? Regards, COG ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN