These are chat archives for akkadotnet/akka.net

23rd
Jun 2016
qwoz
@qwoz
Jun 23 2016 01:08
what's the best way to visualize the actor hierarchy when debugging? Something akin to Visual Studio's Locals tab where you can drill down a tree structure to find something like:
MyActorSystem > user > MyActor > ChildActor > OtherActor [terminated]
Aaron Stannard
@Aaronontheweb
Jun 23 2016 01:09
nothing built into Akka.NET for that
but what you can do inside the VS debugger
is grab ahold of the Context
inside a watch
and then expand the Children collection, whatever it is called
and from there you should be able to do that recursively for local actors at least
qwoz
@qwoz
Jun 23 2016 01:15
yeah, I can do this crudely when debugging a test using this > base > base > base > Sys > base > Guardian > base > Children ... was hoping there was something a tad nicer. :smile:
to11mtm
@to11mtm
Jun 23 2016 02:16
@qwoz, not sure if it would help for your use case but have you seen the visualizer? https://www.nuget.org/packages/Akka.Visualizer/
fouimette
@fouimette
Jun 23 2016 04:09
Hello!
I am running through a tutorial on PluralSight (that is a little outdated) and am using the Terminate() method followed by the WhenTerminated task. What I get is a "DeathWatchNofitification message was not delivered" error. Any thoughts?
fouimette
@fouimette
Jun 23 2016 04:20
blob
Bartosz Sypytkowski
@Horusiath
Jun 23 2016 05:34
@fouimette usually it's nothing to worry about. When actor system terminates, it kills all actors in async fashion. Actors build in hierarchies parent-child often send messages to each other when terminating. In case of system termination that means that one terminating actor could send a message to another, which is being terminated too.
Corneliu
@corneliutusnea
Jun 23 2016 05:45
Hi guys, what's the status of the Akka Cluster?
Bartosz Sypytkowski
@Horusiath
Jun 23 2016 05:46
@corneliutusnea pretty solid already, I think @Aaronontheweb is going to move it out of beta in a week.
Corneliu
@corneliutusnea
Jun 23 2016 05:48
Should I wait for final integration / testing with my product ?
Bartosz Sypytkowski
@Horusiath
Jun 23 2016 05:49
if it's only a week, I would wait anyway
qwoz
@qwoz
Jun 23 2016 05:50
Thanks @to11mtm ... is there a site for Akka.Visualizer with a bit more info?
Corneliu
@corneliutusnea
Jun 23 2016 06:19
@qwoz I think you are talking about my visualizer. I really had no time to publish it :/ my fault
fouimette
@fouimette
Jun 23 2016 06:31
@Horusiath Thanks for the response. I would expect that a simple demo to create an actor in an actor system and then terminating the system would not produce such an unexpected result.
qwoz
@qwoz
Jun 23 2016 07:03
thanks @corneliutusnea
hidavidpeng
@hidavidpeng
Jun 23 2016 07:24
hi How can I get recover the message in supervisor?
Bart de Boer
@boekabart
Jun 23 2016 08:02
@hidavidpeng either in the 'character' actor you do smth with it in PreRestart (or PostStop), or have the supervisor 'remember' it when sending it to the inner actor, and keep it until 'OK' or 'NOK (deadwatchnotification)'
Ricky Blankenaufulland
@ZoolWay
Jun 23 2016 12:20
Can I check if a (cluster) router currently has any routees?
Ricky Blankenaufulland
@ZoolWay
Jun 23 2016 12:25
In more words: I would like to know if there is currently any node connected which has actors capable of the job I want to do.
Alex Valuyskiy
@alexvaluyskiy
Jun 23 2016 12:28
await router.Ask<Routees>(new GetRoutees())
to11mtm
@to11mtm
Jun 23 2016 13:27
@corneliutusnea THANK YOU for putting it on git finally. =D
Stanley Goldman
@StanleyGoldman
Jun 23 2016 13:38
are there any screenshots of the visualizer?
Aaron Stannard
@Aaronontheweb
Jun 23 2016 16:02
man, amazing what one small change can do in the right place in terms of performance
removed one allocation inside the dispatcher system and saw a bump immediately
Aaron Stannard
@Aaronontheweb
Jun 23 2016 16:27
going to add a unit test that does the equivalent of what our NBench specs do for measuring actor message throughput
to make it easier to hook up a profiler like dotTrace, mostly
since NBench doesn't offer that level of granularity
Aaron Stannard
@Aaronontheweb
Jun 23 2016 16:53
actually, hmmm... I'm going to need to rethink that
Stanley Goldman
@StanleyGoldman
Jun 23 2016 17:21
@Aaronontheweb is there anyway to have both a Priority Mailbox and a Stash?
do I just have to implement IDequeBasedMailbox on my custom priority mailbox?
or is the whole concept a conflict of interests
Aaron Stannard
@Aaronontheweb
Jun 23 2016 17:34
you should be to able to do both
to be honest I'm not sure due to the changes coming in 1.1
Stanley Goldman
@StanleyGoldman
Jun 23 2016 17:38
hmm
how much longer until 1.1?
Aaron Stannard
@Aaronontheweb
Jun 23 2016 17:47
like a week
June 30th
Chris G. Stevens
@cgstevens
Jun 23 2016 17:51
woot!
:)
Jordan S. Jones
@jordansjones
Jun 23 2016 19:37
Can anyone point to a snippet of code or documentation about the recommended way to “properly” shutdown the ActorSystem while gracefully leaving the cluster?
I know I have seen somethings in here, but I am failing at searching
wdspider
@wdspider
Jun 23 2016 20:11
Is there a way to get an exception when the akka hocon is not parse-able rather than simply failing silently?
Ivan R. Perez
@irperez
Jun 23 2016 20:55
@Aaronontheweb when you get a chance, take a look at this issue. Wanted to get your thoughts. akkadotnet/akka.net#2115
Aaron Stannard
@Aaronontheweb
Jun 23 2016 20:56
so I've seen people ask for something like that before
needing to guarantee that at least 1 subscriber handles a published message
my suggestion to them was to have an AtLeastOnceDeliveryActor publish the message to DistributedPubSub
as long as you don't care about multiple subscribers handling it
that way you can guarantee that at least one actor handled it when they send an ACK back
an out of the box atleastoncedelviery actor may not be the best candidate
since it relies on the ActorPath to cache its sender, which can be a bit ephemeral in DistributedPubSub
i.e. probably won't work across restarts
the other scenario you'd have to cover is what if there are no subscribers for that topic
Aaron Stannard
@Aaronontheweb
Jun 23 2016 21:08
it's a common problem - so coming up with a canonical solution would be a good idea. I think it's going to be something inherent in the actor on either end of the pub/sub relationship though, rather than a modification of the DistributedPubSub system itself
since the only way to realistically guarantee processing of a message is using an acknowledgement protocol
which means both sender and receiver need to be aware of it
Vagif Abilov
@object
Jun 23 2016 21:31
@corneliutusnea thanks for publishing your Visualizer on GitHub.
Stanley Goldman
@StanleyGoldman
Jun 23 2016 21:45
@object can you send a screenshot
i haven't seen any yet
and i haven't set it up for myself yet
Aaron Stannard
@Aaronontheweb
Jun 23 2016 21:46
I'd be curious to see it also
Jordan S. Jones
@jordansjones
Jun 23 2016 21:46
:+1:
Vagif Abilov
@object
Jun 23 2016 21:51
I am far from my work pc right now. But will make a screenshot when I am back to work from my short vacation. It's an alpha state but looks promising.
Aaron Stannard
@Aaronontheweb
Jun 23 2016 22:10
in today's public service announcement
Tail Recursion and C#: natural enemies
testing various parts of the actor dispatching system
for performance issues
came up with a test where I can pre-fill an actor's mailbox with 500000 messages
and none of them will be processed until I send that actor a Tell
instant stack overflow exception
Aaron Stannard
@Aaronontheweb
Jun 23 2016 22:26
interesting - looks like it takes about 3x as long to put a message in an actor's mailbox vs. how long it takes the dispatcher to dequeue that message and push it into the actor's cell