[ 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