[ https://issues.apache.org/jira/browse/CASSANDRA-12253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15495287#comment-15495287 ]
Joel Knighton commented on CASSANDRA-12253: ------------------------------------------- Thanks for the patch - it looks pretty good overall. A few minor comments: - Patches should include a CHANGES.txt entry and a last line in the commit message of the form "patch by X; reviewed by Y for CASSANDRA-ZZZZZ". - Project code style says to avoid braces for single line if statements. - A few comments and error messages should be updated for the changes. These are covered at http://cassandra.apache.org/doc/latest/development/patches.html and http://cassandra.apache.org/doc/latest/development/code_style.html. I've pushed a branch with these nits fixed at https://github.com/jkni/cassandra/commits/dikang/12253-2.2. I started CI for 2.2 - unit tests looked good but dtests failed due to unrelated problems with the test environment. Tomorrow, I'll rerun 2.2 CI as well as CI for 3.0 and trunk with the patch merged. If tests look good and you agree to the small things I fixed in my review branch, I'll give this a +1. > Fix exceptions when enabling gossip on proxy nodes. > --------------------------------------------------- > > Key: CASSANDRA-12253 > URL: https://issues.apache.org/jira/browse/CASSANDRA-12253 > Project: Cassandra > Issue Type: Bug > Reporter: Dikang Gu > Assignee: Dikang Gu > Priority: Minor > Fix For: 2.2.x > > Attachments: 0001-for-proxy-node-not-set-gossip-tokens.patch, > 0002-for-proxy-node-not-set-gossip-tokens.patch, > 0003-for-proxy-node-not-set-gossip-tokens.patch > > > We have a tier of Cassandra nodes running with join_ring=false flag, which we > call proxy nodes, and they will never join the ring. > The problem is that sometimes we need to disable and enable the gossip on > those nodes, and `nodetool enablegossip` throws exceptions when we do that: > {code} > java.lang.AssertionError > at > org.apache.cassandra.service.StorageService.getLocalTokens(StorageService.java:2213) > at > org.apache.cassandra.service.StorageService.startGossiping(StorageService.java:371) > 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.GeneratedMethodAccessor8.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.GeneratedMethodAccessor52.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) > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)