Thursday, June 3, 2010

java.util.zip.ZipException: reading zip file central directory failed

Problem Description
While applying opatch, from the front end I see following message.
Do you want to proceed? [y|n]
y
User Responded with: Y
Running make for target iextjob
Running make for target iextjobo
Running make for target client_sharedlib
Running make for target idgmgrl
Running make for target ioracle
Running make for target client_sharedlib
Running make for target itnslsnr
Running make for target iwrap
Running make for target genplusso
ApplySession adding interim patch '9119284' to inventory

Verifying the update...
Inventory check OK: Patch ID 9119284 is registered in Oracle Home inventory with proper meta-data.
java.util.zip.ZipException: unexpected EOF
at java.util.zip.ZipInputStream.read(ZipInputStream.java:159)
at java.io.FilterInputStream.read(FilterInputStream.java:90)
at oracle.opatch.MultiJarUtil.writeOneZipEntryToFile(MultiJarUtil.java:422)
at oracle.opatch.MultiJarUtil.doVerifyLeafLevel(MultiJarUtil.java:259)
at oracle.opatch.JarActionHelper.verify(JarActionHelper.java:291)
at oracle.opatch.JarAction.verifyMultiLevel(JarAction.java:2101)
at oracle.opatch.JarAction.verify(JarAction.java:2022)
at oracle.opatch.OPatchSessionHelper.verifyPatchAction(OPatchSessionHelper.java:2928)
at oracle.opatch.ApplySession.verify(ApplySession.java:2781)
at oracle.opatch.ApplySession.wasThisPatchApplied(ApplySession.java:2391)
at oracle.opatch.ApplySession.processLocal(ApplySession.java:4463)
at oracle.opatch.ApplySession.process(ApplySession.java:5584)
at oracle.opatch.OPatchSession.main(OPatchSession.java:1718)
at oracle.opatch.OPatch.main(OPatch.java:630)
There are 3 jar files under ORACLE_HOME that are not patched.
Files check failed: Some files under ORACLE_HOME are not patched. Please see log file for details.
ApplySession failed: ApplySession failed in system modification phase... 'Verification of patch failed: Files are not updated completely.'
OPatch will attempt to restore the system...
Restoring the Oracle Home...
Checking if OPatch needs to invoke 'make' to restore some binaries...
OPatch was able to restore your system. Look at log file and timestamp of each file to make sure your system is in the state prior to appl ying the patch.
--------------------------------------------------------------------------------
The following warnings have occurred during OPatch execution:
1) OUI-67160:ApplySession for patch ID '9119284': Could not back up following actions for patch rollback:
1) null
2) null
3) null

2) OUI-67124:java.lang.NullPointerException

3) OUI-67124:Files check failed: Some files under ORACLE_HOME are not patched. Please see log file for details.
--------------------------------------------------------------------------------

OPatch failed with error code 73

From the logfile,
INFO:Is the local system ready for patching? [y|n]
INFO:Start to wait for user-input at Fri May 28 00:29:59 EDT 2010
INFO:Finish waiting for user-input at Fri May 28 00:30:05 EDT 2010
INFO:User Responded with: Y
INFO:Start saving patch at Fri May 28 00:30:05 EDT 2010
INFO:Finish saving patch at Fri May 28 00:30:15 EDT 2010
INFO:Start backing up system for restore at Fri May 28 00:30:15 EDT 2010
INFO:Backing up files and inventory (not for auto-rollback) for the Oracle Home
INFO:Backing up files affected by the patch '9119284' for restore. This might take a while...
INFO:Finish backing up system for restore at Fri May 28 00:30:32 EDT 2010
INFO:******* create file /SIDS/app/oracle/product/10.2.0/db/.patch_storage/interim_inventory.txt
INFO:Start backing up system for rollback at Fri May 28 00:30:32 EDT 2010
INFO:Backing up files affected by the patch '9119284' for rollback. This might take a while...
INFO:Going to backup for rollback Jar Action(s) in a consolidated mode.
INFO:Jar Path -> /SIDS/app/oracle/product/10.2.0/db/rdbms/jlib/qsma.jar
INFO:--- Clubbed Actions for this Jar Path to backup for rollback NOW ->
INFO:Backup For Rollback starts for the clubbed jars at --> Fri May 28 00:30:37 EDT 2010
INFO:Stack Description: java.util.zip.ZipException: reading zip file central directory failed
INFO:StackTrace: java.util.zip.ZipFile.open(Native Method)
INFO:StackTrace: java.util.zip.ZipFile.(ZipFile.java:123)
INFO:StackTrace: java.util.jar.JarFile.(JarFile.java:127)
INFO:StackTrace: java.util.jar.JarFile.(JarFile.java:92)
INFO:StackTrace: oracle.opatch.JarActionHelper.backupForRollback(JarActionHelper.java:1032)
INFO:StackTrace: oracle.opatch.JarAction.backupForRollback(JarAction.java:1575)
INFO:StackTrace: oracle.opatch.PatchObject.backupForRollback(PatchObject.java:4339)
INFO:StackTrace: oracle.opatch.ApplySession.processLocal(ApplySession.java:4388)
INFO:StackTrace: oracle.opatch.ApplySession.process(ApplySession.java:5584)
INFO:StackTrace: oracle.opatch.OPatchSession.main(OPatchSession.java:1718)
INFO:StackTrace: oracle.opatch.OPatch.main(OPatch.java:630)
INFO:Stack Description: java.lang.NullPointerException
INFO:StackTrace: oracle.opatch.JarActionHelper.backupForRollback(JarActionHelper.java:1204)
INFO:StackTrace: oracle.opatch.JarAction.backupForRollback(JarAction.java:1575)
INFO:StackTrace: oracle.opatch.PatchObject.backupForRollback(PatchObject.java:4339)
INFO:StackTrace: oracle.opatch.ApplySession.processLocal(ApplySession.java:4388)
INFO:StackTrace: oracle.opatch.ApplySession.process(ApplySession.java:5584)
INFO:StackTrace: oracle.opatch.OPatchSession.main(OPatchSession.java:1718)
INFO:StackTrace: oracle.opatch.OPatch.main(OPatch.java:630)
INFO:Going to backup for rollback Jar Action(s) in a consolidated mode.
INFO:Jar Path -> /SIDS/app/oracle/product/10.2.0/db/rdbms/jlib/qsma.jar
INFO:--- Clubbed Actions for this Jar Path to backup for rollback NOW ->
INFO:Backup For Rollback starts for the clubbed jars at --> Fri May 28 00:30:37 EDT 2010
INFO:Stack Description: java.util.zip.ZipException: reading zip file central directory failed

The following actions have failed:
WARNING:OUI-67124:java.lang.NullPointerException

INFO:
Do you want to proceed? [y|n]
INFO:Start to wait for user-input at Fri May 28 01:43:18 EDT 2010
INFO:Finish waiting for user-input at Fri May 28 01:45:24 EDT 2010
INFO:User Responded with: Y
INFO:Running make for target iextjob
INFO:Start invoking 'make' at Fri May 28 01:45:25 EDT 2010Fri May 28 01:45:25 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:45:28 EDT 2010
INFO:Running make for target iextjobo
INFO:Start invoking 'make' at Fri May 28 01:45:28 EDT 2010Fri May 28 01:45:28 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:45:29 EDT 2010
INFO:Running make for target client_sharedlib
INFO:Start invoking 'make' at Fri May 28 01:45:29 EDT 2010Fri May 28 01:45:29 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:47:12 EDT 2010
INFO:Running make for target idgmgrl
INFO:Start invoking 'make' at Fri May 28 01:47:12 EDT 2010Fri May 28 01:47:12 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:47:14 EDT 2010
INFO:Running make for target ioracle
INFO:Start invoking 'make' at Fri May 28 01:47:14 EDT 2010Fri May 28 01:47:14 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:48:18 EDT 2010
INFO:Running make for target client_sharedlib
INFO:Start invoking 'make' at Fri May 28 01:48:18 EDT 2010Fri May 28 01:48:18 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:49:42 EDT 2010
INFO:Running make for target itnslsnr
INFO:Start invoking 'make' at Fri May 28 01:49:42 EDT 2010Fri May 28 01:49:42 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:49:44 EDT 2010
INFO:Running make for target iwrap
INFO:Start invoking 'make' at Fri May 28 01:49:44 EDT 2010Fri May 28 01:49:44 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:49:54 EDT 2010
INFO:Running make for target genplusso
INFO:Start invoking 'make' at Fri May 28 01:49:54 EDT 2010Fri May 28 01:49:54 EDT 2010
INFO:Finish invoking 'make' at Fri May 28 01:49:56 EDT 2010
INFO:Finish modifying the system at Fri May 28 01:49:57 EDT 2010
INFO:ApplySession adding interim patch '9119284' to inventory
INFO:Start saving patch to inventory at Fri May 28 01:49:57 EDT 2010
INFO:Registered Encoding value is : 8859_1 for the file /SIDS/app/oracle/product/10.2.0/db/inventory/oneoffs/9119284/etc/config/actions.xml
INFO:Finish saving patch to inventory at Fri May 28 01:50:03 EDT 2010
INFO:PatchObject::createPatchObject() Patch location is /SIDS/app/oracle/product/10.2.0/db/inventory/oneoffs/9119284
INFO:PatchObject::createPatchObject() patch location is /SIDS/app/oracle/product/10.2.0/db/inventory/oneoffs/9119284
INFO:
Verifying the update...
INFO:PatchObject::PatchObject() Patch location is /nas/sysadm/oracle/psu/HP/9119284
INFO:PatchObject::createPatchObject() Patch location is /nas/sysadm/oracle/psu/HP/9119284
INFO:PatchObject::createPatchObject() patch location is /nas/sysadm/oracle/psu/HP/9119284
INFO:PatchObject::createPatchObject() Patch location is /SIDS/app/oracle/product/10.2.0/db/inventory/oneoffs/9119284
INFO:PatchObject::createPatchObject() patch location is /SIDS/app/oracle/product/10.2.0/db/inventory/oneoffs/9119284
INFO:Inventory check OK: Patch ID 9119284 is registered in Oracle Home inventory with proper meta-data.
INFO:   verifying 38 copy files.
INFO:   verifying 4 jar files.
INFO:Verify top-level entry oracle/CDC/Purge.class using file /SIDS/app/oracle/product/10.2.0/db/.patch_storage/9119284_Dec_28_2009_03_45_13/scratch/work/Purge.class and /nas/sysadm/oracle/psu/HP/9119284/files//rdbms/jlib/CDC.jar/oracle/CDC/Purge.class
INFO:Verify top-level entry oracle/qsma/QsmaDataManager.class using file /SIDS/app/oracle/product/10.2.0/db/.patch_storage/9119284_Dec_28_2009_03_45_13/scratch/work/QsmaDataManager.class and /nas/sysadm/oracle/psu/HP/9119284/files//rdbms/jlib/qsma.jar/oracle/qsma/QsmaDataManager.class
INFO:Verify top-level entry oracle/qsma/QsmaDataReports.class using file /SIDS/app/oracle/product/10.2.0/db/.patch_storage/9119284_Dec_28_2009_03_45_13/scratch/work/QsmaDataReports.class and /nas/sysadm/oracle/psu/HP/9119284/files//rdbms/jlib/qsma.jar/oracle/qsma/QsmaDataReports.class
INFO:java.util.zip.ZipException: unexpected EOF
INFO: at java.util.zip.ZipInputStream.read(ZipInputStream.java:159)
INFO: at java.io.FilterInputStream.read(FilterInputStream.java:90)
INFO: at oracle.opatch.MultiJarUtil.writeOneZipEntryToFile(MultiJarUtil.java:422)
INFO: at oracle.opatch.MultiJarUtil.doVerifyLeafLevel(MultiJarUtil.java:259)
INFO: at oracle.opatch.JarActionHelper.verify(JarActionHelper.java:291)
INFO: at oracle.opatch.JarAction.verifyMultiLevel(JarAction.java:2101)
INFO: at oracle.opatch.JarAction.verify(JarAction.java:2022)
INFO: at oracle.opatch.OPatchSessionHelper.verifyPatchAction(OPatchSessionHelper.java:2928)
INFO: at oracle.opatch.ApplySession.verify(ApplySession.java:2781)
INFO: at oracle.opatch.ApplySession.wasThisPatchApplied(ApplySession.java:2391)
INFO: at oracle.opatch.ApplySession.processLocal(ApplySession.java:4463)
INFO: at oracle.opatch.ApplySession.process(ApplySession.java:5584)
INFO: at oracle.opatch.OPatchSession.main(OPatchSession.java:1718)
INFO: at oracle.opatch.OPatch.main(OPatch.java:630)
INFO:Verify top-level entry oracle/qsma/QsmaFileManager.class using file /SIDS/app/oracle/product/10.2.0/db/.patch_storage/9119284_Dec_28_2009_03_45_13/scratch/work/QsmaFileManager.class and /nas/sysadm/oracle/psu/HP/9119284/files//rdbms/jlib/qsma.jar/oracle/qsma/QsmaFileManager.class
INFO:   verifying 300 archive files.
SEVERE:There are 3 jar files under ORACLE_HOME that are not patched.
WARNING:OUI-67124:Files check failed: Some files under ORACLE_HOME are not patched. Please see log file for details.
SEVERE:OUI-67073:ApplySession failed: ApplySession failed in system modification phase... 'Verification of patch failed: Files are not updated completely.'


Cause of the Problem
The file "$ORACLE_HOME/rdbms/jlib/qsma.jar" itself is corrupted

The command jar tvf $ORACLE_HOME/rdbms/jlib/qsma.jar generates "java.util.zip.ZipException: unexpected EOF"

Solution of the Problem

For 10.2.0.4, we can consider extracting this file from 10.2.0.4 patchset staging kit.

- cd 10.2.0.4 Patchset Staging kit>/Disk1/stage/Patches/oracle.rdbms.rsf/10.2.0.4.0/1/DataFiles
- mkdir /tmp/qsma_jar
- cp filegroup4.1.1.jar /tmp/qsma_jar
- cd /tmp/qsma_jar
- jar xvf filegroup4.1.1.jar

-- This will give many files , including "qsma.jar" .

Rename the existing qsma.jar in the 10.2.0.4 Oracle Home and replace it with the file present in
-- /tmp/qsma_jar

Now use the ORACLE_HOME/jdk/bin/jar to check if we can list contents of this qsma.jar

If successful, proceed to apply the remaining CPU patch.

No comments:

Post a Comment