[ 
https://issues.apache.org/jira/browse/SOLR-6920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Varun Thacker updated SOLR-6920:
--------------------------------
    Attachment: SOLR-6920.patch

Updated patch. This handles the back compat check correctly

While running the tests I got a failure which can be reproduced with 
{noformat}ant test  -Dtestcase=SyncSliceTest -Dtests.method=test 
-Dtests.seed=588DD6F3A8F57A44 -Dtests.slow=true -Dtests.locale=no_NO_NY 
-Dtests.timezone=America/Bahia -Dtests.asserts=true 
-Dtests.file.encoding=UTF-8{noformat}

The exception thrown is - 
{code}
131990 T79 C17 P63349 oasc.SolrException.log ERROR 
java.lang.ArrayIndexOutOfBoundsException: -8
                at 
org.apache.lucene.store.RAMInputStream.readByte(RAMInputStream.java:73)
                at org.apache.lucene.store.DataInput.readInt(DataInput.java:98)
                at 
org.apache.lucene.store.MockIndexInputWrapper.readInt(MockIndexInputWrapper.java:159)
                at 
org.apache.lucene.codecs.CodecUtil.validateFooter(CodecUtil.java:414)
                at 
org.apache.lucene.codecs.CodecUtil.retrieveChecksum(CodecUtil.java:401)
                at 
org.apache.solr.handler.ReplicationHandler.getFileList(ReplicationHandler.java:445)
                at 
org.apache.solr.handler.ReplicationHandler.handleRequestBody(ReplicationHandler.java:212)
                at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:144)
                at org.apache.solr.core.SolrCore.execute(SolrCore.java:2006)
                at 
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
                at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:413)
                at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:204)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
                at 
org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:142)
                at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
                at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
                at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
                at 
org.eclipse.jetty.server.handler.GzipHandler.handle(GzipHandler.java:301)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1077)
                at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
                at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
                at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
                at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
                at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
                at org.eclipse.jetty.server.Server.handle(Server.java:368)
                at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
                at 
org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
                at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
                at 
org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
                at 
org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
                at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
                at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
                at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
                at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
                at java.lang.Thread.run(Thread.java:745)
{code}

On debugging I found out the file which was causing it - 
{{_0_MockRandom_0.sd}} . This is a MockRandomPostingsFormat.SEED_EXT fille.

Adding this to SyncSliceTest fixed the fail - 
{noformat}@LuceneTestCase.SuppressCodecs({ "MockRandom" }){noformat} but any 
other test could end up using it causing a failure. Any idea on how to tackle it

> During replication use checksums to verify if files are the same
> ----------------------------------------------------------------
>
>                 Key: SOLR-6920
>                 URL: https://issues.apache.org/jira/browse/SOLR-6920
>             Project: Solr
>          Issue Type: Bug
>          Components: replication (java)
>            Reporter: Varun Thacker
>         Attachments: SOLR-6920.patch, SOLR-6920.patch, SOLR-6920.patch
>
>
> Currently we check if an index file on the master and slave is the same by 
> checking if it's name and file length match. 
> With LUCENE-2446 we now have a checksums for each index file in the segment. 
> We should leverage this to verify if two files are the same.
> Places like SnapPuller.isIndexStale and SnapPuller.downloadIndexFiles should 
> check against the checksum also.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to