You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (Updated) (JIRA)" <ji...@apache.org> on 2012/03/29 20:46:22 UTC

[jira] [Updated] (CASSANDRA-4095) Internal error processing get_slice (NullPointerException)

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

Jonathan Ellis updated CASSANDRA-4095:
--------------------------------------

    Attachment: 4095.txt

Thanks for the report, John.  I think your analysis is spot on.  Patch attached that does not assume row.cf is non-null.
                
> Internal error processing get_slice (NullPointerException)
> ----------------------------------------------------------
>
>                 Key: CASSANDRA-4095
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4095
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.8
>         Environment: Java(TM) SE Runtime Environment (build 1.6.0_30-b12)
>            Reporter: John Laban
>            Priority: Minor
>         Attachments: 4095.txt
>
>
> I get this pretty regularly.  It seems to happen transiently on multiple nodes in my cluster, every so often, and goes away.
> ERROR [Thrift:45] 2012-03-26 19:59:12,024 Cassandra.java (line 3041) Internal error processing get_slice
> java.lang.NullPointerException
>         at org.apache.cassandra.db.SliceFromReadCommand.maybeGenerateRetryCommand(SliceFromReadCommand.java:76)
>         at org.apache.cassandra.service.StorageProxy.fetchRows(StorageProxy.java:724)
>         at org.apache.cassandra.service.StorageProxy.read(StorageProxy.java:564)
>         at org.apache.cassandra.thrift.CassandraServer.readColumnFamily(CassandraServer.java:128)
>         at org.apache.cassandra.thrift.CassandraServer.getSlice(CassandraServer.java:283)
>         at org.apache.cassandra.thrift.CassandraServer.multigetSliceInternal(CassandraServer.java:365)
>         at org.apache.cassandra.thrift.CassandraServer.get_slice(CassandraServer.java:326)
>         at org.apache.cassandra.thrift.Cassandra$Processor$get_slice.process(Cassandra.java:3033)
>         at org.apache.cassandra.thrift.Cassandra$Processor.process(Cassandra.java:2889)
>         at org.apache.cassandra.thrift.CustomTThreadPoolServer$WorkerProcess.run(CustomTThreadPoolServer.java:187)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>         at java.lang.Thread.run(Thread.java:662)
> The line in question is (I think) the one below, so it looks like the column family reference for a row can sometimes be null?
>     int liveColumnsInRow = row != null ? row.cf.getLiveColumnCount() : 0;
> Here is my column family (on 1.0.8):
>     ColumnFamily: WorkQueue (Super)
>       Key Validation Class: org.apache.cassandra.db.marshal.UTF8Type
>       Default column value validator: org.apache.cassandra.db.marshal.UTF8Type
>       Columns sorted by: org.apache.cassandra.db.marshal.UTF8Type/org.apache.cassandra.db.marshal.UTF8Type
>       Row cache size / save period in seconds / keys to save : 0.0/0/all
>       Row Cache Provider: org.apache.cassandra.cache.ConcurrentLinkedHashCacheProvider
>       Key cache size / save period in seconds: 0.0/0
>       GC grace seconds: 0
>       Compaction min/max thresholds: 4/32
>       Read repair chance: 0.0
>       Replicate on write: false
>       Bloom Filter FP chance: default
>       Built indexes: []
>       Compaction Strategy: org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira