Details
-
Bug
-
Status: Resolved
-
High
-
Resolution: Fixed
-
Degradation - Performance Bug/Regression
-
Normal
-
Low Hanging Fruit
-
Adhoc Test
-
Description
Due to a bug I haven't been able to reproduce the production cluster had unknown column names. To replicate the issue for this test I did the following:
$ ccm create -v 2.1.19 -n 1 -s bug $ cat > schema.cql << 'EOF' CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true; CREATE TABLE test.unknowntest (id int primary key, payload text, "paylo!d" text); EOF $ ccm node1 cqlsh -f schema.cql $ export CASSANDRA_INCLUDE=~/.ccm/bug/node1/bin/cassandra.in.sh $ cat > bug.json << 'EOF' [ {"key": "1", "cells": [["","",1554432501209207], ["paylo!d","hello world",1554432501209207], ["payload","hello world",1554432501209207]]} ] EOF $ ~/.ccm/repository/2.1.19/tools/bin/json2sstable -K test -c unknowntest ~/bug.json ~/.ccm/bug/node1/data0/test/unknowntest-<cfid>/test-unknowntest-ka-1-Data.db
Then test the behavior of unknown columns in 2.1:
$ ccm stop $ ccm create -v 2.1.19 -n 1 -s bug2_1_19 $ cat > schema2.cql << 'EOF' CREATE KEYSPACE test WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'} AND durable_writes = true; CREATE TABLE test.unknowntest (id int primary key, payload text); EOF $ ccm node1 cqlsh -f schema2.cql $ ccm stop $ cp ~/.ccm/bug/node1/data0/test/unknowntest-<cfid>/test-unknowntest-ka-1-* ~/.ccm/bug2_1_19/node1/data0/test/unknowntest-<cfid>/ $ ccm start $ ccm node1 cqlsh Connected to bug2_1_19 at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 2.1.19 | CQL spec 3.2.1 | Native protocol v3] Use HELP for help. cqlsh> select * from test.unknowntest where id = 1; id | payload ----+------------- 1 | hello world (1 rows)
Compared to 3.11.4 which did the following:
$ ccm stop $ ccm create -v 3.11.4 -n 1 -s bug3_11_4 $ ccm node1 cqlsh -f schema2.cql $ ccm stop $ cp ~/.ccm/bug/node1/data0/test/unknowntest-<cfid>/test-unknowntest-ka-1-* ~/.ccm/bug3_11_4/node1/data0/test/unknowntest-<cfid>/ $ ccm start $ ccm node1 cqlsh Connected to bug3_11_4 at 127.0.0.1:9042. [cqlsh 5.0.1 | Cassandra 3.11.4 | CQL spec 3.4.4 | Native protocol v4] Use HELP for help. cqlsh> select * from test.unknowntest where id = 1; 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'}
In the logs this resulted in an IllegalStateException from LegacyLayout line 1127
The expected behavior would be to ignore the column and return results the same as in 2.1
Attachments
Attachments
Issue Links
- relates to
-
CASSANDRA-13939 Mishandling of cells for removed/dropped columns when reading legacy files
- Resolved
-
CASSANDRA-11018 Drop column in results in corrupted table or tables state (reversible)
- Resolved
- links to