Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
jlewis-spotnana opened this issue Feb 7, 2024 · 1 comment

Comments

@jlewis-spotnana
Copy link

jlewis-spotnana commented Feb 7, 2024

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 jlewis-spotnana changed the title AttributeError - 'NoneType' object has no attribute 'is_up' cqlsh-expansion: AttributeError - 'NoneType' object has no attribute 'is_up' Feb 7, 2024
@jlewis-spotnana
Copy link
Author

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'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant