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

Amrit Sarkar updated SOLR-12063:
--------------------------------
    Description: 
CDCR implements it's own UpdateLog (CdcrUpdateLog) . We changed the encoding 
format in SOLR-11003.
PeerSync / LeaderElection code and CDCR checkpoint API call are unable to read 
delete-by-id's and in-place updates if they are present in the transaction log 
throwing a ClassCastException as a WARN

Here's a stack trace for the WARN.

{code}
  [beaster]   2> 27394 WARN  (qtp97093533-72) [n:127.0.0.1:44658_solr 
c:cdcr-cluster1 s:shard1 r:core_node3 x:cdcr-cluster1_shard1_replica_n1] 
o.a.s.u.UpdateLog Unexpected log entry or corrupt log.  Entry=[2, 
-1594312216007409664, [B@28e6859c, true]
  [beaster]   2> java.lang.ClassCastException: java.lang.Boolean cannot be cast 
to [B
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog$RecentUpdates.update(UpdateLog.java:1443)
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog$RecentUpdates.<init>(UpdateLog.java:1340)
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog.getRecentUpdates(UpdateLog.java:1513)
  [beaster]   2>        at 
org.apache.solr.handler.CdcrRequestHandler.handleShardCheckpointAction(CdcrRequestHandler.java:448)
  [beaster]   2>        at 
org.apache.solr.handler.CdcrRequestHandler.handleRequestBody(CdcrRequestHandler.java:198)
  [beaster]   2>        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:195)
  [beaster]   2>        at 
org.apache.solr.core.SolrCore.execute(SolrCore.java:2503)
  [beaster]   2>        at 
org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
  [beaster]   2>        at 
org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:517)
  [beaster]   2>        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:384)
  [beaster]   2>        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:330)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
  [beaster]   2>        at 
org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:139)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
  [beaster]   2>        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
  [beaster]   2>        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
{code}

  was:
In *UpdateLog*, {{RecentUpdates}} reads the entry of tlogs, and throughout the 
project the entry indexes for various operations are consistent, but odd in 
this part. As we included new entry in TransactionLog for CDCR, read operations 
in {{update()}} method of {{RecentUpdates}} throw error rightfully as elements 
are read from wrong indexes of tlog entry. The entry indexes of llog should be 
consistent throughout.

{code}
  [beaster]   2> 27394 WARN  (qtp97093533-72) [n:127.0.0.1:44658_solr 
c:cdcr-cluster1 s:shard1 r:core_node3 x:cdcr-cluster1_shard1_replica_n1] 
o.a.s.u.UpdateLog Unexpected log entry or corrupt log.  Entry=[2, 
-1594312216007409664, [B@28e6859c, true]
  [beaster]   2> java.lang.ClassCastException: java.lang.Boolean cannot be cast 
to [B
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog$RecentUpdates.update(UpdateLog.java:1443)
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog$RecentUpdates.<init>(UpdateLog.java:1340)
  [beaster]   2>        at 
org.apache.solr.update.UpdateLog.getRecentUpdates(UpdateLog.java:1513)
  [beaster]   2>        at 
org.apache.solr.handler.CdcrRequestHandler.handleShardCheckpointAction(CdcrRequestHandler.java:448)
  [beaster]   2>        at 
org.apache.solr.handler.CdcrRequestHandler.handleRequestBody(CdcrRequestHandler.java:198)
  [beaster]   2>        at 
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:195)
  [beaster]   2>        at 
org.apache.solr.core.SolrCore.execute(SolrCore.java:2503)
  [beaster]   2>        at 
org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
  [beaster]   2>        at 
org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:517)
  [beaster]   2>        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:384)
  [beaster]   2>        at 
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:330)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
  [beaster]   2>        at 
org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:139)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
  [beaster]   2>        at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
  [beaster]   2>        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
  [beaster]   2>        at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
  [beaster]   2>        at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
{code}


> Fix tlog entry indexes in UpdateLog for CDCR to work smoothly.
> --------------------------------------------------------------
>
>                 Key: SOLR-12063
>                 URL: https://issues.apache.org/jira/browse/SOLR-12063
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: CDCR
>    Affects Versions: 7.2, 7.2.1
>            Reporter: Amrit Sarkar
>            Assignee: Varun Thacker
>            Priority: Major
>         Attachments: SOLR-12063.patch, SOLR-12063.patch, SOLR-12063.patch, 
> SOLR-12063.patch, SOLR-12063.patch, SOLR-12063.patch, 
> test-report-PeerSyncTest, test-report-TestStressRecovery
>
>
> CDCR implements it's own UpdateLog (CdcrUpdateLog) . We changed the encoding 
> format in SOLR-11003.
> PeerSync / LeaderElection code and CDCR checkpoint API call are unable to 
> read delete-by-id's and in-place updates if they are present in the 
> transaction log throwing a ClassCastException as a WARN
> Here's a stack trace for the WARN.
> {code}
>   [beaster]   2> 27394 WARN  (qtp97093533-72) [n:127.0.0.1:44658_solr 
> c:cdcr-cluster1 s:shard1 r:core_node3 x:cdcr-cluster1_shard1_replica_n1] 
> o.a.s.u.UpdateLog Unexpected log entry or corrupt log.  Entry=[2, 
> -1594312216007409664, [B@28e6859c, true]
>   [beaster]   2> java.lang.ClassCastException: java.lang.Boolean cannot be 
> cast to [B
>   [beaster]   2>      at 
> org.apache.solr.update.UpdateLog$RecentUpdates.update(UpdateLog.java:1443)
>   [beaster]   2>      at 
> org.apache.solr.update.UpdateLog$RecentUpdates.<init>(UpdateLog.java:1340)
>   [beaster]   2>      at 
> org.apache.solr.update.UpdateLog.getRecentUpdates(UpdateLog.java:1513)
>   [beaster]   2>      at 
> org.apache.solr.handler.CdcrRequestHandler.handleShardCheckpointAction(CdcrRequestHandler.java:448)
>   [beaster]   2>      at 
> org.apache.solr.handler.CdcrRequestHandler.handleRequestBody(CdcrRequestHandler.java:198)
>   [beaster]   2>      at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:195)
>   [beaster]   2>      at 
> org.apache.solr.core.SolrCore.execute(SolrCore.java:2503)
>   [beaster]   2>      at 
> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:711)
>   [beaster]   2>      at 
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:517)
>   [beaster]   2>      at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:384)
>   [beaster]   2>      at 
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:330)
>   [beaster]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
>   [beaster]   2>      at 
> org.apache.solr.client.solrj.embedded.JettySolrRunner$DebugFilter.doFilter(JettySolrRunner.java:139)
>   [beaster]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
>   [beaster]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
>   [beaster]   2>      at 
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>   [beaster]   2>      at 
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> {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