cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Erik Onnen (JIRA)" <>
Subject [jira] Commented: (CASSANDRA-1377) NPE aborts streaming operations for keyspaces with hyphens ('-') in their names
Date Mon, 23 Aug 2010 21:50:21 GMT


Erik Onnen commented on CASSANDRA-1377:

We have a multi-tenant deployment hosting multiple customers, each with multiple deployments
of our upstream software (think test/prod). For each customer deployment, we've had a UUID
identifying the instance since before the dawn of time, or at least since before Cassandra

Up until this change, using a keyspace-UUID mapping worked perfectly, especially after set_keyspace
was added to the lower-level client API which allowed us to have pools for a given customer
with different customers able to have different throughput to a point.

In hopes of getting this relaxed just a bit to allow "-", I've attached a fix for the bug
in 0.6.0 tested with a keyspace name of "e610eed7-c6be-449b-ad2c-562f35d75528" which is a
Type4 UUID. If you can broaden the limit here just a bit, we'll be good. I don't think it's
all that unrealistic that users will want to have a keyspace correspond to real artifacts
in their system (although I don't feel the same about CF names). This would at least broaden
things just enough to allow UUIDs at that level.

While I understand the need to limit what goes into the name of the keyspace and why, it's
too restrictive for my needs and I'll argue against it at least and try and patch my way out
of it as long as you'll listen.

Happy to do the same for 0.7.0 if you're receptive.

> NPE aborts streaming operations for keyspaces with hyphens ('-') in their names
> -------------------------------------------------------------------------------
>                 Key: CASSANDRA-1377
>                 URL:
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6.3
>            Reporter: Ben Hoyt
>            Assignee: Gary Dusbabek
>             Fix For: 0.6.5, 0.7 beta 2
>         Attachments: 1377-0.6.txt, v1-0001-disallow-invalid-ks-cf-names.txt
> When streaming starts for operations such as repair or bootstrap, it will fail due to
an NPE if they rows are in a keyspace that has a hyphen in its name.  One workaround for this
issue would be to not use keyspace names containing hyphens.  It would be even nicer if streaming
worked for keyspace names with hyphens, since keyspaces named like that seem to be fine in
all other ways.
> To reproduce:
>  1. With a multi-node ring, load up a keyspace with a hyphen in its name
>  2. Add some data to that keyspace
>  3. nodetool repair
> Expected results:
> Repair operations complete normally
> Actual results:
> Repair operations don't complete normally.  The stacktrace below is correlated with the
repair request.  
>  INFO [AE-SERVICE-STAGE:1] 2010-06-30 14:11:29,744 (line 619)
Performing streaming repair of 1 ranges to / for (my-keyspace,AColumnFamily)
> ERROR [MESSAGE-DESERIALIZER-POOL:1] 2010-06-30 14:11:30,034
(line 101) Error in ThreadPoolExecutor
> java.lang.NullPointerException
>         at org.apache.cassandra.streaming.StreamInitiateVerbHandler.getNewNames(
>         at org.apache.cassandra.streaming.StreamInitiateVerbHandler.doVerb(
>         at
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
>         at java.util.concurrent.ThreadPoolExecutor$
>         at

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message