Anton, I agree with Vova - we already have lifecycle bean. Why do we need anything on top of that?
-Val On Tue, Nov 14, 2017 at 10:05 AM, Anton Vinogradov <avinogra...@gridgain.com > wrote: > Vova, > > We should provide user ability to be notified in case some node decided to > stop itself. > Only user know how he want to be notified, so we should provide ability to > register custom callback(eg. send sms or call rest service) > This will cover cases when node stops gracefuly. > > Please, see Semen's comment at > https://issues.apache.org/jira/browse/IGNITE-5811 for details. > > P.s. Cases when node stops without ability to do something should be > covered by external watchdog. > > Вт, 14 нояб. 2017 г. в 20:08, Vladimir Ozerov <voze...@gridgain.com>: > > > Can you explain what kind of logic could be placed there? And why do we > > need another configuration property and/or interface? We already have > > LifecycleBean, where Ignite instance could be injected, so user is > already > > able to perform anything there. > > > > On Tue, Nov 14, 2017 at 7:46 PM, Anton Vinogradov < > > avinogra...@gridgain.com> > > wrote: > > > > > Vova, > > > > > > That's not about "kill -9" or OOM, that's about case when node detected > > > something and decided to stop itself (eg. persistence errors, > > > IgniteOutOfMemoryException, ExchangeWorker died) > > > Sure, we can't handle OOM or 100% CPU utilization by GC it that way, > but > > we > > > can handle some logical problems. > > > > > > Andrey, > > > > > > I propose to refactor method to ignite.onClose(SomeClosure< > SomeReason>) > > > In this case user will be able to register callback on all graceful > > stops, > > > and > > > detect it's reason. > > > > > > > > > On Tue, Nov 14, 2017 at 7:29 PM, Vladimir Ozerov <voze...@gridgain.com > > > > > wrote: > > > > > > > I am not sure this makes sense. First, in general case we do not have > > > > access to Java. E.g. in case of very long GC pause all Java threads > are > > > > stuck and it is impossible to invoke anything. Second, some other > > > > conditions may be unrecoverable, such as OOME, where there is no > > > guarantee > > > > that any operation succeed. So this is not graceful shutdown. We > should > > > > kill the node forcefully IMO. > > > > > > > > On Tue, Nov 14, 2017 at 7:23 PM, Andrey Kuznetsov <stku...@gmail.com > > > > > > wrote: > > > > > > > > > Hi Igniters! > > > > > > > > > > When some node detects critical error, e.g. OOME, deadlock, etc, it > > > > should > > > > > invoke some user-defined callback and then attempt to close itself > > > > > gracefully. In order to make this possible we need to enhance > Ignite > > > > > interface by adding something like Ignite.onEmergencyClose( > > > SomeClosure). > > > > > > > > > > First, I'd like to get your feedback on this potential change. Then > > we > > > > can > > > > > refine SomeClosure structure. > > > > > > > > > > -- > > > > > Best regards, > > > > > Andrey Kuznetsov. > > > > > > > > > > > > > > >