[ https://issues.apache.org/jira/browse/TIKA-455?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Andrzej Bialecki updated TIKA-455: ----------------------------------- Attachment: zip.data Truncated zip file that exhibits the problem. > Zip parser stuck on truncated zip files. > ---------------------------------------- > > Key: TIKA-455 > URL: https://issues.apache.org/jira/browse/TIKA-455 > Project: Tika > Issue Type: Bug > Components: parser > Affects Versions: 0.7, 0.8 > Environment: Ubuntu x64, CentOs x86 > Reporter: Andrzej Bialecki > Attachments: zip.data > > > Tika hangs when attempting to parse a truncated zip file. This happens both with 0.7 and with trunk. Thread dump shows the following (I tested this several times, and the thread dump is basically identical): > {code} > ab@dev3:~/work/tika/tika/trunk$ java -jar tika-app/target/tika-app*.jar -v -g /home/ab/work/tika/zip.data > 2010-07-05 14:01:28 > Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01 mixed mode): > "AWT-EventQueue-0" prio=10 tid=0x00007f38d4148000 nid=0x51cd in Object.wait() [0x00007f38d90d5000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00007f39050f1408> (a java.awt.EventQueue) > at java.lang.Object.wait(Object.java:485) > at java.awt.EventQueue.getNextEvent(EventQueue.java:479) > - locked <0x00007f39050f1408> (a java.awt.EventQueue) > at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:236) > at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) > at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) > at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) > at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) > "AWT-Shutdown" prio=10 tid=0x00007f38d412d800 nid=0x51cc in Object.wait() [0x00007f38d91d6000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00007f39051cd988> (a java.lang.Object) > at java.lang.Object.wait(Object.java:485) > at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259) > - locked <0x00007f39051cd988> (a java.lang.Object) > at java.lang.Thread.run(Thread.java:619) > "AWT-XAWT" daemon prio=10 tid=0x00007f38d4125800 nid=0x51cb runnable [0x00007f38d92d7000] > java.lang.Thread.State: RUNNABLE > at sun.awt.X11.XToolkit.waitForEvents(Native Method) > at sun.awt.X11.XToolkit.run(XToolkit.java:548) > at sun.awt.X11.XToolkit.run(XToolkit.java:523) > at java.lang.Thread.run(Thread.java:619) > "Java2D Disposer" daemon prio=10 tid=0x00007f38d42a3000 nid=0x51ca in Object.wait() [0x00007f38d99f2000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00007f39051f0e20> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) > - locked <0x00007f39051f0e20> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) > at sun.java2d.Disposer.run(Disposer.java:125) > at java.lang.Thread.run(Thread.java:619) > "Low Memory Detector" daemon prio=10 tid=0x00007f38d4006800 nid=0x51c8 runnable [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > "CompilerThread1" daemon prio=10 tid=0x00007f38d4003000 nid=0x51c7 waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > "CompilerThread0" daemon prio=10 tid=0x00007f38d4001000 nid=0x51c6 waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > "Signal Dispatcher" daemon prio=10 tid=0x0000000041e13000 nid=0x51c5 waiting on condition [0x0000000000000000] > java.lang.Thread.State: RUNNABLE > "Finalizer" daemon prio=10 tid=0x0000000041df4800 nid=0x51c4 in Object.wait() [0x00007f38db722000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00007f39052931a8> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) > - locked <0x00007f39052931a8> (a java.lang.ref.ReferenceQueue$Lock) > at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) > at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) > "Reference Handler" daemon prio=10 tid=0x0000000041ded800 nid=0x51c3 in Object.wait() [0x00007f38db823000] > java.lang.Thread.State: WAITING (on object monitor) > at java.lang.Object.wait(Native Method) > - waiting on <0x00007f39050f0948> (a java.lang.ref.Reference$Lock) > at java.lang.Object.wait(Object.java:485) > at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) > - locked <0x00007f39050f0948> (a java.lang.ref.Reference$Lock) > "main" prio=10 tid=0x0000000041d07800 nid=0x51bf runnable [0x00007f3918594000] > java.lang.Thread.State: RUNNABLE > at java.util.zip.Inflater.inflateBytes(Native Method) > at java.util.zip.Inflater.inflate(Inflater.java:223) > - locked <0x00007f38e1479758> (a java.util.zip.Inflater) > at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.read(ZipArchiveInputStream.java:235) > at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.skip(ZipArchiveInputStream.java:261) > at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.closeEntry(ZipArchiveInputStream.java:302) > at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextZipEntry(ZipArchiveInputStream.java:112) > at org.apache.commons.compress.archivers.zip.ZipArchiveInputStream.getNextEntry(ZipArchiveInputStream.java:188) > at org.apache.tika.parser.pkg.PackageExtractor.unpack(PackageExtractor.java:177) > at org.apache.tika.parser.pkg.PackageExtractor.parse(PackageExtractor.java:93) > at org.apache.tika.parser.pkg.PackageParser.parse(PackageParser.java:61) > at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:142) > at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:104) > at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:169) > at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:62) > "VM Thread" prio=10 tid=0x0000000041de6800 nid=0x51c2 runnable > "GC task thread#0 (ParallelGC)" prio=10 tid=0x0000000041d11800 nid=0x51c0 runnable > "GC task thread#1 (ParallelGC)" prio=10 tid=0x0000000041d13800 nid=0x51c1 runnable > "VM Periodic Task Thread" prio=10 tid=0x00007f38d4009000 nid=0x51c9 waiting on condition > JNI global references: 798 > Heap > PSYoungGen total 28288K, used 9159K [0x00007f3903550000, 0x00007f3905310000, 0x00007f39145f0000) > eden space 26112K, 26% used [0x00007f3903550000,0x00007f3903c27e00,0x00007f3904ed0000) > from space 2176K, 98% used [0x00007f39050f0000,0x00007f390530a008,0x00007f3905310000) > to space 2176K, 0% used [0x00007f3904ed0000,0x00007f3904ed0000,0x00007f39050f0000) > PSOldGen total 34944K, used 4625K [0x00007f38e13f0000, 0x00007f38e3610000, 0x00007f3903550000) > object space 34944K, 13% used [0x00007f38e13f0000,0x00007f38e1874510,0x00007f38e3610000) > PSPermGen total 21248K, used 16544K [0x00007f38dbff0000, 0x00007f38dd4b0000, 0x00007f38e13f0000) > object space 21248K, 77% used [0x00007f38dbff0000,0x00007f38dd0181d0,0x00007f38dd4b0000) > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.