You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Takenori Sato <ts...@cloudian.com> on 2013/08/23 09:21:05 UTC

OrderPreservingPartitioner in 1.2

Hi,

I know it has been depreciated, but OrderPreservingPartitioner still works
with 1.2?

Just wanted to know how it works, but I got a couple of exceptions as below:

ERROR [GossipStage:2] 2013-08-23 07:03:57,171 CassandraDaemon.java (line
175) Exception in thread Thread[GossipStage:2,5,main]
java.lang.RuntimeException: The provided key was not UTF8 encoded.
at
org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:233)
at
org.apache.cassandra.dht.OrderPreservingPartitioner.decorateKey(OrderPreservingPartitioner.java:53)
at org.apache.cassandra.db.Table.apply(Table.java:379)
at org.apache.cassandra.db.Table.apply(Table.java:353)
at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:258)
at
org.apache.cassandra.cql3.statements.ModificationStatement.executeInternal(ModificationStatement.java:117)
at
org.apache.cassandra.cql3.QueryProcessor.processInternal(QueryProcessor.java:172)
at org.apache.cassandra.db.SystemTable.updatePeerInfo(SystemTable.java:258)
at
org.apache.cassandra.service.StorageService.onChange(StorageService.java:1228)
at org.apache.cassandra.gms.Gossiper.doNotifications(Gossiper.java:935)
at org.apache.cassandra.gms.Gossiper.applyNewStates(Gossiper.java:926)
at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:884)
at
org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:57)
at
org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.nio.charset.MalformedInputException: Input length = 1
at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:781)
at org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:167)
at org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:124)
at
org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:229)
... 16 more

The key was "0ab68145" in HEX, that contains some control characters.

Another exception is this:

 INFO [main] 2013-08-23 07:04:27,659 StorageService.java (line 891)
JOINING: Starting to bootstrap...
DEBUG [main] 2013-08-23 07:04:27,659 BootStrapper.java (line 73) Beginning
bootstrap process
ERROR [main] 2013-08-23 07:04:27,666 CassandraDaemon.java (line 430)
Exception encountered during startup
java.lang.IllegalStateException: No sources found for (H,H]
at
org.apache.cassandra.dht.RangeStreamer.getAllRangesWithSourcesFor(RangeStreamer.java:163)
at org.apache.cassandra.dht.RangeStreamer.addRanges(RangeStreamer.java:121)
at org.apache.cassandra.dht.BootStrapper.bootstrap(BootStrapper.java:81)
at
org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:924)
at
org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:693)
at
org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
at
org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
at
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
at
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
at
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
ERROR [StorageServiceShutdownHook] 2013-08-23 07:04:27,672
CassandraDaemon.java (line 175) Exception in thread
Thread[StorageServiceShutdownHook,5,main]
java.lang.NullPointerException
at
org.apache.cassandra.service.StorageService.stopRPCServer(StorageService.java:321)
at
org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:362)
at
org.apache.cassandra.service.StorageService.access$000(StorageService.java:88)
at
org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:513)
at org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
at java.lang.Thread.run(Thread.java:662)

I tried to setup 3 nodes cluster with tokens, A, H, P for each. This error
was raised by the second node with the token, H.

Thanks,
Takenori

Re: OrderPreservingPartitioner in 1.2

Posted by "Takenori Sato(Cloudian)" <ts...@cloudian.com>.
 From the Jira,

 > One possibility is that getToken of OPP can return hex value if it 
fails to encode bytes to UTF-8 instead of throwing error. By this system 
tables seem to be working fine with OPP.

This looks like an option to try for me.

Thanks!

(2013/08/23 20:44), Vara Kumar wrote:
> For the first exception: OPP was not working in 1.2. It has been fixed 
> but not yet there in latest 1.2.8 version.
>
> Jira issue about it: https://issues.apache.org/jira/browse/CASSANDRA-5793
>
>
> On Fri, Aug 23, 2013 at 12:51 PM, Takenori Sato <tsato@cloudian.com 
> <ma...@cloudian.com>> wrote:
>
>     Hi,
>
>     I know it has been depreciated, but OrderPreservingPartitioner
>     still works with 1.2?
>
>     Just wanted to know how it works, but I got a couple of exceptions
>     as below:
>
>     ERROR [GossipStage:2] 2013-08-23 07:03:57,171 CassandraDaemon.java
>     (line 175) Exception in thread Thread[GossipStage:2,5,main]
>     java.lang.RuntimeException: The provided key was not UTF8 encoded.
>     at
>     org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:233)
>     at
>     org.apache.cassandra.dht.OrderPreservingPartitioner.decorateKey(OrderPreservingPartitioner.java:53)
>     at org.apache.cassandra.db.Table.apply(Table.java:379)
>     at org.apache.cassandra.db.Table.apply(Table.java:353)
>     at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:258)
>     at
>     org.apache.cassandra.cql3.statements.ModificationStatement.executeInternal(ModificationStatement.java:117)
>     at
>     org.apache.cassandra.cql3.QueryProcessor.processInternal(QueryProcessor.java:172)
>     at
>     org.apache.cassandra.db.SystemTable.updatePeerInfo(SystemTable.java:258)
>     at
>     org.apache.cassandra.service.StorageService.onChange(StorageService.java:1228)
>     at
>     org.apache.cassandra.gms.Gossiper.doNotifications(Gossiper.java:935)
>     at org.apache.cassandra.gms.Gossiper.applyNewStates(Gossiper.java:926)
>     at
>     org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:884)
>     at
>     org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:57)
>     at
>     org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
>     at
>     java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>     at
>     java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>     at java.lang.Thread.run(Thread.java:662)
>     Caused by: java.nio.charset.MalformedInputException: Input length = 1
>     at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
>     at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:781)
>     at
>     org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:167)
>     at
>     org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:124)
>     at
>     org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:229)
>     ... 16 more
>
>     The key was "0ab68145" in HEX, that contains some control characters.
>
>     Another exception is this:
>
>      INFO [main] 2013-08-23 07:04:27,659 StorageService.java (line
>     891) JOINING: Starting to bootstrap...
>     DEBUG [main] 2013-08-23 07:04:27,659 BootStrapper.java (line 73)
>     Beginning bootstrap process
>     ERROR [main] 2013-08-23 07:04:27,666 CassandraDaemon.java (line
>     430) Exception encountered during startup
>     java.lang.IllegalStateException: No sources found for (H,H]
>     at
>     org.apache.cassandra.dht.RangeStreamer.getAllRangesWithSourcesFor(RangeStreamer.java:163)
>     at
>     org.apache.cassandra.dht.RangeStreamer.addRanges(RangeStreamer.java:121)
>     at
>     org.apache.cassandra.dht.BootStrapper.bootstrap(BootStrapper.java:81)
>     at
>     org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:924)
>     at
>     org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:693)
>     at
>     org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
>     at
>     org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
>     at
>     org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
>     at
>     org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
>     at
>     org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
>     ERROR [StorageServiceShutdownHook] 2013-08-23 07:04:27,672
>     CassandraDaemon.java (line 175) Exception in thread
>     Thread[StorageServiceShutdownHook,5,main]
>     java.lang.NullPointerException
>     at
>     org.apache.cassandra.service.StorageService.stopRPCServer(StorageService.java:321)
>     at
>     org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:362)
>     at
>     org.apache.cassandra.service.StorageService.access$000(StorageService.java:88)
>     at
>     org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:513)
>     at
>     org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
>     at java.lang.Thread.run(Thread.java:662)
>
>     I tried to setup 3 nodes cluster with tokens, A, H, P for each.
>     This error was raised by the second node with the token, H.
>
>     Thanks,
>     Takenori
>
>


Re: OrderPreservingPartitioner in 1.2

Posted by Vara Kumar <va...@gmail.com>.
For the first exception: OPP was not working in 1.2. It has been fixed but
not yet there in latest 1.2.8 version.

Jira issue about it: https://issues.apache.org/jira/browse/CASSANDRA-5793


On Fri, Aug 23, 2013 at 12:51 PM, Takenori Sato <ts...@cloudian.com> wrote:

> Hi,
>
> I know it has been depreciated, but OrderPreservingPartitioner still works
> with 1.2?
>
> Just wanted to know how it works, but I got a couple of exceptions as
> below:
>
> ERROR [GossipStage:2] 2013-08-23 07:03:57,171 CassandraDaemon.java (line
> 175) Exception in thread Thread[GossipStage:2,5,main]
> java.lang.RuntimeException: The provided key was not UTF8 encoded.
>  at
> org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:233)
> at
> org.apache.cassandra.dht.OrderPreservingPartitioner.decorateKey(OrderPreservingPartitioner.java:53)
>  at org.apache.cassandra.db.Table.apply(Table.java:379)
> at org.apache.cassandra.db.Table.apply(Table.java:353)
>  at org.apache.cassandra.db.RowMutation.apply(RowMutation.java:258)
> at
> org.apache.cassandra.cql3.statements.ModificationStatement.executeInternal(ModificationStatement.java:117)
>  at
> org.apache.cassandra.cql3.QueryProcessor.processInternal(QueryProcessor.java:172)
> at org.apache.cassandra.db.SystemTable.updatePeerInfo(SystemTable.java:258)
>  at
> org.apache.cassandra.service.StorageService.onChange(StorageService.java:1228)
> at org.apache.cassandra.gms.Gossiper.doNotifications(Gossiper.java:935)
>  at org.apache.cassandra.gms.Gossiper.applyNewStates(Gossiper.java:926)
> at org.apache.cassandra.gms.Gossiper.applyStateLocally(Gossiper.java:884)
>  at
> org.apache.cassandra.gms.GossipDigestAckVerbHandler.doVerb(GossipDigestAckVerbHandler.java:57)
> at
> org.apache.cassandra.net.MessageDeliveryTask.run(MessageDeliveryTask.java:56)
>  at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>  at java.lang.Thread.run(Thread.java:662)
> Caused by: java.nio.charset.MalformedInputException: Input length = 1
> at java.nio.charset.CoderResult.throwException(CoderResult.java:260)
>  at java.nio.charset.CharsetDecoder.decode(CharsetDecoder.java:781)
> at
> org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:167)
>  at
> org.apache.cassandra.utils.ByteBufferUtil.string(ByteBufferUtil.java:124)
> at
> org.apache.cassandra.dht.OrderPreservingPartitioner.getToken(OrderPreservingPartitioner.java:229)
>  ... 16 more
>
> The key was "0ab68145" in HEX, that contains some control characters.
>
> Another exception is this:
>
>  INFO [main] 2013-08-23 07:04:27,659 StorageService.java (line 891)
> JOINING: Starting to bootstrap...
> DEBUG [main] 2013-08-23 07:04:27,659 BootStrapper.java (line 73) Beginning
> bootstrap process
> ERROR [main] 2013-08-23 07:04:27,666 CassandraDaemon.java (line 430)
> Exception encountered during startup
> java.lang.IllegalStateException: No sources found for (H,H]
> at
> org.apache.cassandra.dht.RangeStreamer.getAllRangesWithSourcesFor(RangeStreamer.java:163)
>  at
> org.apache.cassandra.dht.RangeStreamer.addRanges(RangeStreamer.java:121)
> at org.apache.cassandra.dht.BootStrapper.bootstrap(BootStrapper.java:81)
>  at
> org.apache.cassandra.service.StorageService.bootstrap(StorageService.java:924)
> at
> org.apache.cassandra.service.StorageService.joinTokenRing(StorageService.java:693)
>  at
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:548)
> at
> org.apache.cassandra.service.StorageService.initServer(StorageService.java:445)
>  at
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:325)
> at
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:413)
>  at
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:456)
> ERROR [StorageServiceShutdownHook] 2013-08-23 07:04:27,672
> CassandraDaemon.java (line 175) Exception in thread
> Thread[StorageServiceShutdownHook,5,main]
> java.lang.NullPointerException
> at
> org.apache.cassandra.service.StorageService.stopRPCServer(StorageService.java:321)
> at
> org.apache.cassandra.service.StorageService.shutdownClientServers(StorageService.java:362)
>  at
> org.apache.cassandra.service.StorageService.access$000(StorageService.java:88)
> at
> org.apache.cassandra.service.StorageService$1.runMayThrow(StorageService.java:513)
>  at
> org.apache.cassandra.utils.WrappedRunnable.run(WrappedRunnable.java:28)
> at java.lang.Thread.run(Thread.java:662)
>
> I tried to setup 3 nodes cluster with tokens, A, H, P for each. This error
> was raised by the second node with the token, H.
>
> Thanks,
> Takenori
>