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

Ivan Sobolev updated CASSANDRA-4780:
------------------------------------

    Description: 
While trying to call getNaturalEndpoints(String,String,String) via jmx, 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



  was:
While trying to call getNaturalEndpoints(String,String,String) via jmx, 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



    
> 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, 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

Reply via email to