cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joel Knighton (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-10413) Replaying materialized view updates from commitlog after node decommission crashes Cassandra
Date Wed, 07 Oct 2015 17:36:26 GMT


Joel Knighton commented on CASSANDRA-10413:


I've pushed a branch at [t10413|] that follows
Jake suggestions. Until a node has scheduled gossip, it will force a write through the batchlog
directly in MV.

A dtest run is available [here|].
I've checked against cassandra-3.0 dtest runs and there are no new failures; the PEP8 compliance
is fixed since the last rebase.

A testall run is available [here|].
 There are two unit test failures that I can't find on cassandra-3.0 jobs: org.apache.cassandra.cql3.validation.entitites.TypeTest.testNowToUUIDCompatibility
and org.apache.cassandra.cql3.validation.operations.SelectTest.testSingleClustering. They
both fail with a fairly cryptic "Forked Java VM exited abnormally" that suggests something
environmental. Both tests looped locally do not show failures.

Ready for a look whenever [~tjake].

> Replaying materialized view updates from commitlog after node decommission crashes Cassandra
> --------------------------------------------------------------------------------------------
>                 Key: CASSANDRA-10413
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Joel Knighton
>            Assignee: Joel Knighton
>            Priority: Critical
>             Fix For: 3.0.0 rc2
>         Attachments: n1.log, n2.log, n3.log, n4.log, n5.log
> This issue is reproducible through a Jepsen test, runnable as
> {code}
> lein with-profile +trunk test :only
> {code}
> This test crashes/restarts nodes while decommissioning nodes. These actions are not coordinated.
> In [10164|], we introduced a change
to re-apply materialized view updates on commitlog replay.
> Some nodes, upon restart, will crash in commitlog replay. They throw the "Trying to get
the view natural endpoint on a non-data replica" runtime exception in getViewNaturalEndpoint.
I added logging to getViewNaturalEndpoint to show the results of replicationStrategy.getNaturalEndpoints
for the baseToken and viewToken.
> It can be seen that these problems occur when the baseEndpoints and viewEndpoints are
identical but do not contain the broadcast address of the local node.
> For example, a node at crashes on replay of a write whose base token and view
token replicas are both [,,]. It seems we try to guard against this
by considering pendingEndpoints for the viewToken, but this does not appear to be sufficient.
> I've attached the system.logs for a test run with added logging. In the attached logs,
n1 is at, n2 is at, and so on. is the decommissioned node.

This message was sent by Atlassian JIRA

View raw message