You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tika.apache.org by "Tim Allison (Jira)" <ji...@apache.org> on 2024/03/25 17:10:00 UTC

[jira] [Updated] (TIKA-4221) Regression in pack200 parsing in commons-compress

     [ https://issues.apache.org/jira/browse/TIKA-4221?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tim Allison updated TIKA-4221:
------------------------------
    Description: 
There's a regression in pack200 that leads to the InputStream being closed even if wrapped in a CloseShieldInputStream.

This was the original signal that something was wrong, but the real problem is in pack200, not xz.


We noticed ~10 xz files with fewer attachments in the recent regression tests in prep for the 2.9.2 release. This is 10 out of ~4500. So, it's a problem, but not a blocker (IMHO).

The stacktrace from {{https://corpora.tika.apache.org/base/docs/commoncrawl3/YE/YEPTQ2CBI7BJ26PPVBTKZIALFSUQFDZH}}  looks like this:

3: X-TIKA:EXCEPTION:embedded_exception : org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException from org.apache.tika.parser.DefaultParser@56a4479a
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:304)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
	at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:152)
	at org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:259)
	at org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)
	at org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:109)
	at org.apache.tika.parser.pkg.CompressorParser.parse(CompressorParser.java:229)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
	at org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:164)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:446)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:436)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:424)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:418)
	at org.apache.tika.parser.AutoDetectParserTest.oneOff(AutoDetectParserTest.java:563)
...
Caused by: org.tukaani.xz.XZIOException: Stream closed
	at org.tukaani.xz.SingleXZInputStream.available(Unknown Source)
	at org.apache.commons.compress.compressors.xz.XZCompressorInputStream.available(XZCompressorInputStream.java:115)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at java.io.BufferedInputStream.available(BufferedInputStream.java:410)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.skipRecordPadding(TarArchiveInputStream.java:800)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:412)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:389)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.apache.tika.parser.pkg.PackageParser.parseEntries(PackageParser.java:389)
	at org.apache.tika.parser.pkg.PackageParser.parse(PackageParser.java:329)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	... 85 more

  was:
There's a regression in unpack200 that leads to the InputStream being closed even if wrapped in a CloseShieldInputStream.

This was the original signal that something was wrong, but the real problem is in unpack200, not xz.


We noticed ~10 xz files with fewer attachments in the recent regression tests in prep for the 2.9.2 release. This is 10 out of ~4500. So, it's a problem, but not a blocker (IMHO).

The stacktrace from {{https://corpora.tika.apache.org/base/docs/commoncrawl3/YE/YEPTQ2CBI7BJ26PPVBTKZIALFSUQFDZH}}  looks like this:

3: X-TIKA:EXCEPTION:embedded_exception : org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException from org.apache.tika.parser.DefaultParser@56a4479a
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:304)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
	at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:152)
	at org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:259)
	at org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)
	at org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:109)
	at org.apache.tika.parser.pkg.CompressorParser.parse(CompressorParser.java:229)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
	at org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:164)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:446)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:436)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:424)
	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:418)
	at org.apache.tika.parser.AutoDetectParserTest.oneOff(AutoDetectParserTest.java:563)
...
Caused by: org.tukaani.xz.XZIOException: Stream closed
	at org.tukaani.xz.SingleXZInputStream.available(Unknown Source)
	at org.apache.commons.compress.compressors.xz.XZCompressorInputStream.available(XZCompressorInputStream.java:115)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at java.io.BufferedInputStream.available(BufferedInputStream.java:410)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at java.io.FilterInputStream.available(FilterInputStream.java:168)
	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.skipRecordPadding(TarArchiveInputStream.java:800)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:412)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:389)
	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
	at org.apache.tika.parser.pkg.PackageParser.parseEntries(PackageParser.java:389)
	at org.apache.tika.parser.pkg.PackageParser.parse(PackageParser.java:329)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
	... 85 more


> Regression in pack200 parsing in commons-compress
> -------------------------------------------------
>
>                 Key: TIKA-4221
>                 URL: https://issues.apache.org/jira/browse/TIKA-4221
>             Project: Tika
>          Issue Type: Task
>            Reporter: Tim Allison
>            Priority: Major
>
> There's a regression in pack200 that leads to the InputStream being closed even if wrapped in a CloseShieldInputStream.
> This was the original signal that something was wrong, but the real problem is in pack200, not xz.
> We noticed ~10 xz files with fewer attachments in the recent regression tests in prep for the 2.9.2 release. This is 10 out of ~4500. So, it's a problem, but not a blocker (IMHO).
> The stacktrace from {{https://corpora.tika.apache.org/base/docs/commoncrawl3/YE/YEPTQ2CBI7BJ26PPVBTKZIALFSUQFDZH}}  looks like this:
> 3: X-TIKA:EXCEPTION:embedded_exception : org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException from org.apache.tika.parser.DefaultParser@56a4479a
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:304)
> 	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
> 	at org.apache.tika.parser.ParserDecorator.parse(ParserDecorator.java:152)
> 	at org.apache.tika.parser.RecursiveParserWrapper$EmbeddedParserDecorator.parse(RecursiveParserWrapper.java:259)
> 	at org.apache.tika.parser.DelegatingParser.parse(DelegatingParser.java:71)
> 	at org.apache.tika.extractor.ParsingEmbeddedDocumentExtractor.parseEmbedded(ParsingEmbeddedDocumentExtractor.java:109)
> 	at org.apache.tika.parser.pkg.CompressorParser.parse(CompressorParser.java:229)
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
> 	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:203)
> 	at org.apache.tika.parser.RecursiveParserWrapper.parse(RecursiveParserWrapper.java:164)
> 	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:446)
> 	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:436)
> 	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:424)
> 	at org.apache.tika.TikaTest.getRecursiveMetadata(TikaTest.java:418)
> 	at org.apache.tika.parser.AutoDetectParserTest.oneOff(AutoDetectParserTest.java:563)
> ...
> Caused by: org.tukaani.xz.XZIOException: Stream closed
> 	at org.tukaani.xz.SingleXZInputStream.available(Unknown Source)
> 	at org.apache.commons.compress.compressors.xz.XZCompressorInputStream.available(XZCompressorInputStream.java:115)
> 	at java.io.FilterInputStream.available(FilterInputStream.java:168)
> 	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
> 	at java.io.BufferedInputStream.available(BufferedInputStream.java:410)
> 	at java.io.FilterInputStream.available(FilterInputStream.java:168)
> 	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
> 	at java.io.FilterInputStream.available(FilterInputStream.java:168)
> 	at org.apache.commons.io.input.ProxyInputStream.available(ProxyInputStream.java:84)
> 	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.skipRecordPadding(TarArchiveInputStream.java:800)
> 	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextTarEntry(TarArchiveInputStream.java:412)
> 	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:389)
> 	at org.apache.commons.compress.archivers.tar.TarArchiveInputStream.getNextEntry(TarArchiveInputStream.java:49)
> 	at org.apache.tika.parser.pkg.PackageParser.parseEntries(PackageParser.java:389)
> 	at org.apache.tika.parser.pkg.PackageParser.parse(PackageParser.java:329)
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
> 	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:298)
> 	... 85 more



--
This message was sent by Atlassian Jira
(v8.20.10#820010)