[
https://issues.apache.org/jira/browse/CASSANDRA-19747?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Frank vissing updated CASSANDRA-19747:
--------------------------------------
Description:
After dropping at least 2 fields the schema.cql produced by _nodetool snapshot_
is invalid (it is missing a comma)
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text
field3 text
) WITH ID ...{code}
expected outcome
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text,
field3 text
) WITH ID ...{code}
reproducing the isue is simple by running the following commands
{code:sh}
docker run -d --name cassandra cassandra:4.1.5
echo "Wait for the container to start"
until docker exec -ti cassandra nodetool status | grep UN;do sleep 1;done;sleep
10
echo "Create keyspace and table for test"
docker exec -ti cassandra cqlsh -e "CREATE KEYSPACE IF NOT EXISTS test WITH
replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}; CREATE
TABLE IF NOT EXISTS test.testtable (field1 text PRIMARY KEY,field2 text,field3
text);"
echo "Drop 2 fields"
docker exec -ti cassandra cqlsh -e "ALTER TABLE test.testtable DROP (field2,
field3);"
echo "Create snapshot and view schema.cql"
docker exec -ti cassandra /opt/cassandra/bin/nodetool snapshot -t my_snapshot
docker exec -ti cassandra find /var/lib/cassandra/data -name schema.cql -exec
cat {} + {code}
the full output of the sql generated by the reproduce is below
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text
field3 text
) WITH ID = 0e9aa540-391f-11ef-945e-0be1221ff441
AND additional_write_policy = '99p'
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND cdc = false
AND comment = ''
AND compaction = {'class':
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '16', 'class':
'org.apache.cassandra.io.compress.LZ4Compressor'}
AND memtable = 'default'
AND crc_check_chance = 1.0
AND default_time_to_live = 0
AND extensions = {}
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair = 'BLOCKING'
AND speculative_retry = '99p';
{code}
Found this bug while trying to restore the schema from a backup created by
copying a snapshot from a running node.
was:
After dropping at least 2 fields the schema.cql produced by _nodetool snapshot_
is invalid (it is missing a comma)
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text
field3 text
) WITH ID ...{code}
expected outcome
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text,
field3 text
) WITH ID ...{code}
reproducing the isue is simple by running the following commands
{code:sh}
docker run -d --name cassandra cassandra:4.1.5
echo Wait for the container to start
until docker exec -ti cassandra nodetool status | grep UN;do sleep 1;done;sleep
10
echo create keyspace and table for test
docker exec -ti cassandra cqlsh -e "CREATE KEYSPACE IF NOT EXISTS test WITH
replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}; CREATE
TABLE IF NOT EXISTS test.testtable (field1 text PRIMARY KEY,field2 text,field3
text);"
echo Drop 2 fields
docker exec -ti cassandra cqlsh -e "ALTER TABLE test.testtable DROP (field2,
field3);"
echo create snapshot and view schema.cql
docker exec -ti cassandra /opt/cassandra/bin/nodetool snapshot -t my_snapshot
docker exec -ti cassandra find /var/lib/cassandra/data -name schema.cql -exec
cat {} + {code}
the full output of the sql generated by the reproduce is below
{code:sql}
CREATE TABLE IF NOT EXISTS test.testtable (
field1 text PRIMARY KEY,
field2 text
field3 text
) WITH ID = 0e9aa540-391f-11ef-945e-0be1221ff441
AND additional_write_policy = '99p'
AND bloom_filter_fp_chance = 0.01
AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
AND cdc = false
AND comment = ''
AND compaction = {'class':
'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
'max_threshold': '32', 'min_threshold': '4'}
AND compression = {'chunk_length_in_kb': '16', 'class':
'org.apache.cassandra.io.compress.LZ4Compressor'}
AND memtable = 'default'
AND crc_check_chance = 1.0
AND default_time_to_live = 0
AND extensions = {}
AND gc_grace_seconds = 864000
AND max_index_interval = 2048
AND memtable_flush_period_in_ms = 0
AND min_index_interval = 128
AND read_repair = 'BLOCKING'
AND speculative_retry = '99p';
{code}
Found this bug while trying to restore the schema from a backup created by
copying a snapshot from a running node.
> Invalid schema.cql created by snapshot after dropping more than one field
> -------------------------------------------------------------------------
>
> Key: CASSANDRA-19747
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19747
> Project: Cassandra
> Issue Type: Bug
> Reporter: Frank vissing
> Priority: Normal
>
> After dropping at least 2 fields the schema.cql produced by _nodetool
> snapshot_ is invalid (it is missing a comma)
> {code:sql}
> CREATE TABLE IF NOT EXISTS test.testtable (
> field1 text PRIMARY KEY,
> field2 text
> field3 text
> ) WITH ID ...{code}
> expected outcome
> {code:sql}
> CREATE TABLE IF NOT EXISTS test.testtable (
> field1 text PRIMARY KEY,
> field2 text,
> field3 text
> ) WITH ID ...{code}
> reproducing the isue is simple by running the following commands
> {code:sh}
> docker run -d --name cassandra cassandra:4.1.5
> echo "Wait for the container to start"
> until docker exec -ti cassandra nodetool status | grep UN;do sleep
> 1;done;sleep 10
> echo "Create keyspace and table for test"
> docker exec -ti cassandra cqlsh -e "CREATE KEYSPACE IF NOT EXISTS test WITH
> replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}; CREATE
> TABLE IF NOT EXISTS test.testtable (field1 text PRIMARY KEY,field2
> text,field3 text);"
> echo "Drop 2 fields"
> docker exec -ti cassandra cqlsh -e "ALTER TABLE test.testtable DROP (field2,
> field3);"
> echo "Create snapshot and view schema.cql"
> docker exec -ti cassandra /opt/cassandra/bin/nodetool snapshot -t my_snapshot
> docker exec -ti cassandra find /var/lib/cassandra/data -name schema.cql
> -exec cat {} + {code}
> the full output of the sql generated by the reproduce is below
> {code:sql}
> CREATE TABLE IF NOT EXISTS test.testtable (
> field1 text PRIMARY KEY,
> field2 text
> field3 text
> ) WITH ID = 0e9aa540-391f-11ef-945e-0be1221ff441
> AND additional_write_policy = '99p'
> AND bloom_filter_fp_chance = 0.01
> AND caching = {'keys': 'ALL', 'rows_per_partition': 'NONE'}
> AND cdc = false
> AND comment = ''
> AND compaction = {'class':
> 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy',
> 'max_threshold': '32', 'min_threshold': '4'}
> AND compression = {'chunk_length_in_kb': '16', 'class':
> 'org.apache.cassandra.io.compress.LZ4Compressor'}
> AND memtable = 'default'
> AND crc_check_chance = 1.0
> AND default_time_to_live = 0
> AND extensions = {}
> AND gc_grace_seconds = 864000
> AND max_index_interval = 2048
> AND memtable_flush_period_in_ms = 0
> AND min_index_interval = 128
> AND read_repair = 'BLOCKING'
> AND speculative_retry = '99p';
> {code}
> Found this bug while trying to restore the schema from a backup created by
> copying a snapshot from a running node.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]