[ 
https://issues.apache.org/jira/browse/SOLR-12071?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16394650#comment-16394650
 ] 

Amrit Sarkar commented on SOLR-12071:
-------------------------------------

Design of fix in place:

1. Skip the initialization of the {{CdcrRequestHandler}}; return with doing 
nothing, when Cdcr request is received by a PULL replica core.
2. Redirect the requests to {{leader-node}} of the shards of the collection. It 
STILL doesn't guarantee the request will be received to the leader-core in 
which all the relevant components of Cdcr are initialised. It will redirect 
until the request is received by a leader-core.

bq. It will redirect until the request is received by a leader-core.
Not comfortable with an infinite loop of requests, need a better strategy to 
fail, probably adding an internal param to limit the requests. But when it 
fails, all the requests and processes which are dependent on 
{{COLLECTIONCHECKPOINT}} would get affected.

Requesting feedback on how to handle this.

> PULL replica cores initialisation fails when Cdcr enabled
> ---------------------------------------------------------
>
>                 Key: SOLR-12071
>                 URL: https://issues.apache.org/jira/browse/SOLR-12071
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: CDCR
>    Affects Versions: 7.2
>            Reporter: Amrit Sarkar
>            Assignee: Varun Thacker
>            Priority: Major
>         Attachments: SOLR-12071.patch
>
>
> {{CdcrUpdateLog}} never gets picked up for PULL type replicas and hence the 
> core initialisation fails when a collection is CDCR enabled, obviously it 
> can't be a leader, but followers.
> {code}
>    [junit4]   2> 47345 INFO  (qtp1256767285-28) [n:127.0.0.1:50646_solr 
> c:cdcr-cluster2 s:shard1 r:core_node4 x:cdcr-cluster2_shard1_replica_p2] 
> o.a.s.m.SolrMetricManager Closing metric reporters for 
> registry=solr.collection.cdcr-cluster2.shard1.leader, tag=895903268
>    [junit4]   2> 47353 INFO  
> (searcherExecutor-32-thread-1-processing-n:127.0.0.1:50646_solr 
> x:cdcr-cluster2_shard1_replica_t1 s:shard1 c:cdcr-cluster2 r:core_node3) 
> [n:127.0.0.1:50646_solr c:cdcr-cluster2 s:shard1 r:core_node3 
> x:cdcr-cluster2_shard1_replica_t1] o.a.s.c.SolrCore 
> [cdcr-cluster2_shard1_replica_t1] Registered new searcher 
> Searcher@638c50cd[cdcr-cluster2_shard1_replica_t1] 
> main{ExitableDirectoryReader(UninvertingDirectoryReader())}
>    [junit4]   2> 47353 ERROR (qtp1256767285-28) [n:127.0.0.1:50646_solr 
> c:cdcr-cluster2 s:shard1 r:core_node4 x:cdcr-cluster2_shard1_replica_p2] 
> o.a.s.h.RequestHandlerBase org.apache.solr.common.SolrException: Error 
> CREATEing SolrCore 'cdcr-cluster2_shard1_replica_p2': Unable to create core 
> [cdcr-cluster2_shard1_replica_p2] Caused by: Solr instance is not configured 
> with the cdcr update log.
>    [junit4]   2>      at 
> org.apache.solr.core.CoreContainer.create(CoreContainer.java:993)
>    [junit4]   2>      at 
> org.apache.solr.handler.admin.CoreAdminOperation.lambda$static$0(CoreAdminOperation.java:90)
>    [junit4]   2>      at 
> org.apache.solr.handler.admin.CoreAdminOperation.execute(CoreAdminOperation.java:358)
>    [junit4]   2>      at 
> org.apache.solr.handler.admin.CoreAdminHandler$CallInfo.call(CoreAdminHandler.java:389)
>    [junit4]   2>      at 
> org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:174)
>    [junit4]   2>      at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:195)
>    [junit4]   2>      at 
> org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:736)
>    [junit4]   2>      at 
> org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:717)
>    [junit4]   2>      at 
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:498)
>    [junit4]   2>      at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:384)
>    [junit4]   2>      at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:330)
>    [junit4]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
>    [junit4]   2>      at 
> org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:139)
>    [junit4]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
>    [junit4]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
>    [junit4]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:455)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.Server.handle(Server.java:530)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:347)
>    [junit4]   2>      at 
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:256)
>    [junit4]   2>      at 
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
>    [junit4]   2>      at 
> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
>    [junit4]   2>      at 
> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
>    [junit4]   2>      at 
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
>    [junit4]   2>      at java.lang.Thread.run(Thread.java:748)
>    [junit4]   2> Caused by: org.apache.solr.common.SolrException: Unable to 
> create core [cdcr-cluster2_shard1_replica_p2]
>    [junit4]   2>      at 
> org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1060)
>    [junit4]   2>      at 
> org.apache.solr.core.CoreContainer.create(CoreContainer.java:954)
>    [junit4]   2>      ... 39 more
>    [junit4]   2> Caused by: org.apache.solr.common.SolrException: Solr 
> instance is not configured with the cdcr update log.
>    [junit4]   2>      at 
> org.apache.solr.core.SolrCore.<init>(SolrCore.java:1008)
>    [junit4]   2>      at 
> org.apache.solr.core.SolrCore.<init>(SolrCore.java:863)
>    [junit4]   2>      at 
> org.apache.solr.core.CoreContainer.createFromDescriptor(CoreContainer.java:1044)
>    [junit4]   2>      ... 40 more
>    [junit4]   2> Caused by: org.apache.solr.common.SolrException: Solr 
> instance is not configured with the cdcr update log.
>    [junit4]   2>      at 
> org.apache.solr.handler.CdcrRequestHandler.inform(CdcrRequestHandler.java:259)
>    [junit4]   2>      at 
> org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:696)
>    [junit4]   2>      at 
> org.apache.solr.core.SolrCore.<init>(SolrCore.java:987)
>    [junit4]   2>      ... 42 more
>    [junit4]   2> 
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to