cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Brandon Williams (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (CASSANDRA-4780) Not informative error reporting when calling getNaturalEndpoints for a CF without key_validation_class
Date Tue, 09 Oct 2012 14:17:03 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-4780?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Brandon Williams resolved CASSANDRA-4780.
-----------------------------------------

    Resolution: Not A Problem

The RMI error isn't really something we can fix, and the second (actual) error should have
been the clue that you needed to convert your key to hex, since by default it would be BytesType.
 You'd get the same error trying to insert/get in any thrift client that didn't handle the
marshaling for you.
                
> Not informative error reporting when calling getNaturalEndpoints for a CF without key_validation_class
> ------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-4780
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-4780
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.1.5
>            Reporter: Ivan Sobolev
>            Priority: Minor
>
> While trying to call getNaturalEndpoints(String,String,String) via jmx(jconsole), got
the following:
> {code}Problem invoking getNaturalEndpoints: java.rmi.UnmarshalException: Error unmarshaling
return; 
> nested exception is: java.lang.ClassNotFoundException: org.apache.cassandra.db.marshal.MarshalException
(no security manager: RMI class loader disabled){code}
> Googling suggested to try out different classpath mysteries[1]
> Doing that from the nodetool was a bit more informative though:
> {code}Exception in thread "main" org.apache.cassandra.db.marshal.MarshalException: cannot
parse '28589689-0bf0-9ebf-e405-d8f1d798cd7d' as hex bytes
>         at org.apache.cassandra.db.marshal.BytesType.fromString(BytesType.java:74)
>         at org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:2131)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)
>         at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)
>         at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)
>         at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)
>         at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)
>         at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
>         at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
>         at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)
>         at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
>         at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
>         at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
>         at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)
>         at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>         at java.lang.reflect.Method.invoke(Method.java:597)
>         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:303)
>         at sun.rmi.transport.Transport$1.run(Transport.java:159)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
>         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
>         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
>         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
>         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.lang.NumberFormatException: Non-hex characters in 28589689-0bf0-9ebf-e405-d8f1d798cd7d
>         at org.apache.cassandra.utils.Hex.hexToBytes(Hex.java:60)
>         at org.apache.cassandra.db.marshal.BytesType.fromString(BytesType.java:70)
> {code}
> The missing bit:
> {code}
> update column family xxx with key_validation_class=UTF8Type;{code}
> Goals of the ticket:
> * Ensure that message from exception will properly pop up to the JMX client
> * Guys googling the same problem will have a direction
> ___________________________________________________________
> [1] forum.springsource.org/showthread.php?25937-RMI-class-loader-disabled

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message