You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Anuj Kumar <an...@gmail.com> on 2011/06/21 17:29:55 UTC

Read past EOF error due to broken connection

Hello Everyone,

While trying to index a set of documents on remote Solr instance, the
connection broke and it left the index in an inconsistent state. Now, when I
start the instance, it fails while getting the searcher with the following
exception-

Caused by: java.io.IOException: read past EOF
at
org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:207)
 at
org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:39)
at
org.apache.lucene.store.ChecksumIndexInput.readByte(ChecksumIndexInput.java:40)
 at org.apache.lucene.store.IndexInput.readInt(IndexInput.java:71)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:268)
 at
org.apache.lucene.index.DirectoryReader$1.doBody(DirectoryReader.java:79)
at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:753)
 at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:75)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:428)
 at org.apache.lucene.index.IndexReader.open(IndexReader.java:371)
at
org.apache.solr.core.StandardIndexReaderFactory.newReader(StandardIndexReaderFactory.java:38)
 at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1080)

I saw this JIRA entry- https://jira.atlassian.com/browse/JRA-12030 that asks
to re-index. Is there a way to restore the last known good index snapshot?

Thanks,
Anuj

Re: Read past EOF error due to broken connection

Posted by Anuj Kumar <an...@gmail.com>.
Hi Pravesh,

I was just indexing some documents remotely on a single node instance
when the connection broke.
So, there isn't any manual copy that I did.

I think I will go ahead and re-index. Just curious to know, if there
is any option to specify the check-point for last commit and rollback
to it in these scenarios.

Thanks,
Anuj

On Thu, Jun 23, 2011 at 12:02 PM, pravesh <su...@yahoo.com> wrote:
> Did you do manual copy of index from Master to Slave of servers. I suppose,
> it won't be copied properly.
> If this is the case, then you can check the size of indexes on both servers.
> Otherwise, you would've to recreate the indexes.
>
> Thanx
> Pravesh
>
> --
> View this message in context: http://lucene.472066.n3.nabble.com/Read-past-EOF-error-due-to-broken-connection-tp3091247p3098737.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>

Re: Read past EOF error due to broken connection

Posted by pravesh <su...@yahoo.com>.
Did you do manual copy of index from Master to Slave of servers. I suppose,
it won't be copied properly.
If this is the case, then you can check the size of indexes on both servers.
Otherwise, you would've to recreate the indexes.

Thanx
Pravesh

--
View this message in context: http://lucene.472066.n3.nabble.com/Read-past-EOF-error-due-to-broken-connection-tp3091247p3098737.html
Sent from the Solr - User mailing list archive at Nabble.com.

Re: Read past EOF error due to broken connection

Posted by Anuj Kumar <an...@gmail.com>.
Hi Pravesh,

Thanks for your reply. I tried both the approaches-

Commit fails with this exception-

Exception in thread "main" org.apache.solr.common.SolrException: Severe
errors in solr configuration.  Check your log files for more detailed
information on what may be wrong.  If you want solr to continue after
configuration errors, change:
 <abortOnConfigurationError>false</abortOnConfigurationError>  in solr.xml
 -------------------------------------------------------------
java.lang.RuntimeException: java.io.IOException: read past EOF at
org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1091) at
org.apache.solr.core.SolrCore.<init>(SolrCore.java:585) at
org.apache.solr.core.CoreContainer.create(CoreContainer.java:463) at
org.apache.solr.core.CoreContainer.load(CoreContainer.java:316) at
org.apache.solr.core.CoreContainer.load(CoreContainer.java:207) at
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
at
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94) at
org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at
org.mortbay.jetty.Server.doStart(Server.java:224) at org

Severe errors in solr configuration.  Check your log files for more detailed
information on what may be wrong.  If you want solr to continue after
configuration errors, change:
 <abortOnConfigurationError>false</abortOnConfigurationError>  in solr.xml
 -------------------------------------------------------------
java.lang.RuntimeException: java.io.IOException: read past EOF at
org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:1091) at
org.apache.solr.core.SolrCore.<init>(SolrCore.java:585) at
org.apache.solr.core.CoreContainer.create(CoreContainer.java:463) at
org.apache.solr.core.CoreContainer.load(CoreContainer.java:316) at
org.apache.solr.core.CoreContainer.load(CoreContainer.java:207) at
org.apache.solr.core.CoreContainer$Initializer.initialize(CoreContainer.java:130)
at
org.apache.solr.servlet.SolrDispatchFilter.init(SolrDispatchFilter.java:94) at
org.mortbay.jetty.servlet.FilterHolder.doStart(FilterHolder.java:97) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:713)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:140) at
org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499) at
org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at
org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50) at
org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130) at
org.mortbay.jetty.Server.doStart(Server.java:224) at org

And Checkindex fails with this exception-

Opening index @ ./index/

ERROR: could not read any segments file in directory
java.io.IOException: read past EOF
at
org.apache.lucene.store.BufferedIndexInput.refill(BufferedIndexInput.java:207)
at
org.apache.lucene.store.BufferedIndexInput.readByte(BufferedIndexInput.java:39)
at
org.apache.lucene.store.ChecksumIndexInput.readByte(ChecksumIndexInput.java:40)
at org.apache.lucene.store.IndexInput.readInt(IndexInput.java:71)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:268)
at org.apache.lucene.index.SegmentInfos$1.doBody(SegmentInfos.java:358)
at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:753)
at
org.apache.lucene.index.SegmentInfos$FindSegmentsFile.run(SegmentInfos.java:592)
at org.apache.lucene.index.SegmentInfos.read(SegmentInfos.java:354)
at org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:319)
at org.apache.lucene.index.CheckIndex.main(CheckIndex.java:940)

Any other options?

Thanks again,
Anuj

On Wed, Jun 22, 2011 at 11:47 AM, pravesh <su...@yahoo.com> wrote:

> First commit and then try again to search.
>
> You can also use lucene's CheckIndex tool to check & fix your index (it may
> remove some corrupt segments in your index)
>
> Thanx
> Pravesh
>
> --
> View this message in context:
> http://lucene.472066.n3.nabble.com/Read-past-EOF-error-due-to-broken-connection-tp3091247p3094334.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>

Re: Read past EOF error due to broken connection

Posted by pravesh <su...@yahoo.com>.
First commit and then try again to search.

You can also use lucene's CheckIndex tool to check & fix your index (it may
remove some corrupt segments in your index)

Thanx
Pravesh

--
View this message in context: http://lucene.472066.n3.nabble.com/Read-past-EOF-error-due-to-broken-connection-tp3091247p3094334.html
Sent from the Solr - User mailing list archive at Nabble.com.