Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 26D6D17F27 for ; Wed, 18 Mar 2015 20:31:40 +0000 (UTC) Received: (qmail 96706 invoked by uid 500); 18 Mar 2015 20:31:39 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 96622 invoked by uid 500); 18 Mar 2015 20:31:39 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 96600 invoked by uid 99); 18 Mar 2015 20:31:39 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Mar 2015 20:31:39 +0000 Date: Wed, 18 Mar 2015 20:31:39 +0000 (UTC) From: "Philip Thompson (JIRA)" To: commits@cassandra.apache.org Message-ID: In-Reply-To: References: Subject: [jira] [Updated] (CASSANDRA-6458) nodetool getendpoints doesn't validate key arity MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CASSANDRA-6458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Philip Thompson updated CASSANDRA-6458: --------------------------------------- Attachment: 6458.txt 6458-2.1.txt Fix Version/s: 2.1.4 3.0 Assignee: Philip Thompson > nodetool getendpoints doesn't validate key arity > ------------------------------------------------- > > Key: CASSANDRA-6458 > URL: https://issues.apache.org/jira/browse/CASSANDRA-6458 > Project: Cassandra > Issue Type: Bug > Components: Tools > Reporter: Daneel Yaitskov > Assignee: Philip Thompson > Priority: Trivial > Labels: lhf > Fix For: 3.0, 2.1.4 > > Attachments: 6458-2.1.txt, 6458.txt > > > I have a complex row key. > $ create table b (x int, s text, ((x,s)) primary key); > In cqlsh I cannot fill row key partially: > {noformat} > $ insert into b (x) values(4); > Bad Request: Missing mandatory PRIMARY KEY part s > {noformat} > But nodetool can find hosts by incomplete key > {noformat} > $ nodetool -h cas3 getendpoints anti_portal b 12 > 192.168.4.4 > 192.168.4.5 > 192.168.4.6 > {noformat} > No error is reported. > I found that columns are separated by ":". > And If I pass to many elements then the error happens. > {noformat} > $ nodetool -h cas3 getendpoints anit_portal b 12:dd:dd > Exception in thread "main" org.apache.cassandra.serializers.MarshalException: unable to make int from '12:dd:dd' > at org.apache.cassandra.db.marshal.Int32Type.fromString(Int32Type.java:69) > at org.apache.cassandra.service.StorageService.getNaturalEndpoints(StorageService.java:2495) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:75) > at sun.reflect.GeneratedMethodAccessor7.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:279) > at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112) > at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46) > at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) > at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) > at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) > at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1487) > at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) > at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) > at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) > at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:848) > at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source) > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) > at sun.rmi.transport.Transport$1.run(Transport.java:177) > at sun.rmi.transport.Transport$1.run(Transport.java:174) > at java.security.AccessController.doPrivileged(Native Method) > at sun.rmi.transport.Transport.serviceCall(Transport.java:173) > at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) > at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) > at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:744) > Caused by: java.lang.NumberFormatException: For input string: "12:dd:dd" > at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) > at java.lang.Integer.parseInt(Integer.java:492) > at java.lang.Integer.parseInt(Integer.java:527) > at org.apache.cassandra.db.marshal.Int32Type.fromString(Int32Type.java:65) > ... 36 more > {noformat} > I think showing huge stack trace is not proper behavior. > Error message should be printer if arity of passed key and table key are not equal. -- This message was sent by Atlassian JIRA (v6.3.4#6332)