We cannot avoid auto soft commit, since we need Lucene NRT feature. And I
use StreamingUpdateSolrServer for adding/updating index.

On Thu, Apr 19, 2012 at 7:42 AM, Boon Low <boon....@brightsolid.com> wrote:

> Hi,
>
> Also came across this error recently, while indexing with > 10 DIH
> processes in parallel + default index setting. The JVM grinds to a halt and
> throws this error. Checking the index of a core reveals thousands of files!
> Tuning the default autocommit from 15000ms to 900000ms solved the problem
> for us. (no 'autosoftcommit').
>
> Boon
>
> -----
> Boon Low
> Search UX and Engine Developer
> brightsolid Online Publishing
>
> On 14 Apr 2012, at 17:40, Gopal Patwa wrote:
>
> > I checked it was "MMapDirectory.UNMAP_SUPPORTED=true" and below are my
> > system data. Is their any existing test case to reproduce this issue? I
> am
> > trying understand how I can reproduce this issue with unit/integration
> test
> >
> > I will try recent solr trunk build too,  if it is some bug in solr or
> > lucene keeping old searcher open then how to reproduce it?
> >
> > SYSTEM DATA
> > ===========
> > PROCESSOR: Intel(R) Xeon(R) CPU E5504 @ 2.00GHz
> > SYSTEM ID: x86_64
> > CURRENT CPU SPEED: 1600.000 MHz
> > CPUS: 8 processor(s)
> > MEMORY: 49449296 kB
> > DISTRIBUTION: CentOS release 5.3 (Final)
> > KERNEL NAME: 2.6.18-128.el5
> > UPTIME: up 71 days
> > LOAD AVERAGE: 1.42, 1.45, 1.53
> > JBOSS Version: Implementation-Version: 4.2.2.GA (build:
> > SVNTag=JBoss_4_2_2_GA date=20
> > JAVA Version: java version "1.6.0_24"
> >
> >
> > On Thu, Apr 12, 2012 at 3:07 AM, Michael McCandless <
> > luc...@mikemccandless.com> wrote:
> >
> >> Your largest index has 66 segments (690 files) ... biggish but not
> >> insane.  With 64K maps you should be able to have ~47 searchers open
> >> on each core.
> >>
> >> Enabling compound file format (not the opposite!) will mean fewer maps
> >> ... ie should improve this situation.
> >>
> >> I don't understand why Solr defaults to compound file off... that
> >> seems dangerous.
> >>
> >> Really we need a Solr dev here... to answer "how long is a stale
> >> searcher kept open".  Is it somehow possible 46 old searchers are
> >> being left open...?
> >>
> >> I don't see any other reason why you'd run out of maps.  Hmm, unless
> >> MMapDirectory didn't think it could safely invoke unmap in your JVM.
> >> Which exact JVM are you using?  If you can print the
> >> MMapDirectory.UNMAP_SUPPORTED constant, we'd know for sure.
> >>
> >> Yes, switching away from MMapDir will sidestep the "too many maps"
> >> issue, however, 1) MMapDir has better perf than NIOFSDir, and 2) if
> >> there really is a leak here (Solr not closing the old searchers or a
> >> Lucene bug or something...) then you'll eventually run out of file
> >> descriptors (ie, same  problem, different manifestation).
> >>
> >> Mike McCandless
> >>
> >> http://blog.mikemccandless.com
> >>
> >> 2012/4/11 Gopal Patwa <gopalpa...@gmail.com>:
> >>>
> >>> I have not change the mergefactor, it was 10. Compound index file is
> >> disable
> >>> in my config but I read from below post, that some one had similar
> issue
> >> and
> >>> it was resolved by switching from compound index file format to
> >> non-compound
> >>> index file.
> >>>
> >>> and some folks resolved by "changing lucene code to disable
> >> MMapDirectory."
> >>> Is this best practice to do, if so is this can be done in
> configuration?
> >>>
> >>>
> >>
> http://lucene.472066.n3.nabble.com/MMapDirectory-failed-to-map-a-23G-compound-index-segment-td3317208.html
> >>>
> >>> I have index document of core1 = 5 million, core2=8million and
> >>> core3=3million and all index are hosted in single Solr instance
> >>>
> >>> I am going to use Solr for our site StubHub.com, see attached "ls -l"
> >> list
> >>> of index files for all core
> >>>
> >>> SolrConfig.xml:
> >>>
> >>>
> >>>      <indexDefaults>
> >>>              <useCompoundFile>false</useCompoundFile>
> >>>              <mergeFactor>10</mergeFactor>
> >>>              <maxMergeDocs>2147483647</maxMergeDocs>
> >>>              <maxFieldLength>10000</maxFieldLength-->
> >>>              <ramBufferSizeMB>4096</ramBufferSizeMB>
> >>>              <maxThreadStates>10</maxThreadStates>
> >>>              <writeLockTimeout>1000</writeLockTimeout>
> >>>              <commitLockTimeout>10000</commitLockTimeout>
> >>>              <lockType>single</lockType>
> >>>
> >>>          <mergePolicy
> class="org.apache.lucene.index.TieredMergePolicy">
> >>>            <double name="forceMergeDeletesPctAllowed">0.0</double>
> >>>            <double name="reclaimDeletesWeight">10.0</double>
> >>>          </mergePolicy>
> >>>
> >>>          <deletionPolicy class="solr.SolrDeletionPolicy">
> >>>            <str name="keepOptimizedOnly">false</str>
> >>>            <str name="maxCommitsToKeep">0</str>
> >>>          </deletionPolicy>
> >>>
> >>>      </indexDefaults>
> >>>
> >>>
> >>>      <updateHandler class="solr.DirectUpdateHandler2">
> >>>          <maxPendingDeletes>1000</maxPendingDeletes>
> >>>           <autoCommit>
> >>>             <maxTime>900000</maxTime>
> >>>             <openSearcher>false</openSearcher>
> >>>           </autoCommit>
> >>>           <autoSoftCommit>
> >>>
> >> <maxTime>${inventory.solr.softcommit.duration:1000}</maxTime>
> >>>           </autoSoftCommit>
> >>>
> >>>      </updateHandler>
> >>>
> >>>
> >>> Forwarded conversation
> >>> Subject: Large Index and OutOfMemoryError: Map failed
> >>> ------------------------
> >>>
> >>> From: Gopal Patwa <gopalpa...@gmail.com>
> >>> Date: Fri, Mar 30, 2012 at 10:26 PM
> >>> To: solr-user@lucene.apache.org
> >>>
> >>>
> >>> I need help!!
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> I am using Solr 4.0 nightly build with NRT and I often get this error
> >> during
> >>> auto commit "java.lang.OutOfMemoryError: Map failed". I have search
> this
> >>> forum and what I found it is related to OS ulimit setting, please se
> >> below
> >>> my ulimit settings. I am not sure what ulimit setting I should have?
> and
> >> we
> >>> also get "java.net.SocketException: Too many open files" NOT sure how
> >> many
> >>> open file we need to set?
> >>>
> >>>
> >>> I have 3 core with index size : core1 - 70GB, Core2 - 50GB and Core3 -
> >> 15GB,
> >>> with Single shard
> >>>
> >>>
> >>> We update the index every 5 seconds, soft commit every 1 second and
> hard
> >>> commit every 15 minutes
> >>>
> >>>
> >>> Environment: Jboss 4.2, JDK 1.6 , CentOS, JVM Heap Size = 24GB
> >>>
> >>>
> >>> ulimit:
> >>>
> >>> core file size          (blocks, -c) 0
> >>> data seg size           (kbytes, -d) unlimited
> >>> scheduling priority             (-e) 0
> >>> file size               (blocks, -f) unlimited
> >>> pending signals                 (-i) 401408
> >>> max locked memory       (kbytes, -l) 1024
> >>> max memory size         (kbytes, -m) unlimited
> >>> open files                      (-n) 1024
> >>> pipe size            (512 bytes, -p) 8
> >>> POSIX message queues     (bytes, -q) 819200
> >>> real-time priority              (-r) 0
> >>> stack size              (kbytes, -s) 10240
> >>> cpu time               (seconds, -t) unlimited
> >>> max user processes              (-u) 401408
> >>> virtual memory          (kbytes, -v) unlimited
> >>> file locks                      (-x) unlimited
> >>>
> >>>
> >>>
> >>> ERROR:
> >>>
> >>>
> >>>
> >>>
> >>>
> >>> 2012-03-29 15:14:08,560 [] priority=ERROR app_name=
> >> thread=pool-3-thread-1
> >>> location=CommitTracker line=93 auto commit
> error...:java.io.IOException:
> >> Map
> >>> failed
> >>>      at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
> >>>      at
> >>>
> >>
> org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293)
> >>>      at
> >> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.lucene40.Lucene40PostingsReader.<init>(Lucene40PostingsReader.java:58)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat.fieldsProducer(Lucene40PostingsFormat.java:80)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.visitOneFormat(PerFieldPostingsFormat.java:189)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:280)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.<init>(PerFieldPostingsFormat.java:186)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.<init>(PerFieldPostingsFormat.java:186)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer(PerFieldPostingsFormat.java:256)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:108)
> >>>      at
> >> org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:51)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.IndexWriter$ReadersAndLiveDocs.getReader(IndexWriter.java:494)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.BufferedDeletesStream.applyDeletes(BufferedDeletesStream.java:214)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.IndexWriter.applyAllDeletes(IndexWriter.java:2939)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.IndexWriter.maybeApplyDeletes(IndexWriter.java:2930)
> >>>      at
> >> org.apache.lucene.index.IndexWriter.prepareCommit(IndexWriter.java:2681)
> >>>      at
> >>>
> org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:2804)
> >>>      at
> >> org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:2786)
> >>>      at
> >>>
> >>
> org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:391)
> >>>      at
> org.apache.solr.update.CommitTracker.run(CommitTracker.java:197)
> >>>      at
> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> >>>      at
> >>>
> >>> ...
> >>>
> >>> [Message clipped]
> >>> ----------
> >>> From: Michael McCandless <luc...@mikemccandless.com>
> >>> Date: Sat, Mar 31, 2012 at 3:15 AM
> >>> To: solr-user@lucene.apache.org
> >>>
> >>>
> >>> It's the virtual memory limit that matters; yours says unlimited below
> >>> (good!), but, are you certain that's really the limit your Solr
> >>> process runs with?
> >>>
> >>> On Linux, there is also a per-process map count:
> >>>
> >>>   cat /proc/sys/vm/max_map_count
> >>>
> >>> I think it typically defaults to 65,536 but you should check on your
> >>> env.  If a process tries to map more than this many regions, you'll
> >>> hit that exception.
> >>>
> >>> I think you can:
> >>>
> >>> cat /proc/<pid>/maps | wc
> >>>
> >>> to see how many maps your Solr process currently has... if that is
> >>> anywhere near the limit then it could be the cause.
> >>>
> >>> Mike McCandless
> >>>
> >>> http://blog.mikemccandless.com
> >>>
> >>> On Sat, Mar 31, 2012 at 1:26 AM, Gopal Patwa <gopalpa...@gmail.com>
> >> wrote:
> >>>> *I need help!!*
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *I am using Solr 4.0 nightly build with NRT and I often get this error
> >>>> during auto commit "**java.lang.OutOfMemoryError:* *Map* *failed". I
> >>>> have search this forum and what I found it is related to OS ulimit
> >>>> setting, please se below my ulimit settings. I am not sure what ulimit
> >>>> setting I should have? and we also get "**java.net.SocketException:*
> >>>> *Too* *many* *open* *files" NOT sure how many open file we need to
> >>>> set?*
> >>>>
> >>>>
> >>>> I have 3 core with index size : core1 - 70GB, Core2 - 50GB and Core3 -
> >>>> 15GB, with Single shard
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *We update the index every 5 seconds, soft commit every 1 second and
> >>>> hard commit every 15 minutes*
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *Environment: Jboss 4.2, JDK 1.6 , CentOS, JVM Heap Size = 24GB*
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> ulimit:
> >>>>
> >>>> core file size          (blocks, -c) 0
> >>>> data seg size           (kbytes, -d) unlimited
> >>>> scheduling priority             (-e) 0
> >>>> file size               (blocks, -f) unlimited
> >>>> pending signals                 (-i) 401408
> >>>> max locked memory       (kbytes, -l) 1024
> >>>> max memory size         (kbytes, -m) unlimited
> >>>> open files                      (-n) 1024
> >>>> pipe size            (512 bytes, -p) 8
> >>>> POSIX message queues     (bytes, -q) 819200
> >>>> real-time priority              (-r) 0
> >>>> stack size              (kbytes, -s) 10240
> >>>> cpu time               (seconds, -t) unlimited
> >>>> max user processes              (-u) 401408
> >>>> virtual memory          (kbytes, -v) unlimited
> >>>> file locks                      (-x) unlimited
> >>>>
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *ERROR:*
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *2012-03-29* *15:14:08*,*560* [] *priority=ERROR* *app_name=*
> >>>> *thread=pool-3-thread-1* *location=CommitTracker* *line=93* *auto*
> >>>> *commit* *error...:java.io.IOException:* *Map* *failed*
> >>>>       *at*
> *sun.nio.ch.FileChannelImpl.map*(*FileChannelImpl.java:748*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.store.MMapDirectory$MMapIndexInput.*<*init*>(*MMapDirectory.java:293*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.store.MMapDirectory.openInput*(*MMapDirectory.java:221*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.lucene40.Lucene40PostingsReader.*<*init*>(*Lucene40PostingsReader.java:58*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.lucene40.Lucene40PostingsFormat.fieldsProducer*(*Lucene40PostingsFormat.java:80*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.visitOneFormat*(*PerFieldPostingsFormat.java:189*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.*<*init*>(*PerFieldPostingsFormat.java:280*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader$1.*<*init*>(*PerFieldPostingsFormat.java:186*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$FieldsReader.*<*init*>(*PerFieldPostingsFormat.java:186*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.fieldsProducer*(*PerFieldPostingsFormat.java:256*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.SegmentCoreReaders.*<*init*>(*SegmentCoreReaders.java:108*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.SegmentReader.*<*init*>(*SegmentReader.java:51*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.IndexWriter$ReadersAndLiveDocs.getReader*(*IndexWriter.java:494*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.BufferedDeletesStream.applyDeletes*(*BufferedDeletesStream.java:214*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.IndexWriter.applyAllDeletes*(*IndexWriter.java:2939*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.IndexWriter.maybeApplyDeletes*(*IndexWriter.java:2930*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.IndexWriter.prepareCommit*(*IndexWriter.java:2681*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.lucene.index.IndexWriter.commitInternal*(*IndexWriter.java:2804*)
> >>>>       *at*
> >>>> *org.apache.lucene.index.IndexWriter.commit*(*IndexWriter.java:2786*)
> >>>>       *at*
> >>>>
> >>
> *org.apache.solr.update.DirectUpdateHandler2.commit*(*DirectUpdateHandler2.java:391*)
> >>>>       *at*
> >>>> *org.apache.solr.update.CommitTracker.run*(*CommitTracker.java:197*)
> >>>>       *at*
> >>>>
> >>
> *java.util.concurrent.Executors$RunnableAdapter.call*(*Executors.java:441*)
> >>>>       *at*
> >>>> *java.util.concurrent.FutureTask$Sync.innerRun*(*FutureTask.java:303*)
> >>>>       *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:886*)
> >>>>       *at*
> >>>>
> >>
> *java.util.concurrent.ThreadPoolExecutor$Worker.run*(*ThreadPoolExecutor.java:908*)
> >>>>       *at* *java.lang.Thread.run*(*Thread.java:662*)*Caused* *by:*
> >>>> *java.lang.OutOfMemoryError:* *Map* *failed*
> >>>>       *at* *sun.nio.ch.FileChannelImpl.map0*(*Native* *Method*)
> >>>>       *at*
> *sun.nio.ch.FileChannelImpl.map*(*FileChannelImpl.java:745*)
> >>>>       *...* *28* *more*
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *
> >>>> *
> >>>>
> >>>> *
> >>>>
> >>>>
> >>>> SolrConfig.xml:
> >>>>
> >>>>
> >>>>       <indexDefaults>
> >>>>               <useCompoundFile>false</useCompoundFile>
> >>>>               <mergeFactor>10</mergeFactor>
> >>>>               <maxMergeDocs>2147483647</maxMergeDocs>
> >>>>               <maxFieldLength>10000</maxFieldLength-->
> >>>>               <ramBufferSizeMB>4096</ramBufferSizeMB>
> >>>>               <maxThreadStates>10</maxThreadStates>
> >>>>               <writeLockTimeout>1000</writeLockTimeout>
> >>>>               <commitLockTimeout>10000</commitLockTimeout>
> >>>>               <lockType>single</lockType>
> >>>>
> >>>>           <mergePolicy
> >> class="org.apache.lucene.index.TieredMergePolicy">
> >>>>             <double name="forceMergeDeletesPctAllowed">0.0</double>
> >>>>             <double name="reclaimDeletesWeight">10.0</double>
> >>>>           </mergePolicy>
> >>>>
> >>>>           <deletionPolicy class="solr.SolrDeletionPolicy">
> >>>>             <str name="keepOptimizedOnly">false</str>
> >>>>             <str name="maxCommitsToKeep">0</str>
> >>>>           </deletionPolicy>
> >>>>
> >>>>       </indexDefaults>
> >>>>
> >>>>
> >>>>       <updateHandler class="solr.DirectUpdateHandler2">
> >>>>           <maxPendingDeletes>1000</maxPendingDeletes>
> >>>>            <autoCommit>
> >>>>              <maxTime>900000</maxTime>
> >>>>              <openSearcher>false</openSearcher>
> >>>>            </autoCommit>
> >>>>            <autoSoftCommit>
> >>>>
> >>>> <maxTime>${inventory.solr.softcommit.duration:1000}</maxTime>
> >>>>            </autoSoftCommit>
> >>>>
> >>>>       </updateHandler>
> >>>>
> >>>>
> >>>>
> >>>> Thanks
> >>>> Gopal Patwa
> >>>> *
> >>>
> >>> ----------
> >>> From: Gopal Patwa <gopalpa...@gmail.com>
> >>> Date: Tue, Apr 10, 2012 at 8:35 PM
> >>> To: solr-user@lucene.apache.org
> >>>
> >>>
> >>> Michael, Thanks for response
> >>>
> >>> it was 65K as you mention the default value for "cat
> >>> /proc/sys/vm/max_map_count" . How we determine what value this should
> be?
> >>> is it number of document during hard commit in my case it is 15
> >> minutes? or
> >>> it is number of  index file or number of documents we have in all
> cores.
> >>>
> >>> I have raised the number to 140K but I still get when it reaches to
> >> 140K, we
> >>> have to restart jboss server to free up the map count, sometime OOM
> error
> >>> happen during "Error opening new searcher"
> >>>
> >>> is making this number to unlimited is only solution?''
> >>>
> >>>
> >>> Error log:
> >>>
> >>> location=CommitTracker line=93 auto commit
> >>> error...:org.apache.solr.common.SolrException: Error opening new
> searcher
> >>>      at
> >> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1138)
> >>>      at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1251)
> >>>      at
> >>>
> >>
> org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:409)
> >>>      at
> org.apache.solr.update.CommitTracker.run(CommitTracker.java:197)
> >>>      at
> >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> >>>      at
> >> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >>>      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:886)
> >>>      at
> >>>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >>>      at java.lang.Thread.run(Thread.java:662)
> >>> Caused by: java.io.IOException: Map failed
> >>>      at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
> >>>      at
> >>>
> >>
> org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293)
> >>>      at
> >> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:262)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$1.<init>(PerFieldPostingsFormat.java:316)
> >>>      at
> >>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.files(PerFieldPostingsFormat.java:316)
> >>>      at org.apache.lucene.codecs.Codec.files(Codec.java:56)
> >>>      at org.apache.lucene.index.SegmentInfo.files(SegmentInfo.java:423)
> >>>      at
> >> org.apache.lucene.index.SegmentInfo.sizeInBytes(SegmentInfo.java:215)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.IndexWriter.prepareFlushedSegment(IndexWriter.java:2220)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.DocumentsWriter.publishFlushedSegment(DocumentsWriter.java:497)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.DocumentsWriter.finishFlush(DocumentsWriter.java:477)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue$SegmentFlushTicket.publish(DocumentsWriterFlushQueue.java:201)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue.innerPurge(DocumentsWriterFlushQueue.java:119)
> >>>      at
> >>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue.tryPurge(DocumentsWriterFlushQueue.java:148)
> >>>      at org.apache.lucene.index.
> >>>
> >>> ...
> >>>
> >>> [Message clipped]
> >>> ----------
> >>> From: Michael McCandless <luc...@mikemccandless.com>
> >>> Date: Wed, Apr 11, 2012 at 2:20 AM
> >>> To: solr-user@lucene.apache.org
> >>>
> >>>
> >>> Hi,
> >>>
> >>> 65K is already a very large number and should have been sufficient...
> >>>
> >>> However: have you increased the merge factor?  Doing so increases the
> >>> open files (maps) required.
> >>>
> >>> Have you disabled compound file format?  (Hmmm: I think Solr does so
> >>> by default... which is dangerous).  Maybe try enabling compound file
> >>> format?
> >>>
> >>> Can you "ls -l" your index dir and post the results?
> >>>
> >>> It's also possible Solr isn't closing the old searchers quickly enough
> >>> ... I don't know the details on when Solr closes old searchers...
> >>>
> >>> Mike McCandless
> >>>
> >>> http://blog.mikemccandless.com
> >>>
> >>>
> >>>
> >>> On Tue, Apr 10, 2012 at 11:35 PM, Gopal Patwa <gopalpa...@gmail.com>
> >> wrote:
> >>>> Michael, Thanks for response
> >>>>
> >>>> it was 65K as you mention the default value for "cat
> >>>> /proc/sys/vm/max_map_count" . How we determine what value this should
> >> be?
> >>>> is it number of document during hard commit in my case it is 15
> >> minutes?
> >>>> or it is number of  index file or number of documents we have in all
> >>>> cores.
> >>>>
> >>>> I have raised the number to 140K but I still get when it reaches to
> >> 140K,
> >>>> we have to restart jboss server to free up the map count, sometime OOM
> >>>> error happen during "*Error opening new searcher"*
> >>>>
> >>>> is making this number to unlimited is only solution?''
> >>>>
> >>>>
> >>>> Error log:
> >>>>
> >>>> *location=CommitTracker line=93 auto commit
> >>>> error...:org.apache.solr.common.SolrException: Error opening new
> >>>> searcher
> >>>>       at
> >>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1138)
> >>>>       at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1251)
> >>>>       at
> >>>>
> >>
> org.apache.solr.update.DirectUpdateHandler2.commit(DirectUpdateHandler2.java:409)
> >>>>       at
> >> org.apache.solr.update.CommitTracker.run(CommitTracker.java:197)
> >>>>       at
> >>>>
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
> >>>>       at
> >>>> java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> >>>>       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:886)
> >>>>       at
> >>>>
> >>
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> >>>>       at java.lang.Thread.run(Thread.java:662)Caused by:
> >>>> java.io.IOException: Map failed
> >>>>       at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:748)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.store.MMapDirectory$MMapIndexInput.<init>(MMapDirectory.java:293)
> >>>>       at
> >>>>
> org.apache.lucene.store.MMapDirectory.openInput(MMapDirectory.java:221)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$VisitPerFieldFile.<init>(PerFieldPostingsFormat.java:262)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat$1.<init>(PerFieldPostingsFormat.java:316)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.codecs.perfield.PerFieldPostingsFormat.files(PerFieldPostingsFormat.java:316)
> >>>>       at org.apache.lucene.codecs.Codec.files(Codec.java:56)
> >>>>       at
> >> org.apache.lucene.index.SegmentInfo.files(SegmentInfo.java:423)
> >>>>       at
> >>>> org.apache.lucene.index.SegmentInfo.sizeInBytes(SegmentInfo.java:215)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.IndexWriter.prepareFlushedSegment(IndexWriter.java:2220)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriter.publishFlushedSegment(DocumentsWriter.java:497)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriter.finishFlush(DocumentsWriter.java:477)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue$SegmentFlushTicket.publish(DocumentsWriterFlushQueue.java:201)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue.innerPurge(DocumentsWriterFlushQueue.java:119)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriterFlushQueue.tryPurge(DocumentsWriterFlushQueue.java:148)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:438)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:553)
> >>>>       at
> >>>> org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:354)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.StandardDirectoryReader.doOpenFromWriter(StandardDirectoryReader.java:258)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.StandardDirectoryReader.doOpenIfChanged(StandardDirectoryReader.java:243)
> >>>>       at
> >>>>
> >>
> org.apache.lucene.index.DirectoryReader.openIfChanged(DirectoryReader.java:250)
> >>>>       at
> >>>> org.apache.solr.core.SolrCore.openNewSearcher(SolrCore.java:1091)
> >>>>       ... 11 moreCaused by: java.lang.OutOfMemoryError: Map failed
> >>>>       at sun.nio.ch.FileChannelImpl.map0(Native Method)
> >>>>       at sun.nio.ch.FileChannelImpl.map(FileChannelImpl.java:745)*
> >>>>
> >>>>
> >>>>
> >>>> And one more issue we came across i.e
> >>>
> >>>
> >>
> >
> >
> > ______________________________________________________________________
> > This email has been scanned by the brightsolid Email Security System.
> Powered by MessageLabs
> > ______________________________________________________________________
>
>
> ______________________________________________________________________
> "brightsolid" is used in this email to collectively mean brightsolid
> online innovation limited and its subsidiary companies brightsolid online
> publishing limited and brightsolid online technology limited.
> findmypast.co.uk is a brand of brightsolid online publishing limited.
> brightsolid online innovation limited, Gateway House, Luna Place, Dundee
> Technology Park, Dundee DD2 1TP.  Registered in Scotland No. SC274983.
> brightsolid online publishing limited, The Glebe, 6 Chapel Place,
> Rivington Street, London EC2A 3DQ. Registered in England No. 04369607.
> brightsolid online technology limited, Gateway House, Luna Place, Dundee
> Technology Park, Dundee DD2 1TP.  Registered in Scotland No. SC161678.
>
> Email Disclaimer
>
> This message is confidential and may contain privileged information. You
> should not disclose its contents to any other person. If you are not the
> intended recipient, please notify the sender named above immediately. It is
> expressly declared that this e-mail does not constitute nor form part of a
> contract or unilateral obligation. Opinions, conclusions and other
> information in this message that do not relate to the official business of
> brightsolid shall be understood as neither given nor endorsed by it.
> ______________________________________________________________________
> This email has been scanned by the brightsolid Email Security System.
> Powered by MessageLabs
> ______________________________________________________________________
>

Reply via email to