cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tyler Hobbs (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-9460) NullPointerException Creating Digest
Date Tue, 26 May 2015 17:11:18 GMT

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

Tyler Hobbs commented on CASSANDRA-9460:
----------------------------------------

Good work on investigating this! I think your guess is correct.  We definitely need to calculate
digests from the untrimmed data, so it seems like we will either need to ensure digest calculations
have finished before trimming responses.

Normally it would be easy to take a digest before returning results to the StorageProxy, because
we normally only issue one "data" request and always have to block for that.  However, with
speculative retries, we may have multiple data responses.  So, we should block until we have
a digest of the first data response (when CL > ONE), but not block for subsequent data
responses (which should not get returned to the SP, and thus should not get trimmed).

> NullPointerException Creating Digest
> ------------------------------------
>
>                 Key: CASSANDRA-9460
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9460
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Tyler Hobbs
>            Assignee: Stefania
>             Fix For: 2.1.x
>
>         Attachments: node2.log
>
>
> In the {{consistency_test.TestConsistency.short_read_test}} dtest against cassandra-2.1,
the following error occured:
> {noformat}
> ERROR [ReadRepairStage:3] 2015-05-22 16:35:25,034 CassandraDaemon.java:223 - Exception
in thread Thread[ReadRepairStage:3,5,main]
> java.lang.NullPointerException: null
>     at org.apache.cassandra.db.ColumnFamily.updateDigest(ColumnFamily.java:390) ~[main/:na]
>     at org.apache.cassandra.db.ColumnFamily.digest(ColumnFamily.java:383) ~[main/:na]
>     at org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:84)
~[main/:na]
>     at org.apache.cassandra.service.RowDigestResolver.resolve(RowDigestResolver.java:28)
~[main/:na]
>     at org.apache.cassandra.service.ReadCallback$AsyncRepairRunner.run(ReadCallback.java:176)
~[main/:na]
>     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
~[na:1.7.0_80]
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
~[na:1.7.0_80]
>     at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_80]
> {noformat}
> From a glance at the code in the stacktrace, it looks like there was a null cell in the
ColumnFamily that we were creating a digest of.  This error is probably particular to "short
reads".
> Here's the failing test: http://cassci.datastax.com/job/cassandra-2.1_dtest/lastCompletedBuild/testReport/consistency_test/TestConsistency/short_read_test/.
 I've attached the logs for the node with the error.
> We saw this issue against 2.1, but the problem may also exist with 2.0 and/or 2.2.



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

Mime
View raw message