A developer told me that two package executions died with ORA-08103 errors and he didn’t know which object caused the errors.
I found two trace files that had the following contents:
*** SESSION ID:(865.1201) 2017-04-17 10:17:09.476 OBJD MISMATCH typ=6, seg.obj=21058339, diskobj=21058934, dsflg=100000, dsobj=21058339, tid=21058339, cls=1 *** SESSION ID:(595.1611) 2017-04-17 10:17:35.395 OBJD MISMATCH typ=6, seg.obj=21058340, diskobj=21058935, dsflg=100000, dsobj=21058340, tid=21058340, cls=1
Bug 13844883 on Oracle’s support site gave me the idea to look up the object id for the diskobj part of the trace as the current object id. So, I needed to look up 21058934 and 21058935. I used this query to find the objects:
select * from dba_objects where DATA_OBJECT_ID in (21058934, 21058935);
This pointed to two index partitions that had been rebuilt while the package was running. I’m pretty sure this caused the ORA-08103 error. So, if you get an ORA-08103 error find diskobj in the trace file and look it up as DATA_OBJECT_ID in dba_objects.