Nice signature...=)

On 1/16/08, Erick Erickson <[EMAIL PROTECTED]> wrote:
>
> The PS really wasn't related to your OOM, and raising that shouldn't
> have changed the behavior. All that happens if you go beyond 10,000
> tokens is that the rest gets thrown away.
>
> But we're beyond my real knowledge level about SOLR, so I'll defer
> to others. A very quick-n-dirty test as to whether you're actually
> allocation more memory to the process you *think* you are would be
> to bump it ridiculously higher. I'm completely unclear about what
> process gets the increased memory relative to the server.
>
> [EMAIL PROTECTED]
>
>
> On Jan 16, 2008 11:33 AM, David Thibault <[EMAIL PROTECTED]>
> wrote:
>
> > I tried raising the <maxFieldLength>100000000</maxFieldLength> under
> > <mainIndex> as well as <indexDefaults> and still no luck. I'm trying to
> > upload a text file that is about 8 MB in size.  I think the following
> > stack
> > trace still points to some sort of overflowed String issue.  Thoughts?
> > Solr returned an error: Java heap space  java.lang.OutOfMemoryError:
> Java
> > heap space
> > at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:232)
> > at java.lang.StringCoding.encode(StringCoding.java:272)
> > at java.lang.String.getBytes(String.java:947)
> > at org.apache.lucene.index.FieldsWriter.addDocument(FieldsWriter.java
> :98)
> > at org.apache.lucene.index.DocumentWriter.addDocument(
> DocumentWriter.java
> > :107)
> >
> > at org.apache.lucene.index.IndexWriter.buildSingleDocSegment(
> > IndexWriter.java:977)
> > at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:965)
> > at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:947)
> > at org.apache.solr.update.DirectUpdateHandler2.addDoc(
> > DirectUpdateHandler2.java:270)
> > at org.apache.solr.handler.XmlUpdateRequestHandler.update(
> > XmlUpdateRequestHandler.java:166)
> > at org.apache.solr.handler.XmlUpdateRequestHandler.handleRequestBody(
> > XmlUpdateRequestHandler.java:84)
> >  at org.apache.solr.handler.RequestHandlerBase.handleRequest(
> > RequestHandlerBase.java:77)
> > at org.apache.solr.core.SolrCore.execute(SolrCore.java:658)  at
> > org.apache.solr.servlet.SolrDispatchFilter.execute(
> SolrDispatchFilter.java
> > :191)
> >
> > at org.apache.solr.servlet.SolrDispatchFilter.doFilter(
> > SolrDispatchFilter.java:159)
> > at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > ApplicationFilterChain.java:215)
> > at org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > ApplicationFilterChain.java:188)
> > at org.apache.catalina.core.StandardWrapperValve.invoke(
> > StandardWrapperValve.java:213)
> > at org.apache.catalina.core.StandardContextValve.invoke(
> > StandardContextValve.java:174)
> >  at org.apache.catalina.core.StandardHostValve.invoke(
> > StandardHostValve.java
> > :127)
> >  at org.apache.catalina.valves.ErrorReportValve.invoke(
> > ErrorReportValve.java
> > :117)
> >  at org.apache.catalina.core.StandardEngineValve.invoke(
> > StandardEngineValve.java:108)
> > at org.apache.catalina.connector.CoyoteAdapter.service(
> CoyoteAdapter.java
> > :151)
> >
> > at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
> > :874)
> >
> > at
> >
> >
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
> > (Http11BaseProtocol.java:665)
> > at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
> > PoolTcpEndpoint.java:528)
> > at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
> > LeaderFollowerWorkerThread.java:81)
> >  at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
> > ThreadPool.java:689)
> > at java.lang.Thread.run(Thread.java:619)
> >
> > java.io.IOException: Server returned HTTP response code: 500 for URL:
> > http://solr:8080/solr/update
> >        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(
> > HttpURLConnection.java:1170)
> >        at
> com.itstrategypartners.sents.solrUpload.SimplePostTool.postData(
> > SimplePostTool.java:134)
> >        at
> com.itstrategypartners.sents.solrUpload.SimplePostTool.postFile(
> > SimplePostTool.java:87)
> >        at com.itstrategypartners.sents.solrUpload.Uploader.uploadFile(
> > Uploader.java:97)
> >        at
> com.itstrategypartners.sents.solrUpload.UploaderTest.uploadFile(
> > UploaderTest.java:95)
> >        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> >        at sun.reflect.NativeMethodAccessorImpl.invoke(
> > NativeMethodAccessorImpl.java:39)
> >        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> > DelegatingMethodAccessorImpl.java:25)
> >        at java.lang.reflect.Method.invoke(Method.java:585)
> >        at org.junit.internal.runners.TestMethodRunner.executeMethodBody(
> > TestMethodRunner.java:99)
> >        at org.junit.internal.runners.TestMethodRunner.runUnprotected(
> > TestMethodRunner.java:81)
> >        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> > BeforeAndAfterRunner.java:34)
> >        at org.junit.internal.runners.TestMethodRunner.runMethod(
> > TestMethodRunner.java:75)
> >        at org.junit.internal.runners.TestMethodRunner.run(
> > TestMethodRunner.java:45)
> >        at
> > org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(
> > TestClassMethodsRunner.java:71)
> >        at org.junit.internal.runners.TestClassMethodsRunner.run(
> > TestClassMethodsRunner.java:35)
> >        at org.junit.internal.runners.TestClassRunner$1.runUnprotected(
> > TestClassRunner.java:42)
> >        at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> > BeforeAndAfterRunner.java:34)
> >        at org.junit.internal.runners.TestClassRunner.run(
> > TestClassRunner.java:52)
> >        at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java
> :32)
> >        at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run
> > (
> > JUnitTestRunner.java:421)
> >        at
> > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(
> > JUnitTestRunner.java:912)
> >        at
> > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main
> > (JUnitTestRunner.java:766)
> >
> > On 1/16/08, David Thibault <[EMAIL PROTECTED]> wrote:
> > >
> > > I think your PS might do the trick.  My JVM doesn't seem to be the
> > issue,
> > > because I've set it to -Xmx512m -Xms256m.  I will track down the solr
> > config
> > > parameter you mentioned and try that.  Thanks for the quick response!
> > >
> > > Dave
> > >
> > > On 1/16/08, Erick Erickson <[EMAIL PROTECTED] > wrote:
> > > >
> > > > P.S. Lucene by default limits the maximum field length
> > > > to 10K tokens, so you have to bump that for large files.
> > > >
> > > > Erick
> > > >
> > > > On Jan 16, 2008 11:04 AM, Erick Erickson <[EMAIL PROTECTED]>
> > > > wrote:
> > > >
> > > > > I don't think this is a StringBuilder limitation, but rather your
> > Java
> > > >
> > > > > JVM doesn't start with enough memory. i.e. -Xmx.
> > > > >
> > > > > In raw Lucene, I've indexed 240M files........
> > > > >
> > > > > Best
> > > > > Erick
> > > > >
> > > > >
> > > > > On Jan 16, 2008 10:12 AM, David Thibault <
> > [EMAIL PROTECTED]
> > > > >
> > > > > wrote:
> > > > >
> > > > > > All,
> > > > > > I just found a thread about this on the mailing list archives
> > > > because
> > > > > > I'm
> > > > > > troubleshooting the same problem.  The kicker is that it doesn't
> > > > take
> > > > > > such
> > > > > > large files to kill the StringBuilder.  I have discovered the
> > > > following:
> > > > > >
> > > > > >
> > > > > > By using a text file made up of  3,443,464 bytes or less, I get
> no
> > > > > > error.
> > > > > >
> > > > > > AT 3,443,465 bytes:
> > > > > >
> > > > > >
> > > > > > Exception in thread "main" java.lang.OutOfMemoryError : Java
> heap
> > > > space
> > > > > >
> > > > > >        at java.lang.String .<init>(String.java:208)
> > > > > >
> > > > > >        at java.lang.StringBuilder.toString(StringBuilder.java
> :431)
> > > > > >
> > > > > >        at org.junit.Assert.format(Assert.java:321)
> > > > > >
> > > > > >        at
> org.junit.ComparisonFailure$ComparisonCompactor.compact(
> > > > > > ComparisonFailure.java:80)
> > > > > >
> > > > > >        at org.junit.ComparisonFailure.getMessage (
> > > > ComparisonFailure.java
> > > > > > :37)
> > > > > >
> > > > > >        at java.lang.Throwable.getLocalizedMessage(Throwable.java
> > > > :267)
> > > > > >
> > > > > >        at java.lang.Throwable.toString (Throwable.java:344)
> > > > > >
> > > > > >        at java.lang.String.valueOf(String.java:2615)
> > > > > >
> > > > > >        at java.io.PrintWriter.print(PrintWriter.java:546)
> > > > > >
> > > > > >        at java.io.PrintWriter.println (PrintWriter.java:683)
> > > > > >
> > > > > >        at java.lang.Throwable.printStackTrace(Throwable.java
> :510)
> > > > > >
> > > > > >        at org.apache.tools.ant.util.StringUtils.getStackTrace(
> > > > > > StringUtils.java :96)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.getFilteredTrace
> > > > > > (JUnitTestRunner.java:856)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter.formatError
> > > > > > (XMLJUnitResultFormatter.java:280)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter.addError
> > > > > > (XMLJUnitResultFormatter.java:255)
> > > > > >
> > > > > >        at
> > > > > >
> > > >
> > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner$4.addError(
> > > > > > JUnitTestRunner.java:988)
> > > > > >
> > > > > >        at junit.framework.TestResult.addError(TestResult.java:38)
> > > > > >
> > > > > >        at junit.framework.JUnit4TestAdapterCache$1.testFailure(
> > > > > > JUnit4TestAdapterCache.java:51)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier$4.notifyListener
> > > > (
> > > > > > RunNotifier.java:96)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier$SafeNotifier.run
> > > > (
> > > > > > RunNotifier.java:37)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier.fireTestFailure(
> > > > > > RunNotifier.java:93)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.addFailure(
> > > > > > TestMethodRunner.java:104)
> > > > > >
> > > > > >        at
> > org.junit.internal.runners.TestMethodRunner.runUnprotected
> > > > (
> > > > > > TestMethodRunner.java:87)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.BeforeAndAfterRunner.runProtected (
> > > > > > BeforeAndAfterRunner.java:34)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.runMethod(
> > > > > > TestMethodRunner.java:75)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.run (
> > > > > > TestMethodRunner.java :45)
> > > > > >
> > > > > >        at
> > > > > >
> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod
> > (
> > > > > > TestClassMethodsRunner.java:71)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestClassMethodsRunner.run(
> > > > > > TestClassMethodsRunner.java :35)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.TestClassRunner$1.runUnprotected(
> > > > > > TestClassRunner.java :42)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> > > > > > BeforeAndAfterRunner.java:34)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestClassRunner.run (
> > > > > > TestClassRunner.java:52)
> > > > > >
> > > > > >        at junit.framework.JUnit4TestAdapter.run(
> > > > JUnit4TestAdapter.java
> > > > > > :32)
> > > > > >
> > > > > >
> > > > > >
> > > > > > AT 3,443,466 byes (or more) :
> > > > > >
> > > > > >
> > > > > > Exception in thread "main" java.lang.OutOfMemoryError: Java heap
> > > > space
> > > > > >
> > > > > >        at java.lang.AbstractStringBuilder.expandCapacity(
> > > > > > AbstractStringBuilder.java :99)
> > > > > >
> > > > > >        at java.lang.AbstractStringBuilder.append (
> > > > > > AbstractStringBuilder.java
> > > > > > :393)
> > > > > >
> > > > > >        at java.lang.StringBuilder.append(StringBuilder.java:120)
> > > > > >
> > > > > >        at org.junit.Assert.format(Assert.java:321)
> > > > > >
> > > > > >        at
> org.junit.ComparisonFailure$ComparisonCompactor.compact(
> > > > > > ComparisonFailure.java:80)
> > > > > >
> > > > > >        at org.junit.ComparisonFailure.getMessage(
> > > > ComparisonFailure.java
> > > > > > :37)
> > > > > >
> > > > > >        at java.lang.Throwable.getLocalizedMessage(Throwable.java
> > > > :267)
> > > > > >
> > > > > >        at java.lang.Throwable.toString (Throwable.java:344)
> > > > > >
> > > > > >        at java.lang.String.valueOf(String.java:2615)
> > > > > >
> > > > > >        at java.io.PrintWriter.print(PrintWriter.java:546)
> > > > > >
> > > > > >        at java.io.PrintWriter.println(PrintWriter.java:683)
> > > > > >
> > > > > >        at java.lang.Throwable.printStackTrace(Throwable.java
> :510)
> > > > > >
> > > > > >        at org.apache.tools.ant.util.StringUtils.getStackTrace (
> > > > > > StringUtils.java:96)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.getFilteredTrace
> > > > > > (JUnitTestRunner.java:856)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter.formatError
> > > > > > (XMLJUnitResultFormatter.java:280)
> > > > > >
> > > > > >        at
> > > > > >
> > > > > >
> > > >
> >
> org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter.addError
> > > > > > (XMLJUnitResultFormatter.java:255)
> > > > > >
> > > > > >        at
> > > > > >
> > > >
> > org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner$4.addError(
> > > > > > JUnitTestRunner.java:988)
> > > > > >
> > > > > >        at junit.framework.TestResult.addError(TestResult.java:38)
> > > > > >
> > > > > >        at junit.framework.JUnit4TestAdapterCache$1.testFailure (
> > > > > > JUnit4TestAdapterCache.java:51)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier$4.notifyListener
> > > > (
> > > > > > RunNotifier.java:96)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier$SafeNotifier.run(
> > > > > > RunNotifier.java:37)
> > > > > >
> > > > > >        at
> > org.junit.runner.notification.RunNotifier.fireTestFailure(
> > > > > > RunNotifier.java:93)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.addFailure(
> > > > > > TestMethodRunner.java:104)
> > > > > >
> > > > > >        at
> > org.junit.internal.runners.TestMethodRunner.runUnprotected
> > > > (
> > > > > > TestMethodRunner.java:87)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.BeforeAndAfterRunner.runProtected (
> > > > > > BeforeAndAfterRunner.java:34)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.runMethod(
> > > > > > TestMethodRunner.java:75)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestMethodRunner.run (
> > > > > > TestMethodRunner.java :45)
> > > > > >
> > > > > >        at
> > > > > >
> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod
> > (
> > > > > > TestClassMethodsRunner.java:71)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestClassMethodsRunner.run(
> > > > > > TestClassMethodsRunner.java :35)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.TestClassRunner$1.runUnprotected(
> > > > > > TestClassRunner.java :42)
> > > > > >
> > > > > >        at
> > > > org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> > > > > > BeforeAndAfterRunner.java:34)
> > > > > >
> > > > > >        at org.junit.internal.runners.TestClassRunner.run (
> > > > > > TestClassRunner.java:52)
> > > > > >
> > > > > >
> > > > > > I am writing a filesystem crawler so I need to be able to crawl
> > and
> > > > > > index
> > > > > > any size file (within reason).  A 3-4MB file is certainly within
> > > > reason.
> > > > > >  I
> > > > > > rewrote my code to store the file contents in a file and
> > read/write
> > > > in
> > > > > > one
> > > > > > line at a time.  However, when I post the XML file to Solr using
> > > > > > SimplePostTool, I get another OutOfMemoryError about the java
> heap
> > > > space
> > > > > >
> > > > > > (thrown from org.xmlpull... again).  In any case, does anyone
> have
> > > > any
> > > > > > ideas
> > > > > > about this?  Has anyone posted documents with contents larger
> than
> > > > 3.5MBto
> > > > > > Solr successfully?  If so, how was it done?  I'm using Solr v1.2
> .
> > > > > >
> > > > > >
> > > > > > Best,
> > > > > >
> > > > > > Dave
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > >
> > >
> >
>

Reply via email to