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 <ts...@cloudian.com <mailto: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



Reply via email to