[
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: [email protected]
For additional commands, e-mail: [email protected]