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

Klay updated CASSANDRA-19639:
-----------------------------
    Description: 
After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
would fail with the following exception.
{code:java}
ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-8,10,main]
java.lang.RuntimeException: java.lang.NullPointerException
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NullPointerException: null
        at org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
        at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
        at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
        at 
org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
        at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
        at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
        at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
        at 
org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
        at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
        ... 5 common frames omitted {code}
h1. Reproduce

1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
cassandra.yaml to 1.
{code:java}
// cassandra.yaml
column_index_size_in_kb: 1 {code}
2. Execute the following commands
{code:java}
CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c0 TEXT,W_Col set<INT>,c2 INT,c3 INT,c4 
INT,c5 set<TEXT>, PRIMARY KEY (c3, c2, c0, c4));
DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 2;
INSERT INTO ks.tb (c5, W_Col, c0, c4, c3, c2) VALUES 
({'nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'},{0,1,2,3,4},'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',1320973978,2,2);
DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 1584505374 AND c0 = 'z';
ALTER TABLE ks.tb DROP W_Col ; {code}
3. Drain 2.2.19.
{code:java}
bin/nodetool -h ::FFFF:127.0.0.1 drain
bin/nodetool -h ::FFFF:127.0.0.1 stopdaemon;  {code}
4. Start up 3.0.30 (with default config is enough) and execute the following 
read command
{code:java}
cqlsh> SELECT *  FROM ks.tb WHERE c3 = 2 AND c2 = 100;
ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] 
message="Operation failed - received 0 responses and 1 failures" 
info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 
'consistency': 'ONE'}{code}
NPE Error in the log file
{code:java}
ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-8,10,main]
java.lang.RuntimeException: java.lang.NullPointerException
    at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
    at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
    at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NullPointerException: null
    at org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
    at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
    at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
    at 
org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
    at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
    at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
    at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
    at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
    at org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
    at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
    at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
    ... 5 common frames omitted {code}
 

I attached (1) the log file and (2) a data file (start up 3.0.30 with this 
folder and execute the read command can directly reproduce it).

  was:
After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
would fail with the following exception.
{code:java}
ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-8,10,main]
java.lang.RuntimeException: java.lang.NullPointerException
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
        at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
        at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
        at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NullPointerException: null
        at org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
        at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
        at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
        at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
        at 
org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
        at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
        at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
        at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
        at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
        at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
        at 
org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
        at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
        at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
        ... 5 common frames omitted {code}
h1. Reproduce

1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
cassandra.yaml to 1.
{code:java}
// cassandra.yaml
column_index_size_in_kb: 1 {code}
2. Execute the following commands

 
{code:java}
CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
'replication_factor' : 1 };
CREATE TABLE IF NOT EXISTS ks.tb (c0 TEXT,W_Col set<INT>,c2 INT,c3 INT,c4 
INT,c5 set<TEXT>, PRIMARY KEY (c3, c2, c0, c4));
DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 2;
INSERT INTO ks.tb (c5, W_Col, c0, c4, c3, c2) VALUES 
({'nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'},{0,1,2,3,4},'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',1320973978,2,2);
DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 1584505374 AND c0 = 'z';
ALTER TABLE ks.tb DROP W_Col ; {code}
3. Drain 2.2.19.

 

 
{code:java}
bin/nodetool -h ::FFFF:127.0.0.1 drain
bin/nodetool -h ::FFFF:127.0.0.1 stopdaemon;  {code}
 

4. Start up 3.0.30 (with default config is enough) and execute the following 
read command

 
{code:java}
cqlsh> SELECT *  FROM ks.tb WHERE c3 = 2 AND c2 = 100;
ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] 
message="Operation failed - received 0 responses and 1 failures" 
info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 
'consistency': 'ONE'}{code}
NPE Error in the log file
{code:java}
ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
Thread[SharedPool-Worker-8,10,main]
java.lang.RuntimeException: java.lang.NullPointerException
    at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
    at 
org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
    at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
    at java.lang.Thread.run(Thread.java:750)
Caused by: java.lang.NullPointerException: null
    at org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
    at 
org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
    at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
    at 
org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
    at 
org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
    at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
    at 
org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
    at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
    at 
org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
    at 
org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
    at org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
    at 
org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
    at 
org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
    ... 5 common frames omitted {code}
 
I attached (1) the log file and (2) a data file (start up 3.0.30 with this 
folder and execute the read command can directly reproduce it).


> Read fail with NullPointerException after migrating data from 2.2.19 to 3.0.30
> ------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-19639
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-19639
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Legacy/Local Write-Read Paths
>            Reporter: Klay
>            Priority: Normal
>         Attachments: data.tar.gz, system.log
>
>
> After migrating data from 2.2.19 to 3.0.30, reading the legacy data in 3.0.30 
> would fail with the following exception.
> {code:java}
> ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
> AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
> Thread[SharedPool-Worker-8,10,main]
> java.lang.RuntimeException: java.lang.NullPointerException
>         at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
>         at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>         at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>         at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
>         at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
>         at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.NullPointerException: null
>         at 
> org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
>         at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
>         at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
>         at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
>         at 
> org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
>         at 
> org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
>         at 
> org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
>         at 
> org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
>         at 
> org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
>         at 
> org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
>         at 
> org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
>         at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
>         at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
>         at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
>         at 
> org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
>         at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
>         at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
>         ... 5 common frames omitted {code}
> h1. Reproduce
> 1. Start up cassandra-2.2.19, single node. Set column_index_size_in_kb in 
> cassandra.yaml to 1.
> {code:java}
> // cassandra.yaml
> column_index_size_in_kb: 1 {code}
> 2. Execute the following commands
> {code:java}
> CREATE KEYSPACE ks WITH REPLICATION = { 'class' : 'SimpleStrategy', 
> 'replication_factor' : 1 };
> CREATE TABLE IF NOT EXISTS ks.tb (c0 TEXT,W_Col set<INT>,c2 INT,c3 INT,c4 
> INT,c5 set<TEXT>, PRIMARY KEY (c3, c2, c0, c4));
> DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 2;
> INSERT INTO ks.tb (c5, W_Col, c0, c4, c3, c2) VALUES 
> ({'nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA','AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'},{0,1,2,3,4},'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA',1320973978,2,2);
> DELETE FROM ks.tb WHERE c3 = 2 AND c2 = 1584505374 AND c0 = 'z';
> ALTER TABLE ks.tb DROP W_Col ; {code}
> 3. Drain 2.2.19.
> {code:java}
> bin/nodetool -h ::FFFF:127.0.0.1 drain
> bin/nodetool -h ::FFFF:127.0.0.1 stopdaemon;  {code}
> 4. Start up 3.0.30 (with default config is enough) and execute the following 
> read command
> {code:java}
> cqlsh> SELECT *  FROM ks.tb WHERE c3 = 2 AND c2 = 100;
> ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] 
> message="Operation failed - received 0 responses and 1 failures" 
> info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 
> 'consistency': 'ONE'}{code}
> NPE Error in the log file
> {code:java}
> ERROR [SharedPool-Worker-8] 2024-05-16 22:01:55,742 
> AbstractLocalAwareExecutorService.java:166 - Uncaught exception on thread 
> Thread[SharedPool-Worker-8,10,main]
> java.lang.RuntimeException: java.lang.NullPointerException
>     at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2656)
>     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>     at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$FutureTask.run(AbstractLocalAwareExecutorService.java:162)
>     at 
> org.apache.cassandra.concurrent.AbstractLocalAwareExecutorService$LocalSessionFutureTask.run(AbstractLocalAwareExecutorService.java:134)
>     at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:109)
>     at java.lang.Thread.run(Thread.java:750)
> Caused by: java.lang.NullPointerException: null
>     at org.apache.cassandra.db.Slice$Bound.exclusiveStartOf(Slice.java:386)
>     at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.readRow(UnfilteredDeserializer.java:570)
>     at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer$UnfilteredIterator.hasNext(UnfilteredDeserializer.java:503)
>     at 
> org.apache.cassandra.db.UnfilteredDeserializer$OldFormatDeserializer.hasNext(UnfilteredDeserializer.java:329)
>     at 
> org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.handlePreSliceData(SSTableIterator.java:105)
>     at 
> org.apache.cassandra.db.columniterator.SSTableIterator$ForwardReader.hasNextInternal(SSTableIterator.java:164)
>     at 
> org.apache.cassandra.db.columniterator.AbstractSSTableIterator$Reader.hasNext(AbstractSSTableIterator.java:336)
>     at 
> org.apache.cassandra.db.Slices$ArrayBackedSlices$1.prepareNext(Slices.java:506)
>     at 
> org.apache.cassandra.db.Slices$ArrayBackedSlices$1.hasNext(Slices.java:474)
>     at org.apache.cassandra.db.transform.BaseRows.hasNext(BaseRows.java:129)
>     at 
> org.apache.cassandra.db.transform.UnfilteredRows.isEmpty(UnfilteredRows.java:71)
>     at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDiskInternal(SinglePartitionReadCommand.java:799)
>     at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryMemtableAndDisk(SinglePartitionReadCommand.java:654)
>     at 
> org.apache.cassandra.db.SinglePartitionReadCommand.queryStorage(SinglePartitionReadCommand.java:489)
>     at 
> org.apache.cassandra.db.ReadCommand.executeLocally(ReadCommand.java:417)
>     at 
> org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1912)
>     at 
> org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2652)
>     ... 5 common frames omitted {code}
>  
> I attached (1) the log file and (2) a data file (start up 3.0.30 with this 
> folder and execute the read command can directly reproduce it).



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to