tika-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryan Krueger (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TIKA-1132) Parsing some XLS documents hangs entire JVM, requires kill -9
Date Tue, 11 Jun 2013 22:06:20 GMT

    [ https://issues.apache.org/jira/browse/TIKA-1132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13680747#comment-13680747
] 

Ryan Krueger commented on TIKA-1132:
------------------------------------

Running jvisualvm and pulling a thread dump I get the same trace each time:

"main" prio=10 tid=0x0000000000606800 nid=0x7799 runnable [0x00007fe26bf1d000]
   java.lang.Thread.State: RUNNABLE
	at org.apache.poi.ss.usermodel.DataFormatter$FractionFormat.format(DataFormatter.java:1009)
	at org.apache.poi.ss.usermodel.DataFormatter$FractionFormat.format(DataFormatter.java:1033)
	at java.text.Format.format(Format.java:157)
	at org.apache.poi.ss.usermodel.DataFormatter.formatRawCellContents(DataFormatter.java:699)
	at org.apache.poi.ss.usermodel.DataFormatter.formatRawCellContents(DataFormatter.java:669)
	at org.apache.poi.hssf.eventusermodel.FormatTrackingHSSFListener.formatNumberDateCell(FormatTrackingHSSFListener.java:129)
	at org.apache.tika.parser.microsoft.ExcelExtractor$TikaHSSFListener.internalProcessRecord(ExcelExtractor.java:419)
	at org.apache.tika.parser.microsoft.ExcelExtractor$TikaHSSFListener.processRecord(ExcelExtractor.java:323)
	at org.apache.poi.hssf.eventusermodel.FormatTrackingHSSFListener.processRecord(FormatTrackingHSSFListener.java:82)
	at org.apache.poi.hssf.eventusermodel.HSSFRequest.processRecord(HSSFRequest.java:112)
	at org.apache.poi.hssf.eventusermodel.HSSFEventFactory.genericProcessEvents(HSSFEventFactory.java:147)
	at org.apache.poi.hssf.eventusermodel.HSSFEventFactory.processEvents(HSSFEventFactory.java:106)
	at org.apache.tika.parser.microsoft.ExcelExtractor$TikaHSSFListener.processFile(ExcelExtractor.java:299)
	at org.apache.tika.parser.microsoft.ExcelExtractor.parse(ExcelExtractor.java:151)
	at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:194)
	at org.apache.tika.parser.microsoft.OfficeParser.parse(OfficeParser.java:161)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
	at org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
	at org.apache.tika.parser.AutoDetectParser.parse(AutoDetectParser.java:120)
	at org.apache.tika.cli.TikaCLI$OutputType.process(TikaCLI.java:139)
	at org.apache.tika.cli.TikaCLI.process(TikaCLI.java:415)
	at org.apache.tika.cli.TikaCLI.main(TikaCLI.java:109)




Looking at POI 3.8 in grepcode I see the affected code.  The methods appear to be unchanged
in 3.9.

I don't know what's causing the issue as it doesn't immediately appear to me to be an infinite
loop.

Here is the apparent section from org.apache.poi.ss.usermodel.DataFormatter.

1005             double minVal = 1.0;
1006             double currDenom = Math.pow(10 ,  fractParts[1].length()) - 1d;
1007             double currNeum = 0;
1008             for (int i = (int)(Math.pow(10,  fractParts[1].length())- 1d); i > 0;
i--) {
1009                for(int i2 = (int)(Math.pow(10,  fractParts[1].length())- 1d); i2 >
0; i2--){
1010                   if (minVal >=  Math.abs((double)i2/(double)i - decPart)) {
1011                      currDenom = i;
1012                      currNeum = i2;
1013                      minVal = Math.abs((double)i2/(double)i  - decPart);
1014                   }
1015                }
1016             }
                
> Parsing some XLS documents hangs entire JVM, requires kill -9
> -------------------------------------------------------------
>
>                 Key: TIKA-1132
>                 URL: https://issues.apache.org/jira/browse/TIKA-1132
>             Project: Tika
>          Issue Type: Bug
>          Components: parser
>    Affects Versions: 1.2, 1.3
>         Environment: Linux Suse:
> java version "1.7.0"
> Java(TM) SE Runtime Environment (build 1.7.0-b147)
> Java HotSpot(TM) 64-Bit Server VM (build 21.0-b17, mixed mode)
> OSX 10.8.3:
> java version "1.7.0_06"
> Java(TM) SE Runtime Environment (build 1.7.0_06-b24)
> Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)
>            Reporter: Ryan Krueger
>             Fix For: 1.1
>
>         Attachments: mod.xls
>
>
> Some XLS documents hang the entire JVM.  A control-C or regular kill won't stop the JVM,
a kill -9 is required.
> We're running within an email server application parsing documents to extract text of
all attachments.  When we hit a message with the affected attachment the entire JVM hangs
and we mark the message to skip extracting the text from the affected message the next attempt.
 Unfortunately, it kills all email processing on the server until the internal watchdogs kill
-9 the application.
> We have seen the issue for several months with different documents, but they are always
Excel files.  Some get complaints from Excel when opening but not all.
> In addition to experiencing the problem on our Linux servers I have tested on OSX and
experienced the same problems.  I ran the Tika UI and select the affected file or run the
CLI.  The problem is the same.
> Tested with java -jar /path/to/tika-app-1.3.jar -t /path/to/file.xls
> When running on multi-CPU machines there are two threads running at 100% every time.
> I have attached a document that triggers the error.
> I have tested with 1.2 and 1.3 with the same result.  Running 1.1 the text is accurately
extracted.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message