incubator-cassandra-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Peng Guo <gpcus...@gmail.com>
Subject Re: Can't stop org.apache.cassandra.service.StorageService.stopClient()
Date Fri, 21 May 2010 06:33:14 GMT
Hi

I find there still something need to do:

Modity the  Gossiper.java code like this:

    public void start(InetAddress localEndPoint, int generationNbr)
    {
        localEndPoint_ = localEndPoint;
        /* Get the seeds from the config and initialize them. */
        Set<InetAddress> seedHosts = DatabaseDescriptor.getSeeds();
        for (InetAddress seed : seedHosts)
        {
            if (seed.equals(localEndPoint))
                continue;
            seeds_.add(seed);
        }

        /* initialize the heartbeat state for this localEndPoint */
        EndPointState localState = endPointStateMap_.get(localEndPoint_);
        if ( localState == null )
        {
            HeartBeatState hbState = new HeartBeatState(generationNbr);
            localState = new EndPointState(hbState);
            localState.isAlive(true);
            localState.isAGossiper(true);
            endPointStateMap_.put(localEndPoint_, localState);
        }

        /* starts a timer thread */
        if (gossipTimer_ == null) {
            gossipTimer_ = new Timer(false); // makes the Gossiper
reentrant.
        }
        gossipTimer_.schedule( new GossipTimerTask(),
Gossiper.intervalInMillis_, Gossiper.intervalInMillis_);
    }

and

    public void stop()
    {
        gossipTimer_.cancel();
        gossipTimer_ = null;
    }

I don't know how to commit the patch, so I will learning it:)


On Fri, May 21, 2010 at 11:50 AM, Jonathan Ellis <jbellis@gmail.com> wrote:

> Can you submit a patch to https://issues.apache.org/jira/browse/CASSANDRA?
>
> Thanks!
>
> On Thu, May 20, 2010 at 7:39 PM, Peng Guo <gpcuster@gmail.com> wrote:
> > Hi All
> >
> > This is my test code:
> >    public static void main(String[] args) throws IOException,
> > InterruptedException {
> >        System.setProperty("storage-config",
> > "D:\\apache-cassandra-0.6.1\\conf");
> >
> >        StorageService.instance.initClient();
> >
> >        StorageService.instance.stopClient();
> >    }
> >
> > I find when I run this code, the process can't stop.
> >
> > for I use the jstack look at this process, I find the CONSISTENCY-MANAGER
> > thread is still running.
> >
> > So I modify the code in StorageService.java  like this:
> >
> >    public void stopClient()
> >    {
> >        Gossiper.instance.unregister(this);
> >        Gossiper.instance.stop();
> >        MessagingService.shutdown();
> >        StageManager.shutdownNow();
> >
> >        // this is added to stop the CONSISTENCY-MANAGER thread
> >        consistencyManager_.shutdownNow();
> >    }
> >
> > Can I commit this code in to svn branch?
> >
> > Thanks.
> >
> > --
> > Regards
> >   Peng Guo
> >
>
>
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support
> http://riptano.com
>



-- 
Regards
   Peng Guo

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message