+1, we ran into the same issue.  From docs, nodetool drain shuts down ports 
which then prevent nodetool from working as it needs to talk to cassandra 
through the ports.

I asked this same question 2 weeks ago but didn't get an answer.  I am guessing 
but I think 1.2.2 seems to fix this a little better so it doesn't complete shut 
down(ie. I think in 1.2.2 you can still use nodetool after a drain though I 
need to retest this).

A workaround for this issue though is enable your iptables to isolate all nodes 
and allow now communication in or out on ports 9160 and 7199, do a drain, start 
cassandra back up while it is isolated and then snapshot the cluster.

OR

Allow 1.2.2 to read all the commit logs which is what we did (we did snapshot 
then drain and created hardlinks to the commit log files as well)

Take your pick.  I have a feeling they are trying to make this better in the 
newer releases so we can drain and then snapshot though I would have been fine 
with a snapshot and no need to drain I think as in our testing the drain did 
NOT drain.  It did move everything in the commit log to sstables but the commit 
log files where still all there and where the same size AND they all got 
replayed on startup again.  I highly suggest to QA all this yourself and us "du 
–sh /…/…/commitlog" and "du –sh /…/…/data_files" so you get a feel on what you 
should expect.

Dean

From: Andrew Bialecki 
<andrew.biale...@gmail.com<mailto:andrew.biale...@gmail.com>>
Reply-To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Date: Friday, March 8, 2013 8:36 PM
To: "user@cassandra.apache.org<mailto:user@cassandra.apache.org>" 
<user@cassandra.apache.org<mailto:user@cassandra.apache.org>>
Subject: Nodetool drain automatically shutting down node?

Hey all,

We're getting ready to upgrade our cluster to 1.2.2 from 1.1.5 and we're 
testing the upgrade process on our dev cluster. We turned off all client access 
to the cluster and then ran "nodetool drain" on the first instance with the 
intention of running "nodetool snapshot" once it finished. However, after 
running the drain, didn't see any errors, but the Cassandra process was no 
longer running. Is that expected? From everything I've read it doesn't seem 
like it, but maybe I'm mistaken.

Here's the relevant portion of the log from that node (notice it says it's 
shutting down the server thread in there):

INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:48,288 
StorageService.java (line 774) DRAINING: starting drain process
 INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:48,288 
CassandraDaemon.java (line 218) Stop listening to thrift clients
 INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:48,315 
Gossiper.java (line 1133) Announcing shutdown
 INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:49,318 
MessagingService.java (line 534) Waiting for messaging service to quiesce
 INFO 
[ACCEPT-ip-10-116-111-143.ec2.internal/10.116.111.143<http://10.116.111.143>] 
2013-03-09 03:26:49,319 MessagingService.java (line 690) MessagingService 
shutting down server thread.
 INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:49,338 
ColumnFamilyStore.java (line 659) Enqueuing flush of 
Memtable-Counter1@177255852(14810190/60139556 serialized/live bytes, 243550 ops)
 INFO [FlushWriter:7] 2013-03-09 03:26:49,338 Memtable.java (line 264) Writing 
Memtable-Counter1@177255852(14810190/60139556 serialized/live bytes, 243550 ops)
 INFO [FlushWriter:7] 2013-03-09 03:26:49,899 Memtable.java (line 305) 
Completed flushing 
/var/lib/cassandra/data/Keyspace1/Counter1/Keyspace1-Counter1-he-104-Data.db 
(15204741 bytes) for commitlog position ReplayPosition(segmentId=1362797442799, 
position=27621115)
 INFO [CompactionExecutor:11] 2013-03-09 03:26:49,900 CompactionTask.java (line 
109) Compacting 
[SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Counter1/Keyspace1-Counter1-he-102-Data.db'),
 
SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Counter1/Keyspace1-Counter1-he-103-Data.db'),
 
SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Counter1/Keyspace1-Counter1-he-104-Data.db'),
 
SSTableReader(path='/var/lib/cassandra/data/Keyspace1/Counter1/Keyspace1-Counter1-he-101-Data.db')]
 INFO [RMI TCP Connection(38)-10.116.111.143] 2013-03-09 03:26:50,193 
StorageService.java (line 774) DRAINED

Thanks in advanced for any help.

Cheers,
Andrew

Reply via email to