Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-21 Thread Guido Medina
I have a supervisor actor per node which is already subscribed to cluster 
events,
I avoided using ask when the actor system is going down anyway and it is 
driven by the JVM shutdown hook,
so instead I came up with this hack, maybe a bit ugly but it works:

For supervisor actor which once it receives MemberRemoved for itself it 
terminates the actor system:
  if (message instanceof MemberRemoved) {
final Member member = ((MemberRemoved) message).member();
final ActorSystem system = context().system();
if (Cluster.get(system).selfAddress().equals(member.address())) {
  // It was me that left so, terminate actor system.
  system.terminate();
} else {
  // Invalidates that other supervisor cache that left.
  removeSupervisor(member);
}
  }

For main class which once the system is shutdown it also shutdowns the 
logger manager:
  public static void registerShutdownHook(ActorSystem system) {
final CountDownLatch latch = new CountDownLatch(1);
system.registerOnTermination(() -> {
  try {
Configurator.shutdown((LoggerContext) LogManager.getContext());
  } finally {
latch.countDown();
  }
});
Runtime.getRuntime().addShutdownHook(new Thread() {
  @Override
  public void run() {
final Cluster cluster = Cluster.get(system);
cluster.leave(cluster.selfAddress());
try {
  latch.await();
} catch (InterruptedException ignored) {
}
  }
});
  }

Regards,

Guido.

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-21 Thread Guido Medina
You could if system.terminate() could do that for you as part of the 
cluster extension then I could simply Await for Future to be 
ready.

On Monday, March 21, 2016 at 9:36:43 AM UTC, Akka Team wrote:
>
> But then you cannot expect a graceful removal from the cluster. 
>
> -Endre
>
> On Fri, Mar 18, 2016 at 6:47 PM, Guido Medina  > wrote:
>
>> Won't happen, the micro-services are being sent Linux SIGTERM, which is 
>> why I'm hooking on the JVM shutdown.
>>
>> On Friday, March 18, 2016 at 5:26:01 PM UTC, Konrad Malawski wrote:
>>>
>>> I precisely explained for what event you need to wait :-)
>>>
>>> Proper graceful shutdown means you need to wait for *_your own_ address* 
>>> to come back as *MemberRemoved* event,
>>> and THEN you can shut down the actor system and JVM.
>>>
>>>
>>> -- 
>>> Cheers,
>>> Konrad 'ktoso’ Malawski
>>> Akka  @ Lightbend 
>>>
>> -- 
>> >> Read the docs: http://akka.io/docs/
>> >> Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>> >> Search the archives: https://groups.google.com/group/akka-user
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Akka User List" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to akka-user+...@googlegroups.com .
>> To post to this group, send email to akka...@googlegroups.com 
>> .
>> Visit this group at https://groups.google.com/group/akka-user.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> -- 
> Akka Team
> Typesafe - Reactive apps on the JVM
> Blog: letitcrash.com
> Twitter: @akkateam
>

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-21 Thread Akka Team
But then you cannot expect a graceful removal from the cluster.

-Endre

On Fri, Mar 18, 2016 at 6:47 PM, Guido Medina  wrote:

> Won't happen, the micro-services are being sent Linux SIGTERM, which is
> why I'm hooking on the JVM shutdown.
>
> On Friday, March 18, 2016 at 5:26:01 PM UTC, Konrad Malawski wrote:
>>
>> I precisely explained for what event you need to wait :-)
>>
>> Proper graceful shutdown means you need to wait for *_your own_ address*
>> to come back as *MemberRemoved* event,
>> and THEN you can shut down the actor system and JVM.
>>
>>
>> --
>> Cheers,
>> Konrad 'ktoso’ Malawski
>> Akka  @ Lightbend 
>>
> --
> >> Read the docs: http://akka.io/docs/
> >> Check the FAQ:
> http://doc.akka.io/docs/akka/current/additional/faq.html
> >> Search the archives: https://groups.google.com/group/akka-user
> ---
> You received this message because you are subscribed to the Google Groups
> "Akka User List" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to akka-user+unsubscr...@googlegroups.com.
> To post to this group, send email to akka-user@googlegroups.com.
> Visit this group at https://groups.google.com/group/akka-user.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Akka Team
Typesafe - Reactive apps on the JVM
Blog: letitcrash.com
Twitter: @akkateam

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-19 Thread Guido Medina
How long is enough time? I tried sleep 1 sec between leave and terminate 
calls and it didn't work.

On Friday, March 18, 2016 at 5:13:50 PM UTC, Konrad Malawski wrote:
>
> Also, please don't do that:
>cluster.leave(cluster.selfAddress());
> system.terminate();
> It is wrong.
>
> You need to give the cluster gossip enough time to complete the leaving 
> "nicely".
>
> Proper graceful shutdown means you need to wait for _your own_ address to 
> come back as MemberRemoved event,
> and THEN you can shut down the actor system and JVM.
>
> Related: 
> this mistake is exactly something I warn against in my recent talk "Zen of 
> Akka", you may enjoy it :-)
> https://youtu.be/tC-joPMPJLs
>
>
>
> On Fri, Mar 18, 2016 at 5:58 PM, Patrik Nordwall  > wrote:
>
> Hi Ben
>
> There are some subtle exceptions to the convergence rule. Unreachable 
> members with status Down or Exiting are not counted.
>
> /Patrik
>
> On Thu, Mar 17, 2016 at 11:25 PM, Guido Medina  > wrote:
>
> In fact in the other nodes you get the following:
>
> INFO  22:10:20,383 ster) - Cluster Node [akka.tcp://
> DevCluster@127.0.0.1:2552] - Leader is moving node [akka.tcp://
> DevCluster@127.0.0.1:38845] to [Exiting]
> INFO  22:10:20,384 orRef - Message [akka.cluster.GossipEnvelope] from 
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
> Actor[akka://DevCluster/deadLetters] was not delivered. [1] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:20,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>  
> to Actor[akka://DevCluster/deadLetters] was not delivered. [2] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:21,383 orRef - Message [akka.cluster.GossipEnvelope] from 
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
> Actor[akka://DevCluster/deadLetters] was not delivered. [3] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:21,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>  
> to Actor[akka://DevCluster/deadLetters] was not delivered. [4] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:22,383 orRef - Message [akka.cluster.GossipEnvelope] from 
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
> Actor[akka://DevCluster/deadLetters] was not delivered. [5] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:22,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>  
> to Actor[akka://DevCluster/deadLetters] was not delivered. [6] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:23,383 orRef - Message [akka.cluster.GossipEnvelope] from 
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
> Actor[akka://DevCluster/deadLetters] was not delivered. [7] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:23,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>  
> to Actor[akka://DevCluster/deadLetters] was not delivered. [8] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:24,382 orRef - Message [akka.cluster.GossipEnvelope] from 
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
> Actor[akka://DevCluster/deadLetters] was not delivered. [9] dead letters 
> encountered. This logging can be turned off or adjusted with configuration 
> settings 'akka.log-dead-letters' and 
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:24,384 ster) - Cluster Node [akka.tcp://
> DevCluster@127.0.0.1:2552] - Marking exiting node(s) as UNREACHABLE 
> [Member(address = 

Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-19 Thread Konrad Malawski
Also, please don't do that:
   cluster.leave(cluster.selfAddress());
system.terminate();
It is wrong.

You need to give the cluster gossip enough time to complete the leaving
"nicely".

Proper graceful shutdown means you need to wait for _your own_ address to
come back as MemberRemoved event,
and THEN you can shut down the actor system and JVM.

Related:
this mistake is exactly something I warn against in my recent talk "Zen of
Akka", you may enjoy it :-)
https://youtu.be/tC-joPMPJLs



On Fri, Mar 18, 2016 at 5:58 PM, Patrik Nordwall 
wrote:

> Hi Ben
>
> There are some subtle exceptions to the convergence rule. Unreachable
> members with status Down or Exiting are not counted.
>
> /Patrik
>
> On Thu, Mar 17, 2016 at 11:25 PM, Guido Medina  wrote:
>
>> In fact in the other nodes you get the following:
>>
>> INFO  22:10:20,383 ster) - Cluster Node [akka.tcp://
>> DevCluster@127.0.0.1:2552] - Leader is moving node [akka.tcp://
>> DevCluster@127.0.0.1:38845] to [Exiting]
>> INFO  22:10:20,384 orRef - Message [akka.cluster.GossipEnvelope] from
>> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
>> Actor[akka://DevCluster/deadLetters] was not delivered. [1] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:20,403 orRef - Message [akka.cluster.
>> ClusterHeartbeatSender$Heartbeat] from 
>> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>> to Actor[akka://DevCluster/deadLetters] was not delivered. [2] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:21,383 orRef - Message [akka.cluster.GossipEnvelope] from
>> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
>> Actor[akka://DevCluster/deadLetters] was not delivered. [3] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:21,403 orRef - Message [akka.cluster.
>> ClusterHeartbeatSender$Heartbeat] from 
>> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>> to Actor[akka://DevCluster/deadLetters] was not delivered. [4] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:22,383 orRef - Message [akka.cluster.GossipEnvelope] from
>> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
>> Actor[akka://DevCluster/deadLetters] was not delivered. [5] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:22,403 orRef - Message [akka.cluster.
>> ClusterHeartbeatSender$Heartbeat] from 
>> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>> to Actor[akka://DevCluster/deadLetters] was not delivered. [6] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:23,383 orRef - Message [akka.cluster.GossipEnvelope] from
>> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
>> Actor[akka://DevCluster/deadLetters] was not delivered. [7] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:23,403 orRef - Message [akka.cluster.
>> ClusterHeartbeatSender$Heartbeat] from 
>> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
>> to Actor[akka://DevCluster/deadLetters] was not delivered. [8] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:24,382 orRef - Message [akka.cluster.GossipEnvelope] from
>> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
>> Actor[akka://DevCluster/deadLetters] was not delivered. [9] dead letters
>> encountered. This logging can be turned off or adjusted with configuration
>> settings 'akka.log-dead-letters' and
>> 'akka.log-dead-letters-during-shutdown'.
>> INFO  22:10:24,384 ster) - Cluster Node [akka.tcp://
>> DevCluster@127.0.0.1:2552] - Marking exiting node(s) as UNREACHABLE
>> [Member(address = akka.tcp://DevCluster@127.0.0.1:38845, status =
>> Exiting)]. This is expected and they will be removed.
>> INFO  22:10:24,403 orRef - Message [akka.cluster.
>> ClusterHeartbeatSender$Heartbeat] from 
>> 

Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-19 Thread Patrik Nordwall
Hi Ben

There are some subtle exceptions to the convergence rule. Unreachable
members with status Down or Exiting are not counted.

/Patrik

On Thu, Mar 17, 2016 at 11:25 PM, Guido Medina  wrote:

> In fact in the other nodes you get the following:
>
> INFO  22:10:20,383 ster) - Cluster Node [akka.tcp://
> DevCluster@127.0.0.1:2552] - Leader is moving node [akka.tcp://
> DevCluster@127.0.0.1:38845] to [Exiting]
> INFO  22:10:20,384 orRef - Message [akka.cluster.GossipEnvelope] from
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
> Actor[akka://DevCluster/deadLetters] was not delivered. [1] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:20,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
> to Actor[akka://DevCluster/deadLetters] was not delivered. [2] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:21,383 orRef - Message [akka.cluster.GossipEnvelope] from
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
> Actor[akka://DevCluster/deadLetters] was not delivered. [3] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:21,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
> to Actor[akka://DevCluster/deadLetters] was not delivered. [4] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:22,383 orRef - Message [akka.cluster.GossipEnvelope] from
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
> Actor[akka://DevCluster/deadLetters] was not delivered. [5] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:22,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
> to Actor[akka://DevCluster/deadLetters] was not delivered. [6] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:23,383 orRef - Message [akka.cluster.GossipEnvelope] from
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
> Actor[akka://DevCluster/deadLetters] was not delivered. [7] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:23,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
> to Actor[akka://DevCluster/deadLetters] was not delivered. [8] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:24,382 orRef - Message [akka.cluster.GossipEnvelope] from
> Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to
> Actor[akka://DevCluster/deadLetters] was not delivered. [9] dead letters
> encountered. This logging can be turned off or adjusted with configuration
> settings 'akka.log-dead-letters' and
> 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:24,384 ster) - Cluster Node [akka.tcp://
> DevCluster@127.0.0.1:2552] - Marking exiting node(s) as UNREACHABLE
> [Member(address = akka.tcp://DevCluster@127.0.0.1:38845, status =
> Exiting)]. This is expected and they will be removed.
> INFO  22:10:24,403 orRef - Message [akka.cluster.
> ClusterHeartbeatSender$Heartbeat] from 
> Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769]
> to Actor[akka://DevCluster/deadLetters] was not delivered. [10] dead
> letters encountered, no more dead letters will be logged. This logging can
> be turned off or adjusted with configuration settings
> 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
> INFO  22:10:25,387 ster) - Cluster Node [akka.tcp://
> DevCluster@127.0.0.1:2552] - Leader is removing exiting node [akka.tcp://
> DevCluster@127.0.0.1:38845]
>
> Notice the 1st status is [Exiting], then you see from [Exiting] to
> [Unreachable] and then you get [MemberRemoved] which isn't logged by Akka
> but I can assure you it happens, and 

Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-19 Thread Guido Medina
Won't happen, the micro-services are being sent Linux SIGTERM, which is why 
I'm hooking on the JVM shutdown.

On Friday, March 18, 2016 at 5:26:01 PM UTC, Konrad Malawski wrote:
>
> I precisely explained for what event you need to wait :-)
>
> Proper graceful shutdown means you need to wait for *_your own_ address* 
> to come back as *MemberRemoved* event,
> and THEN you can shut down the actor system and JVM.
>
>
> -- 
> Cheers,
> Konrad 'ktoso’ Malawski
> Akka  @ Lightbend 
>

-- 
>>  Read the docs: http://akka.io/docs/
>>  Check the FAQ: 
>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>  Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.


Re: [akka-user] Re: Clarification on unreachable nodes in cluster

2016-03-19 Thread Konrad Malawski
I precisely explained for what event you need to wait :-)

Proper graceful shutdown means you need to wait for _your own_ address to come 
back as MemberRemoved event,
and THEN you can shut down the actor system and JVM.

-- 
Cheers,
Konrad 'ktoso’ Malawski
Akka @ Lightbend

On 18 March 2016 at 18:24:58, Guido Medina (oxyg...@gmail.com) wrote:

How long is enough time? I tried sleep 1 sec between leave and terminate calls 
and it didn't work.

On Friday, March 18, 2016 at 5:13:50 PM UTC, Konrad Malawski wrote:
Also, please don't do that:
       cluster.leave(cluster.selfAddress());
        system.terminate();
It is wrong.

You need to give the cluster gossip enough time to complete the leaving 
"nicely".

Proper graceful shutdown means you need to wait for _your own_ address to come 
back as MemberRemoved event,
and THEN you can shut down the actor system and JVM.

Related: 
this mistake is exactly something I warn against in my recent talk "Zen of 
Akka", you may enjoy it :-)
https://youtu.be/tC-joPMPJLs



On Fri, Mar 18, 2016 at 5:58 PM, Patrik Nordwall  wrote:
Hi Ben

There are some subtle exceptions to the convergence rule. Unreachable members 
with status Down or Exiting are not counted.

/Patrik

On Thu, Mar 17, 2016 at 11:25 PM, Guido Medina  wrote:
In fact in the other nodes you get the following:

INFO  22:10:20,383 ster) - Cluster Node [akka.tcp://DevCluster@127.0.0.1:2552] 
- Leader is moving node [akka.tcp://DevCluster@127.0.0.1:38845] to [Exiting]
INFO  22:10:20,384 orRef - Message [akka.cluster.GossipEnvelope] from 
Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
Actor[akka://DevCluster/deadLetters] was not delivered. [1] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:20,403 orRef - Message 
[akka.cluster.ClusterHeartbeatSender$Heartbeat] from 
Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769] 
to Actor[akka://DevCluster/deadLetters] was not delivered. [2] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:21,383 orRef - Message [akka.cluster.GossipEnvelope] from 
Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
Actor[akka://DevCluster/deadLetters] was not delivered. [3] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:21,403 orRef - Message 
[akka.cluster.ClusterHeartbeatSender$Heartbeat] from 
Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769] 
to Actor[akka://DevCluster/deadLetters] was not delivered. [4] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:22,383 orRef - Message [akka.cluster.GossipEnvelope] from 
Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
Actor[akka://DevCluster/deadLetters] was not delivered. [5] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:22,403 orRef - Message 
[akka.cluster.ClusterHeartbeatSender$Heartbeat] from 
Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769] 
to Actor[akka://DevCluster/deadLetters] was not delivered. [6] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:23,383 orRef - Message [akka.cluster.GossipEnvelope] from 
Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
Actor[akka://DevCluster/deadLetters] was not delivered. [7] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:23,403 orRef - Message 
[akka.cluster.ClusterHeartbeatSender$Heartbeat] from 
Actor[akka://DevCluster/system/cluster/core/daemon/heartbeatSender#1423910769] 
to Actor[akka://DevCluster/deadLetters] was not delivered. [8] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:24,382 orRef - Message [akka.cluster.GossipEnvelope] from 
Actor[akka://DevCluster/system/cluster/core/daemon#1435915897] to 
Actor[akka://DevCluster/deadLetters] was not delivered. [9] dead letters 
encountered. This logging can be turned off or adjusted with configuration 
settings 'akka.log-dead-letters' and 'akka.log-dead-letters-during-shutdown'.
INFO  22:10:24,384 ster) - Cluster