amazon-keyspaces-toolkit icon indicating copy to clipboard operation
amazon-keyspaces-toolkit copied to clipboard

cqlsh-expansion: AttributeError - 'NoneType' object has no attribute 'is_up'

Open jlewis-spotnana opened this issue 1 year ago • 2 comments

Describe the bug The COPY FROM command produces the following error on a csv file created with COPY TO.

<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts

To Reproduce Steps to reproduce the behavior:

  1. Install cqlsh-expansion as described here. https://docs.aws.amazon.com/keyspaces/latest/devguide/programmatic.cqlsh.html

  2. Dump data to csv

cqlsh-expansion cassandra.us-west-2.amazonaws.com 9142 --ssl -e "COPY keyspace1.table1 TO './dump.csv' WITH HEADER='true';"
  1. Create new keyspace/table, matching the source table
CREATE KEYSPACE IF NOT EXISTS "keyspace2"
  WITH REPLICATION = {'class':'SingleRegionStrategy'};

CREATE TABLE IF NOT EXISTS keyspace2.table2 (
    col1 text,
    col2 text,
    col3 text,
    created_at timestamp,
    my_data blob,
    PRIMARY KEY (col1, col2, col3)
) WITH CLUSTERING ORDER BY (col2 ASC, col3 ASC)
    AND bloom_filter_fp_chance = 0.01
    AND comment = ''
    AND crc_check_chance = 1.0
    AND dclocal_read_repair_chance = 0.0
    AND default_time_to_live = 0
    AND gc_grace_seconds = 7776000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 3600000
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99PERCENTILE';
  1. Import data
cqlsh-expansion cassandra.us-west-2.amazonaws.com 9142 --ssl -e "CONSISTENCY LOCAL_QUORUM; COPY keyspace2.table2 FROM './dump.csv' WITH HEADER='true';"
  1. Observe errors
Consistency level set to LOCAL_QUORUM.
cqlsh current consistency level is LOCAL_QUORUM.
Reading options from /home/ubuntu/.cassandra/cqlshrc:[copy]: {'numprocesses': '16', 'maxattempts': '1000'}
Reading options from /home/ubuntu/.cassandra/cqlshrc:[copy-from]: {'ingestrate': '1500', 'maxparseerrors': '1000', 'maxinserterrors': '-1', 'maxbatchsize': '10', 'minbatchsize': '1', 'chunksize': '30'}
Reading options from the command line: {'header': 'true'}
Using 16 child processes

Starting copy of keyspace2.table2 with columns [col1, col2, col3, created_at, my_data].
<stdin>:1:Failed to import 30 rows: Error - field larger than field limit (999999),  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: Error - field larger than field limit (999999),  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: Error - field larger than field limit (999999),  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts
<stdin>:1:Failed to import 30 rows: AttributeError - 'NoneType' object has no attribute 'is_up',  given up after 1 attempts
...
Processed: 14105 rows; Rate:     212 rows/s; Avg. rate:     185 rows/s
0 rows imported from 1 files in 0 day, 0 hour, 1 minutes, and 16.140 seconds (0 skipped).

Expected behavior I expect the import to complete successfully without errors.

Screenshots n/a

Environment (please complete the following information):

  • Host OS: Ubuntu 22.04
  • AWS Keyspaces
  • cqlsh-expansion: 6.1.0

Additional context I'm just trying to do a simple export/import.

(P.S. Appologies if this is the wrong repo to report 'cqlsh-expansion' bugs.)

jlewis-spotnana avatar Feb 07 '24 21:02 jlewis-spotnana

I ran cqlsh-expansion with --debug and found the following stack trace.

Starting copy of keyspace2.table2 with columns [col1, col2, col3, created_at, my_data].
Traceback (most recent call last):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/cqlshlib/copyutil.py", line 2457, in inner_run
    for replicas, batch in split_into_batches(chunk, conv, tm):
  File "/home/ubuntu/.local/lib/python3.10/site-packages/cqlshlib/copyutil.py", line 2632, in split_into_batches
    yield filter_replicas(replicas[ring_pos]), make_batch(chunk['id'], rows[i:i + max_batch_size])
  File "/home/ubuntu/.local/lib/python3.10/site-packages/cqlshlib/copyutil.py", line 2268, in filter_replicas
    return [r for r in shuffled if r.is_up is not False and r.datacenter == self.local_dc] if hosts else ()
  File "/home/ubuntu/.local/lib/python3.10/site-packages/cqlshlib/copyutil.py", line 2268, in <listcomp>
    return [r for r in shuffled if r.is_up is not False and r.datacenter == self.local_dc] if hosts else ()
AttributeError: 'NoneType' object has no attribute 'is_up'

jlewis-spotnana avatar Feb 08 '24 17:02 jlewis-spotnana

any solution to fix this issue?

fptelen07 avatar Jul 18 '24 04:07 fptelen07