Thats odd - that file is normally not used - its a backup method to figure out the current generation in case it cannot be determined with a directory listing - its basically for NFS.
Maduranga Kannangara wrote: > Just found out the root cause: > > * The segments.gen file does not get replicated to slave all the time. > > For some reason, this small (20bytes) file lives in memory and does not get > updated to the master's hard disk. Therefore it is not obviously transferred > to slaves. > > Solution was to shut down the master web app (must be a clean shut down!, not > kill of Tomcat). Then do the replication. > > Also, if the timestamp/size (size won't change anyway!) is not changed, Rsync > does not seem to copy over this file too. So enforcing in the replication > scripts solved the problem. > > Thanks Otis and everyone for all your support! > > Madu > > > -----Original Message----- > From: Maduranga Kannangara > Sent: Monday, 16 November 2009 12:37 PM > To: solr-user@lucene.apache.org > Subject: RE: Segment file not found error - after replicating > > Yes. We have tried Solr 1.4 and so far its been great success. > > Still I am investigating why Solr 1.3 gave an issue like before. > > Currently seems to me > org.apache.lucene.index.SegmentInfos.FindSegmentFile.run() is not able to > figure out correct segment file name. (May be index replication issue -- > leading to "not fully replicated".. but its so hard to believe as both master > and slave are having 100% same data now!) > > Anyway.. will keep on trying till I find something useful.. and will let you > know. > > > Thanks > Madu > > > -----Original Message----- > From: Otis Gospodnetic [mailto:otis_gospodne...@yahoo.com] > Sent: Wednesday, 11 November 2009 10:03 AM > To: solr-user@lucene.apache.org > Subject: Re: Segment file not found error - after replicating > > It sounds like your index is not being fully replicated. I can't tell why, > but I can suggest you try the new Solr 1.4 replication. > > Otis > -- > Sematext is hiring -- http://sematext.com/about/jobs.html?mls > Lucene, Solr, Nutch, Katta, Hadoop, HBase, UIMA, NLP, NER, IR > > > > ----- Original Message ---- > >> From: Maduranga Kannangara <mkannang...@infomedia.com.au> >> To: "solr-user@lucene.apache.org" <solr-user@lucene.apache.org> >> Sent: Tue, November 10, 2009 5:42:44 PM >> Subject: RE: Segment file not found error - after replicating >> >> Thanks Otis, >> >> I did the du -s for all three index directories as you said right after >> replicating and when I find errors. >> >> All three gave me the exact same value. This time I found the error in a >> rather >> small index too (31Mb). >> >> BTW, if I copy the segment_x file to what Solr is looking for, and restart >> the >> Solr web-app from Tomcat manager, this resolves. But it's just a work around, >> never good enough for the production deployments. >> >> My next plan is to do a remote debug to see what exactly happening in the >> code. >> >> Any other things I should looking at? >> Any help is really appreciated on this matter. >> >> Thanks >> Madu >> >> >> -----Original Message----- >> From: Otis Gospodnetic [mailto:otis_gospodne...@yahoo.com] >> Sent: Tuesday, 10 November 2009 1:14 PM >> To: solr-user@lucene.apache.org >> Subject: Re: Segment file not found error - after replicating >> >> Madu, >> >> So are you saying that all slaves have the exact same index, and that index >> is >> exactly the same as the one on the master, yet only some of those slaves >> exhibit >> this error, while others do not? Mind listing index directories of 1) >> master 2) >> slave without errors, 3) slave with errors and doing: >> du -s /path/to/index/on/master >> du -s /path/to/index/on/slave/without/errors >> du -s /path/to/index/on/slave/with/errors >> >> >> Otis >> -- >> Sematext is hiring -- http://sematext.com/about/jobs.html?mls >> Lucene, Solr, Nutch, Katta, Hadoop, HBase, UIMA, NLP, NER, IR >> >> >> >> ----- Original Message ---- >> >>> From: Maduranga Kannangara >>> To: "solr-user@lucene.apache.org" >>> Sent: Mon, November 9, 2009 7:47:04 PM >>> Subject: RE: Segment file not found error - after replicating >>> >>> Thanks Otis! >>> >>> Yes, I checked the index directories and they are 100% same, both timestamp >>> >> and >> >>> size wise. >>> >>> Not all the slaves face this issue. I would say roughly 50% has this >>> trouble. >>> >>> Logs do not have any errors too :-( >>> >>> Any other things I should do/look at? >>> >>> Cheers >>> Madu >>> >>> >>> -----Original Message----- >>> From: Otis Gospodnetic [mailto:otis_gospodne...@yahoo.com] >>> Sent: Tuesday, 10 November 2009 9:26 AM >>> To: solr-user@lucene.apache.org >>> Subject: Re: Segment file not found error - after replicating >>> >>> It's hard to troubleshoot blindly like this, but have you tried manually >>> comparing the contents of the index dir on the master and on the slave(s)? >>> If they are out of sync, have you tried forcing of replication to see if one >>> >> of >> >>> the subsequent replication attempts gets the dirs in sync? >>> Do you have more than 1 slave and do they all start having this problem at >>> the >>> same time? >>> Any errors in the logs for any of the scripts involved in replication in >>> 1.3? >>> >>> Otis >>> -- >>> Sematext is hiring -- http://sematext.com/about/jobs.html?mls >>> Lucene, Solr, Nutch, Katta, Hadoop, HBase, UIMA, NLP, NER, IR >>> >>> >>> >>> ----- Original Message ---- >>> >>>> From: Maduranga Kannangara >>>> To: "solr-user@lucene.apache.org" >>>> Sent: Sun, November 8, 2009 10:30:44 PM >>>> Subject: Segment file not found error - after replicating >>>> >>>> Hi guys, >>>> >>>> We use Solr 1.3 for indexing large amounts of data (50G avg) on Linux >>>> environment and use the replication scripts to make replicas those live in >>>> >>> load >>> >>>> balancing slaves. >>>> >>>> The issue we face quite often (only in Linux servers) is that they tend to >>>> >> not >> >>>> been able to find the segment file (segment_x etc) after the replicating >>>> completed. As this has become quite common, we started hitting a serious >>>> >>> issue. >>> >>>> Below is a stack trace, if that helps and any help on this matter is >>>> greatly >>>> appreciated. >>>> >>>> -------------------------------- >>>> >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created /admin/: org.apache.solr.handler.admin.AdminHandlers >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created /admin/ping: org.apache.solr.handler.PingRequestHandler >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created /debug/dump: org.apache.solr.handler.DumpRequestHandler >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created gap: org.apache.solr.highlight.GapFragmenter >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created regex: org.apache.solr.highlight.RegexFragmenter >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.util.plugin.AbstractPluginLoader >>>> >> load >> >>>> INFO: created html: org.apache.solr.highlight.HtmlFormatter >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.servlet.SolrDispatchFilter init >>>> SEVERE: Could not start SOLR. Check solr/home property >>>> java.lang.RuntimeException: java.io.FileNotFoundException: >>>> /solrinstances/solrhome01/data/index/segments_v (No such file or directory) >>>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:960) >>>> at org.apache.solr.core.SolrCore.(SolrCore.java:470) >>>> at >>>> >>>> >> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:119) >> >>>> at >>>> org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) >> >>>> at >>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4363) >>>> at >>>> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099) >>>> at >>>> org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:916) >>>> at >>>> >>>> >> org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:536) >> >>>> at >>>> >>>> >> org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:114) >> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>>> at com.jamonapi.JAMonFilter.doFilter(JAMonFilter.java:57) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> >>>> at >>>> >>>> >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> >>>> at >>>> >>>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >>>> at >>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) >>>> at >>>> >>>> >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> >>>> at >>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >>>> at java.lang.Thread.run(Thread.java:619) >>>> Caused by: java.io.FileNotFoundException: >>>> /solrinstances/solrhome01/data/index/segments_v (No such file or directory) >>>> at java.io.RandomAccessFile.open(Native Method) >>>> at java.io.RandomAccessFile.(RandomAccessFile.java:212) >>>> at >>>> >>>> >> org.apache.lucene.store.FSDirectory$FSIndexInput$Descriptor.(FSDirectory.java:552) >> >>>> at >>>> org.apache.lucene.store.FSDirectory$FSIndexInput.(FSDirectory.java:582) >>>> at >>>> >> org.apache.lucene.store.FSDirectory.openInput(FSDirectory.java:488) >> >>>> at >>>> >> org.apache.lucene.store.FSDirectory.openInput(FSDirectory.java:482) >> >>>> at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:214) >>>> at >>>> >>>> >> org.apache.lucene.index.DirectoryIndexReader$1.doBody(DirectoryIndexReader.java:94) >> >>>> at >>>> >>>> >> org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:653) >> >>>> at >>>> >>>> >> org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:111) >> >>>> at org.apache.lucene.index.IndexReader.open(IndexReader.java:316) >>>> at org.apache.lucene.index.IndexReader.open(IndexReader.java:237) >>>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:951) >>>> ... 30 more >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.common.SolrException log >>>> SEVERE: java.lang.RuntimeException: java.io.FileNotFoundException: >>>> /solrinstances/solrhome01/data/index/segments_v (No such file or directory) >>>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:960) >>>> at org.apache.solr.core.SolrCore.(SolrCore.java:470) >>>> at >>>> >>>> >> org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:119) >> >>>> at >>>> org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:69) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709) >> >>>> at >>>> org.apache.catalina.core.StandardContext.start(StandardContext.java:4363) >>>> at >>>> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099) >>>> at >>>> org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:916) >>>> at >>>> >>>> >> org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:536) >> >>>> at >>>> >>>> >> org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:114) >> >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) >>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>>> at com.jamonapi.JAMonFilter.doFilter(JAMonFilter.java:57) >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) >> >>>> at >>>> >>>> >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) >> >>>> at >>>> >>>> >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) >> >>>> at >>>> >>>> >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> >>>> at >>>> >>>> >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) >> >>>> at >>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) >>>> at >>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) >>>> at >>>> >>>> >> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) >> >>>> at >>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) >>>> at java.lang.Thread.run(Thread.java:619) >>>> Caused by: java.io.FileNotFoundException: >>>> /solrinstances/solrhome01/data/index/segments_v (No such file or directory) >>>> at java.io.RandomAccessFile.open(Native Method) >>>> at java.io.RandomAccessFile.(RandomAccessFile.java:212) >>>> at >>>> >>>> >> org.apache.lucene.store.FSDirectory$FSIndexInput$Descriptor.(FSDirectory.java:552) >> >>>> at >>>> org.apache.lucene.store.FSDirectory$FSIndexInput.(FSDirectory.java:582) >>>> at >>>> >> org.apache.lucene.store.FSDirectory.openInput(FSDirectory.java:488) >> >>>> at >>>> >> org.apache.lucene.store.FSDirectory.openInput(FSDirectory.java:482) >> >>>> at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:214) >>>> at >>>> >>>> >> org.apache.lucene.index.DirectoryIndexReader$1.doBody(DirectoryIndexReader.java:94) >> >>>> at >>>> >>>> >> org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:653) >> >>>> at >>>> >>>> >> org.apache.lucene.index.DirectoryIndexReader.open(DirectoryIndexReader.java:111) >> >>>> at org.apache.lucene.index.IndexReader.open(IndexReader.java:316) >>>> at org.apache.lucene.index.IndexReader.open(IndexReader.java:237) >>>> at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:951) >>>> ... 30 more >>>> >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.servlet.SolrDispatchFilter init >>>> INFO: SolrDispatchFilter.init() done >>>> Nov 5, 2009 11:34:46 PM org.apache.solr.servlet.SolrServlet init >>>> INFO: SolrServlet.init() >>>> >>>> -------------------------------- >>>> >>>> Steps to re-produce the error (However, for me did not work in my local >>>> box. >>>> Also remote server is too far away to remote-debug!). >>>> >>>> - Post some new data to the master server (Usually about 1Gb worth text >>>> >>> files) >>> >>>> - Run the replicate script in slave Solr instance >>>> - Try to login to admin in slave Solr instance >>>> >>>> And you should see above stack trace even in the Tomcat output. >>>> >>>> >>>> Thanks in advance. >>>> Madu >>>> > > -- - Mark http://www.lucidimagination.com