How are you doing the backup? You have to coordinate with Solr - files may be changing when you try and copy it, leaving to an inconsistent index. If you want to do a live backup, you have to use the backup feature of the replication handler.
- Mark On Feb 23, 2013, at 3:54 AM, Prakhar Birla <prakharbi...@gmail.com> wrote: > Hi, > > We use Solr 4.0 for our main searcher so it is a very vital part. We have > set up a process called Index reassurance which assures that all documents > are available in Solr by comparing to our database. In short this is > achieved as: The production server (read/write) is a slave while another > server (write only) is the master where the indexes are built and > replicated to the slave. > > We are adding a backup/restore feature to this process which means that the > backup can originate from either server (while it is running) and will be > applied to the master after which the indexes are built and replicated. > > The backup is a tar.gz copy of the core. > > The problem we are facing is when a commit is done on data loaded from the > backup. Following is the stack trace: > > SEVERE: null:java.io.FileNotFoundException: /var/www/locationapp7078/solr/ >> collection1/data/index.20130222154157971/_18.fnm (No such file or >> directory) >> at java.io.RandomAccessFile.open(Native Method) >> at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233) >> at org.apache.lucene.store.MMapDirectory.openInput( >> MMapDirectory.java:222) >> at org.apache.lucene.store.NRTCachingDirectory.openInput( >> NRTCachingDirectory.java:232) >> at org.apache.lucene.codecs.lucene40.Lucene40FieldInfosReader.read( >> Lucene40FieldInfosReader.java:52) >> at org.apache.lucene.index.SegmentCoreReaders.<init>( >> SegmentCoreReaders.java:101) >> at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:57) >> at org.apache.lucene.index.ReadersAndLiveDocs.getReader( >> ReadersAndLiveDocs.java:120) >> at org.apache.lucene.index.BufferedDeletesStream.applyDeletes( >> BufferedDeletesStream.java:267) >> at org.apache.lucene.index.IndexWriter.applyAllDeletes( >> IndexWriter.java:3010) >> at org.apache.lucene.index.IndexWriter.maybeApplyDeletes( >> IndexWriter.java:3001) >> at org.apache.lucene.index.IndexWriter.doFlush(IndexWriter.java:2974) >> at org.apache.lucene.index.IndexWriter.flush(IndexWriter.java:2943) >> at org.apache.lucene.index.IndexWriter.forceMerge( >> IndexWriter.java:1606) >> at org.apache.lucene.index.IndexWriter.forceMerge( >> IndexWriter.java:1582) >> at org.apache.solr.update.DirectUpdateHandler2.commit( >> DirectUpdateHandler2.java:515) >> at org.apache.solr.update.processor.RunUpdateProcessor.processCommit( >> RunUpdateProcessorFactory.java:87) >> at org.apache.solr.update.processor.UpdateRequestProcessor. >> processCommit(UpdateRequestProcessor.java:64) >> at org.apache.solr.update.processor.DistributedUpdateProcessor. >> processCommit(DistributedUpdateProcessor.java:1007) >> at org.apache.solr.update.processor.LogUpdateProcessor.processCommit( >> LogUpdateProcessorFactory.java:157) >> at org.apache.solr.handler.loader.XMLLoader. >> processUpdate(XMLLoader.java:250) >> at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:157) >> at org.apache.solr.handler.UpdateRequestHandler$1.load( >> UpdateRequestHandler.java:92) >> at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody( >> ContentStreamHandlerBase.java:74) >> at org.apache.solr.handler.RequestHandlerBase.handleRequest( >> RequestHandlerBase.java:129) >> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1699) >> at org.apache.solr.servlet.SolrDispatchFilter.execute( >> SolrDispatchFilter.java:455) >> at org.apache.solr.servlet.SolrDispatchFilter.doFilter( >> SolrDispatchFilter.java:276) >> at org.eclipse.jetty.servlet.ServletHandler$CachedChain. >> doFilter(ServletHandler.java:1337) >> at org.eclipse.jetty.servlet.ServletHandler.doHandle( >> ServletHandler.java:484) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle( >> ScopedHandler.java:119) >> at org.eclipse.jetty.security.SecurityHandler.handle( >> SecurityHandler.java:524) >> at org.eclipse.jetty.server.session.SessionHandler. >> doHandle(SessionHandler.java:233) >> at org.eclipse.jetty.server.handler.ContextHandler. >> doHandle(ContextHandler.java:1065) >> at org.eclipse.jetty.servlet.ServletHandler.doScope( >> ServletHandler.java:413) >> at org.eclipse.jetty.server.session.SessionHandler. >> doScope(SessionHandler.java:192) >> at org.eclipse.jetty.server.handler.ContextHandler. >> doScope(ContextHandler.java:999) >> at org.eclipse.jetty.server.handler.ScopedHandler.handle( >> ScopedHandler.java:117) >> at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle( >> ContextHandlerCollection.java:250) >> at org.eclipse.jetty.server.handler.HandlerCollection. >> handle(HandlerCollection.java:149) >> at org.eclipse.jetty.server.handler.HandlerWrapper.handle( >> HandlerWrapper.java:111) >> at org.eclipse.jetty.server.Server.handle(Server.java:351) >> at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest( >> AbstractHttpConnection.java:454) >> at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest( >> BlockingHttpConnection.java:47) >> at org.eclipse.jetty.server.AbstractHttpConnection.content( >> AbstractHttpConnection.java:900) >> at org.eclipse.jetty.server.AbstractHttpConnection$ >> RequestHandler.content(AbstractHttpConnection.java:954) >> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:857) >> at org.eclipse.jetty.http.HttpParser.parseAvailable( >> HttpParser.java:235) >> at org.eclipse.jetty.server.BlockingHttpConnection.handle( >> BlockingHttpConnection.java:66) >> at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run( >> SocketConnector.java:254) >> at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob( >> QueuedThreadPool.java:599) >> at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run( >> QueuedThreadPool.java:534) >> at java.lang.Thread.run(Thread.java:679) > > > Thanks! > > -- > Regards, > Prakhar Birla