These are chat archives for akkadotnet/akka.net

19th
Jun 2018
nathvi
@nathvi
Jun 19 2018 13:41
Does Akka.NET have a mascot?
How about the tardigrade? Very resilient. Even to the conditions of space.
Gregorius Soedharmo
@Arkatufus
Jun 19 2018 13:43
no mascot that I know of
Ismael Hamed
@ismaelhamed
Jun 19 2018 13:58
@nathvi that looks like something I would definitely step on for no good reason ;)
nathvi
@nathvi
Jun 19 2018 14:11
lol
Or what about the honey badger?
Aaron Stannard
@Aaronontheweb
Jun 19 2018 14:14
@chipdice yep
you can do a full akka.remote actor selection
actor hierarchy -S akka.tcp://MySys@127.0.0.1:4053
that'll query the actor hierarchy of the remote node
@nathvi lol a honey badger mascot
I like it
I'd also take something weird too
Vagif Abilov
@object
Jun 19 2018 16:05
Good afternoon (or morning). If supervision strategy is configured to restart an actor, but the system is being shutdown, will supervisor make an attempt to restart a failed actor?
Aaron Stannard
@Aaronontheweb
Jun 19 2018 16:05
once the terminating flag kicks in
which indicates that the parent actor is going to start shutting down its children
and it has to wait for all children to stop before it gets to shut itself down
it shouldn't restart anybody
it'll issue a stop directive instead
Vagif Abilov
@object
Jun 19 2018 16:07
OK, that makes sense. So no matter what supervision strategy is set, under actor system termination no new actors are created, correct?
Aaron Stannard
@Aaronontheweb
Jun 19 2018 16:07
correct
we have a spec that checks for this specifically
denies creation of new actors once termination of the ActorSystem starts
Vagif Abilov
@object
Jun 19 2018 16:08
Thanks. That's what I hoped :-)
nathvi
@nathvi
Jun 19 2018 16:18
Question... Is it possible to explicitly tell a consistent hashing group router which actor to route to?
Basically "Route messages of type X to routee Y" and so on
nathvi
@nathvi
Jun 19 2018 16:43
Here's the basic problem I'm trying to solve. I have some number N of hardware controller actors. I want to route messages to based on the content of the message. Also I want to be able to add routees dynamically, so that way if I need to add a new hardware controller, I don't need to shutdown the entire system to do so.
chipdice
@chipdice
Jun 19 2018 16:44
@Aaronontheweb Thanks for the pbm info
zbynek001
@zbynek001
Jun 19 2018 16:46

@Aaronontheweb I did run into some interesting exceptions during deployment, which basically brought down the whole cluster.

Association with remote system "akka.tcp://engine@10.0.0.5:30003" has failed; address is now gated for 5000 ms. Reason is: ["Akka.Remote.EndpointException: Failed to write message to the transport ---> System.ArgumentException: Unknown address [UniqueAddress: (akka.tcp://engine@10.0.0.8:30004, 1580251112)] in cluster message
 at Akka.Cluster.Serialization.ClusterMessageSerializer.MapWithErrorMessage[T](Dictionary`2 map, T value, String unknown)
 at System.Linq.Enumerable.SelectEnumerableIterator`2.MoveNext()
 at Google.Protobuf.Collections.RepeatedField`1.AddRange(IEnumerable`1 values)
 at Akka.Cluster.Serialization.ClusterMessageSerializer.GossipToProto(Gossip gossip)
 at Akka.Cluster.Serialization.ClusterMessageSerializer.GossipEnvelopeToProto(GossipEnvelope gossipEnvelope)
 at Akka.Cluster.Serialization.ClusterMessageSerializer.ToBinary(Object obj)
 at Akka.Remote.Serialization.WrappedPayloadSupport.PayloadToProto(Object payload)
 at Akka.Remote.Serialization.MessageContainerSerializer.ToBinary(Object obj)
 at Akka.Serialization.Serialization.SerializeWithTransport[T](ActorSystem system, Address address, Func`1 action)
 at Akka.Remote.MessageSerializer.Serialize(ActorSystem system, Address address, Object message)
 at Akka.Remote.EndpointWriter.WriteSend(Send send)
 --- End of inner exception stack trace ---
 at Akka.Remote.EndpointWriter.PublishAndThrow(Exception reason, LogLevel level, Boolean needToThrow)
 at Akka.Remote.EndpointWriter.WriteSend(Send send)
 at Akka.Remote.EndpointWriter.<SendBufferedMessages>g__WriteLoop48_1(Int32 count)
 at Akka.Remote.EndpointWriter.SendBufferedMessages()
 at lambda_method(Closure , Object , Action`1 , Action`1 , Action`1 )
 at Akka.Tools.MatchHandler.PartialHandlerArgumentsCapture`4.Handle(T value)
 at Akka.Actor.ReceiveActor.ExecutePartialMessageHandler(Object message, PartialAction`1 partialAction)
 at Akka.Actor.UntypedActor.Receive(Object message)
 at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
 at Akka.Actor.ActorCell.ReceiveMessage(Object message)
 at Akka.Actor.ActorCell.Invoke(Envelope envelope)
 --- End of stack trace from previous location where exception was thrown ---
 at Akka.Actor.ActorCell.HandleFailed(Failed f)
 at Akka.Actor.ActorCell.SysMsgInvokeAll(EarliestFirstSystemMessageList messages, Int32 currentState)"]

looks like gossip was seen by node, which is not part of cluster. Any ideas how this could happen?

nathvi
@nathvi
Jun 19 2018 17:09
Trying out the gitter mobile app
Aaron Stannard
@Aaronontheweb
Jun 19 2018 17:46
@zbynek001 wow, that's unusual
never seen that before
it's definitely possible to connect to an Akka.Cluster node via Akka.Remote and not receive any gossip
I have no idea how that would be done by accident like that though
would you mind filing a bug report?
zbynek001
@zbynek001
Jun 19 2018 19:23
still trying to figure out what happened from logs, this might be just a side effect. Shortly before that, our downing provider did down several nodes, cluster got into some weird state and nodes quarantined each other