Solr 4.6.1, cloud

Seeing following commit errors.

[commitScheduler-19-thread-1] ERROR org.apache.solr.update.CommitTracker – auto commit error...:java.lang.IllegalStateException: this writer hit an OutOfMemoryError; cannot commit at org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:2807) at org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2984) at org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:559) at org.apache.solr.update.CommitTracker.run(CommitTracker.java:216) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:440) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:896) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919) at java.lang.Thread.run(Thread.java:682)

Looking at the code,

public final void prepareCommit() throws IOException {
    ensureOpen();
    prepareCommitInternal();
  }

  private void prepareCommitInternal() throws IOException {
    synchronized(commitLock) {
      ensureOpen(false);
      if (infoStream.isEnabled("IW")) {
        infoStream.message("IW", "prepareCommit: flush");
        infoStream.message("IW", "  index before flush " + segString());
      }

      if (hitOOM) {
throw new IllegalStateException("this writer hit an OutOfMemoryError; cannot commit");
      }

It simply checking a flag if it hit OOM? What is making to check and set the flag? What could be the conditions? Thanks.

Reply via email to