PM64520: 'CORRUPT TRAILER' IOEXCEPTION IN GZIPINPUTSTREAM.READTRAILER

Subscribe

You can track all active APARs for this component.

APAR status

Closed as program error.

Error description

Error Message: While running Cognos Content Manager to process
compressed data, the application throws an IOException with the
error string "Corrupt GZIP trailer". This only happens
intermittently (when system load is high), but once the symptom
appears, the server must be restarted before it can function
normally.
The issue is only seen when the server is running on Java 5 (WAS
6) on either z/Linux or z/OS.
.
Stack Trace: java.io.IOException: Corrupt GZIP trailer
at java/util/zip/GZIPInputStream.readTrailer
at java/util/zip/GZIPInputStream.read
at java/io/FilterInputStream.read
at com/cognos/cm/util/GzipInflater.inflate
java.io.IOException: Corrupt GZIP trailer
at java/util/zip/GZIPInputStream.readTrailer
at java/util/zip/GZIPInputStream.read
at java/io/FilterInputStream.read
at com/cognos/cm/multipart/ResponseFileAttachment.write
.

Local fix

This issue only happens when the GZIPInputStream methods are
inlined by the JIT compiler into the
com/cognos/cm/util/GzipInflater.inflate method and/or the
com/cognos/cm/multipart/ResponseFileAttachment.write method. It
can be worked around by excluding the affected com/cognos/cm
methods from JIT compilation.

Problem summary

The problem is caused by a bug in the System z code generator in
the Java 5 JIT compiler. It generates incorrect instructions to
compare a long variable against an int variable that has been
extended to 64 bits and stored into memory. The generated code
miscalculates the memory address for the stored extended int
value, and ends up performing an invalid comparison.

Problem conclusion

This defect will be fixed in:
5.0.0 SR13 FP1
.
The JIT compiler has been updated to generate correct
instructions for this scenario.
.
To obtain the fix:
Install build 20111108 or later