What are the JVM settings? Version of JDK? Are you running Solr in
Jetty or Tomcat ?

Does the error happen repeatedly on the same documents ? Can you
reproduce it in a isolated environment ? It would be helpful if we can
reproduce it on the POI side.

I assume you increased perm space via -XX:MaxPermSize and
-XX:MaxPermGen. What were these settings ?

If your JVm uses CMS garbage collector you may want to try these hints:

-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled

Yegor

On Sat, Apr 28, 2012 at 10:07 AM, Wayne W <[email protected]> wrote:
> Hi,
>
> we're having a lot of trouble in production with Solr (which is using
> tika to extract contents of docs,xls, etc which in turn uses POI)
> running on tomcat and OutOfMemory issue. We're been looking at this
> now for a long time, we've been upgrading to the latest versions of
> all jars where possible but we're still seeing this all the time in
> the logs:
>
> Caused by: java.lang.OutOfMemoryError: PermGen space
>        at java.lang.String.intern(Native Method)
>        at 
> org.apache.xmlbeans.impl.piccolo.util.CharStringConverter.convert(CharStringConverter.java:110)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yytext2(PiccoloLexer.java:3312)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseElementNameNS(PiccoloLexer.java:2368)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseOpenTagNS(PiccoloLexer.java:1455)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.parseTagNS(PiccoloLexer.java:1362)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.PiccoloLexer.yylex(PiccoloLexer.java:4678)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yylex(Piccolo.java:1290)
>        at 
> org.apache.xmlbeans.impl.piccolo.xml.Piccolo.yyparse(Piccolo.java:1400)
>        at org.apache.xmlbeans.impl.piccolo.xml.Piccolo.parse(Piccolo.java:714)
>        at 
> org.apache.xmlbeans.impl.store.Locale$SaxLoader.load(Locale.java:3439)
>        at 
> org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1270)
>        at 
> org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1257)
>        at 
> org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:345)
>        at 
> org.openxmlformats.schemas.drawingml.x2006.main.ThemeDocument$Factory.parse(Unknown
> Source)
>        at org.apache.poi.xslf.usermodel.XSLFTheme.<init>(XSLFTheme.java:50)
>        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 
> Method)
>        at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>        at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>        at 
> org.apache.poi.xslf.usermodel.XSLFFactory.createDocumentPart(XSLFFactory.java:64)
>        at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:414)
>        at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:419)
>        at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:155)
>        at 
> org.apache.poi.xslf.usermodel.XMLSlideShow.<init>(XMLSlideShow.java:85)
>        at 
> org.apache.poi.xslf.extractor.XSLFPowerPointExtractor.<init>(XSLFPowerPointExtractor.java:52)
>        at 
> org.apache.poi.xslf.extractor.XSLFPowerPointExtractor.<init>(XSLFPowerPointExtractor.java:55)
>        at 
> org.apache.poi.extractor.ExtractorFactory.createExtractor(ExtractorFactory.java:187)
>        at 
> org.apache.poi.extractor.ExtractorFactory.createExtractor(ExtractorFactory.java:152)
>        at 
> org.apache.tika.parser.microsoft.ooxml.OOXMLExtractorFactory.parse(OOXMLExtractorFactory.java:70)
>        at 
> org.apache.tika.parser.microsoft.ooxml.OOXMLParser.parse(OOXMLParser.java:70)
>        at 
> org.apache.tika.parser.CompositeParser.parse(CompositeParser.java:242)
>
>
>
> We get lots ( all vary slightly) but there are always in the POI call stack:
>
> java.lang.OutOfMemoryError: PermGen space
>        at java.lang.ClassLoader.defineClass1(Native Method)
>        at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
>        at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
>        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
>        at java.net.URLClassLoader.access$000(URLClassLoader.java:56)
>        at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
>        at java.security.AccessController.doPrivileged(Native Method)
>        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>        at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:592)
>        at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
>        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
>        at java.lang.Class.forName0(Native Method)
>        at java.lang.Class.forName(Class.java:247)
>        at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplClass(SchemaTypeImpl.java:1709)
>        at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.getJavaImplConstructor(SchemaTypeImpl.java:1725)
>        at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createUnattachedNode(SchemaTypeImpl.java:1853)
>        at 
> org.apache.xmlbeans.impl.schema.SchemaTypeImpl.createElementType(SchemaTypeImpl.java:1021)
>        at 
> org.apache.xmlbeans.impl.values.XmlObjectBase.create_element_user(XmlObjectBase.java:893)
>        at org.apache.xmlbeans.impl.store.Xobj.getUser(Xobj.java:1657)
>        at 
> org.apache.xmlbeans.impl.store.Xobj.find_element_user(Xobj.java:2062)
>        at 
> org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTSdtRunImpl.getSdtContent(Unknown
> Source)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFParagraph.<init>(XWPFParagraph.java:94)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFTableCell.<init>(XWPFTableCell.java:59)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFTableRow.getTableCells(XWPFTableRow.java:126)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFTableRow.<init>(XWPFTableRow.java:42)
>        at org.apache.poi.xwpf.usermodel.XWPFTable.<init>(XWPFTable.java:74)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:149)
>        at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)
>        at 
> org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:115)
>        at 
> org.apache.poi.xwpf.extractor.XWPFWordExtractor.<init>(XWPFWordExtractor.java:53)
>        at 
> org.apache.poi.extractor.ExtractorFactory.createExtractor(ExtractorFactory.java:180)
>
>
>
>
> No matter how much perm space we assign we always run out.
> I'm wondering if anyone here as any idea  what could be the cause or
> how we might solve this?
>
> Any pointers would be much appreciated as I'm totally stuck on this.
> thanks
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to