Thanks Camille. Then I'll raise an improvement task and will discuss it over there and reach to an agreement.
Thanks, Rakesh -----Original Message----- From: c...@renttherunway.com [mailto:c...@renttherunway.com] On Behalf Of Camille Fournier Sent: 27 March 2014 21:53 To: DevZooKeeper Cc: u...@zookeeper.apache.org Subject: Re: Thread handling I love the idea. In general, it would be great to uplift the way we do threading. It is a BIG project though, which is why it hasn't been tackled. I think this will go best if you have a clear idea of how we can break down the change so it isn't a several month dev/review process. C On Thu, Mar 27, 2014 at 10:38 AM, Rakesh R <rake...@huawei.com> wrote: > Hi All, > > Server has many critical threads running and co-ordinating each other > like RequestProcessor chains et. When going through each threads, > most of them having the similar structure like: > > public void run() { > try { > while(running) > // processing logic > } > } catch (InterruptedException e) { > LOG.error("Unexpected interruption", e); > } catch (RequestProcessorException e) { > LOG.error("Unexpected exception", e); > } catch (Exception e) { > LOG.error("Unexpected exception", e); > } > LOG.info("...exited loop!"); > } > > I feel, we could improve our threads in our system. From the design I > could see, there could be a chance of silently leaving the thread in > case of any exception(abnormal or any functional issue too) If this > happens in the production, the server would get hanged forever and > will not be able to deliver its role. > > If we have a 'DeathWatcher 'or some other mechanism in place to > monitor all the critical threads. It can take a decision like - bring > down the process if required, or shutdown the quorumpeer and go for LE again > etc. > Now the monitoring or management tool will knows about the situation > and can act upon. > > Appreciate any thoughts ? > > Thanks in advance, > Rakesh R >