[ 
https://issues.apache.org/jira/browse/CASSANDRA-8801?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14519664#comment-14519664
 ] 

Carl Yeksigian commented on CASSANDRA-8801:
-------------------------------------------

Yeah, it's below. It happens every time during decommission; running OS X 10.9, 
Java 8.

{code}
java.io.IOError: java.io.IOException: No such file or directory
        at 
org.apache.cassandra.net.MessagingService.shutdown(MessagingService.java:737) 
~[main/:na]
        at 
org.apache.cassandra.service.StorageService$6.run(StorageService.java:3278) 
~[main/:na]
        at 
org.apache.cassandra.service.StorageService.unbootstrap(StorageService.java:3351)
 [main/:na]
        at 
org.apache.cassandra.service.StorageService.decommission(StorageService.java:3288)
 [main/:na]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_31]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_31]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_31]
        at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]
        at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71) [na:1.8.0_31]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_31]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_31]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_31]
        at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]
        at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275) [na:1.8.0_31]
        at 
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
 [na:1.8.0_31]
        at 
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
 [na:1.8.0_31]
        at 
com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237) 
[na:1.8.0_31]
        at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138) 
[na:1.8.0_31]
        at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252) 
[na:1.8.0_31]
        at 
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
 [na:1.8.0_31]
        at 
com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) 
[na:1.8.0_31]
        at 
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1466)
 [na:1.8.0_31]
        at 
javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)
 [na:1.8.0_31]
        at 
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1307)
 [na:1.8.0_31]
        at 
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1399)
 [na:1.8.0_31]
        at 
javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:828)
 [na:1.8.0_31]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
~[na:1.8.0_31]
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
~[na:1.8.0_31]
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 ~[na:1.8.0_31]
        at java.lang.reflect.Method.invoke(Method.java:483) ~[na:1.8.0_31]
        at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:323) 
[na:1.8.0_31]
        at sun.rmi.transport.Transport$1.run(Transport.java:200) [na:1.8.0_31]
        at sun.rmi.transport.Transport$1.run(Transport.java:197) [na:1.8.0_31]
        at java.security.AccessController.doPrivileged(Native Method) 
[na:1.8.0_31]
        at sun.rmi.transport.Transport.serviceCall(Transport.java:196) 
[na:1.8.0_31]
        at 
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568) 
[na:1.8.0_31]
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
 [na:1.8.0_31]
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$240(TCPTransport.java:683)
 [na:1.8.0_31]
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$$Lambda$1/497297407.run(Unknown
 Source) [na:1.8.0_31]
        at java.security.AccessController.doPrivileged(Native Method) 
[na:1.8.0_31]
        at 
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682) 
[na:1.8.0_31]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[na:1.8.0_31]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[na:1.8.0_31]
        at java.lang.Thread.run(Thread.java:745) [na:1.8.0_31]
Caused by: java.io.IOException: No such file or directory
        at sun.nio.ch.NativeThread.signal(Native Method) ~[na:1.8.0_31]
        at 
sun.nio.ch.ServerSocketChannelImpl.implCloseSelectableChannel(ServerSocketChannelImpl.java:283)
 ~[na:1.8.0_31]
        at 
java.nio.channels.spi.AbstractSelectableChannel.implCloseChannel(AbstractSelectableChannel.java:234)
 ~[na:1.8.0_31]
        at 
java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:115)
 ~[na:1.8.0_31]
        at sun.nio.ch.ServerSocketAdaptor.close(ServerSocketAdaptor.java:137) 
~[na:1.8.0_31]
        at 
org.apache.cassandra.net.MessagingService$SocketThread.close(MessagingService.java:958)
 ~[main/:na]
        at 
org.apache.cassandra.net.MessagingService.shutdown(MessagingService.java:733) 
~[main/:na]
        ... 43 common frames omitted
{code}

> Decommissioned nodes are willing to rejoin the cluster if restarted
> -------------------------------------------------------------------
>
>                 Key: CASSANDRA-8801
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-8801
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Eric Stevens
>            Assignee: Brandon Williams
>             Fix For: 3.0
>
>         Attachments: 8801-v2.txt, 8801.txt
>
>
> This issue comes from the Cassandra user group.
> If a node which was successfully decommissioned gets restarted with its data 
> directory in tact, it will rejoin the cluster immediately going to {{UN}} and 
> beginning to serve client requests.
> This is wrong - the node has consistency issues, having missed any writes 
> while it was offline because no hinted handoffs were being kept.  And in the 
> best case scenario (it's spotted and remediated immediately), near-100% 
> overstreaming will still occur.
> Also, whatever reasons the operator had for decommissioning the node would 
> presumably still be valid, so this action may threaten cluster stability if 
> the node is underpowered or suffering hardware issues.
> But what elevates this to critical is that if the node had been offline 
> longer than gc_grace_seconds, it may cause permanent and unrecoverable 
> consistency issues due to data resurrection.
> h3. Recommendation:
> A node should remember that it was decommissioned and refuse to rejoin a 
> cluster without at least a -Dflag forcing it to.  



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to