These are chat archives for akkadotnet/akka.net

22nd
Sep 2016
Aaron Stannard
@Aaronontheweb
Sep 22 2016 00:01
@corneliutusnea now that I think about it
I like the idea of Become being virtual
have an idea for doing some AOP stuff that would really benefit from that
base classes that can always automatically handle specific types of messages regardless of what the child class' behavior is
i.e. within your application if you have a "control" or a "system" layer that is distinct and separate from the "user" layer
being able to guarantee that the control layer is always consistent regardless of a child actor's behavior would be helpful
I see this type of thing come up in IOT, where you have stateful processing that requires behavior switching
but there are scenarios that override any state, like receiving an emergency shutdown command for a device that is being controlled by an actor
not sure if all of that made sense, but I had a bit of a lightbulb going off moment
Aaron Stannard
@Aaronontheweb
Sep 22 2016 00:26
@/all Akka.NET 1.1.2 has been released: https://github.com/akkadotnet/akka.net/releases/tag/v1.1.2 - will go live to NuGet shortly (after our CI server processes its workload)
big hats off to everyone who contributed - had a number of new contributors this time!
you'll see your names on the leaderboard on the release notes ;)
also, thanks for everyone who reported issues, asked StackOverflow questions, and asked questions here
Aaron Stannard
@Aaronontheweb
Sep 22 2016 00:31
that's how the process for making Akka.NET better and better starts :shipit:
Boban
@bobanco
Sep 22 2016 01:22
Congz :clap: Thank you everyone who contributed and made akka.net more stable
Yin Zhang
@melcloud
Sep 22 2016 01:31
@Aaronontheweb Thanks for mono support. Now I can play with docker and normad
Aaron Stannard
@Aaronontheweb
Sep 22 2016 01:32
@melcloud that makes two of us!
Thomas Lazar
@thomaslazar
Sep 22 2016 05:57
@Aaronontheweb Basta! 2016 in Mainz Germany.
Vagif Abilov
@object
Sep 22 2016 06:23
Hi guys and congratulations with the 1.1.2 release. Well done as usual!
Since Akka.NET is approaching persistence RTM, I feel it's quite important to fix the earlier reported bug in SqlServer adapter which occurs when saving snapshots.
Here's what I often find in our logs:
Failed to SaveSnapshot given metadata ["SnapshotMetadata<pid: akamai-volume-usage:24, seqNr: 1542, timestamp: 0001.01.01>"] due to: ["System.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near the keyword 'WHERE'.
Incorrect syntax near the keyword 'SET'.
Incorrect syntax near '('.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
I created a GitHub issue for it, but I can probably investigate it myself.
Then I would like to obtain the whole SQL statement that causes this exception.
Is there a way to trace SQL statements for this adapter? Or I will need to compile it from sources and debug?
Peter Hvidgaard
@hvidgaard
Sep 22 2016 06:28
The easiest way is probably to start a trace with SSMS and get it there.
Vagif Abilov
@object
Sep 22 2016 06:30
@hvidgaard this happens on the server. Will I need to install SSMS tool pack and trace it?
Peter Hvidgaard
@hvidgaard
Sep 22 2016 06:31
it comes with any standard sql server installation I think
Vagif Abilov
@object
Sep 22 2016 06:31
OK, thanks, I will check it out.
Arjen Smits
@Danthar
Sep 22 2016 06:34
@Aaronontheweb techdays.nl in Amsterdam
Corneliu
@corneliutusnea
Sep 22 2016 10:46
@Aaronontheweb Thanks. What I had to do is duplicate (part of the ReceiveActor) in my on custom actor so I can add my own concerns to it. E.g. in debug I trace State Transitions. If there is an exception or if an actor does not process a message I trace the last message, the current state and few other bits. Also if there is a state transition I log the message that triggered that. Simple stuff like that can make debugging a lot easier. It would have been nice to do it without duplicating the class.
Lastly I'd like OnReceive or ExecutePartialMessageHandler to be virtual. I have stuff in there like creating a DI scope and logging
Arsene T. Gandote
@Tochemey
Sep 22 2016 11:17
Hello I have some question about Supervision Strategy. Maybe someone may have answered it. I would like to know how to set Supervision Strategy at ActorSystem level. I know and implemented the strategy at the Actor implementation level. However how to handle the exeception thrown by the actors created by ActorSystem (Let us say Top Level Actors.)
Maciek Misztal
@mmisztal1980
Sep 22 2016 11:35
yay! l'm last ! LOL
Arsene T. Gandote
@Tochemey
Sep 22 2016 11:35
I discovered that you can use akka.actor.guardian-supervisor-strategy to configure the /user Supervisor Strategy. Any tutorial on this may help.
Thomas Lazar
@thomaslazar
Sep 22 2016 12:26
The other talk today about WPF and Akka.net was quite good. Had not much WPF in it and was mostly a general talk about actors and akka.net. But at least ppl didn't look like the presenter was chanting a Cthulhu summons.
eriklagerholm
@eriklagerholm
Sep 22 2016 12:39
I'm still having trouble with silent failures when the SqlServer persistence adapter cannot connect to the database. Previously I thought it was a connection-string-name issue, but with just a broken connection-string my system starts and suddenly stops processing as soon as a persistent actor receives its first message. Anyone experiencing anything similar?
eriklagerholm
@eriklagerholm
Sep 22 2016 12:55
I tried debugging the Persistence.SqlServer repo and there is an exception being thrown when my connection string is bad (as expected) but it's not being logged in my application. Maybe I haven't set things up properly...
Aaron Stannard
@Aaronontheweb
Sep 22 2016 13:58
@object would you mind logging an issue for that?
we're going to be doing a big round of bug-stomping for Akka.Persistence soon - I've found some issues with it too
@eriklagerholm so none of the persistent actors are able to start when this happens, right?
and it's not obvious that an error is occurring?
eriklagerholm
@eriklagerholm
Sep 22 2016 14:04
@Aaronontheweb It seems the first (first as in first to be incarnated) persistent actor is able to start, but not able to begin processing any message. It logs the message received (ILogReceive usage), but doesn't begin the handler method (or so I assume given that no breakpoints are hit). No obvious errors, just seems to stop processing that message. Triggering another message logs the receive, but then stops again.
Aaron Stannard
@Aaronontheweb
Sep 22 2016 14:05
@eriklagerholm yeah, so my guess there is that since the persistent actor can't recover its state
it never switches out of its "recovering" behavior, which is what it does internally when it replays snapshots and the journal
eriklagerholm
@eriklagerholm
Sep 22 2016 14:06
ah, makes sense!
Thanks for the enlightenment!
Aaron Stannard
@Aaronontheweb
Sep 22 2016 14:09
the right thing for us to do in this instance is scream, loudly
and indicate that something has gone horribly wrong
rather than just sit there and quietly fail
agree?
eriklagerholm
@eriklagerholm
Sep 22 2016 14:10
Yeah, definitely. Scream bloody murder. You want me to report this issue?
Aaron Stannard
@Aaronontheweb
Sep 22 2016 14:13
yes please - if you could provide some details on what made the failure occur (i.e. something as simple as a mis-typed connection string) and what the observed behavior was
we can correct that
eriklagerholm
@eriklagerholm
Sep 22 2016 14:14
Ok, I will do that! Should this be in the SqlServer repo or the Akka.net repo?
Aaron Stannard
@Aaronontheweb
Sep 22 2016 14:15
do it for Akka.NET - it might be something we should do at the level of Akka.Persistence itself
rather than a specific implementation of it
eriklagerholm
@eriklagerholm
Sep 22 2016 14:15
I figured. I'm on it.
Aaron Stannard
@Aaronontheweb
Sep 22 2016 14:17
thanks!
eriklagerholm
@eriklagerholm
Sep 22 2016 14:17
Cheers!
Vagif Abilov
@object
Sep 22 2016 15:01
@Aaronontheweb the issue I mentioned doesn't have such fatal consequences, because the failure occur only when saving snapshot. Snapshot is not saved but the actor is capable of retrieving its state from the event journal, it's just not optimized. There is my GitHub issue for Akka.Persistence.SqlServer.
Arsene T. Gandote
@Tochemey
Sep 22 2016 15:47
Hello I have some question about Supervision Strategy. Maybe someone may have answered it. I would like to know how to set Supervision Strategy at ActorSystem level. I know and implemented the strategy at the Actor implementation level. However how to handle the exeception thrown by the actors created by ActorSystem (Let us say Top Level Actors.)
Bartosz Sypytkowski
@Horusiath
Sep 22 2016 20:07
@Tochemey you need to create your own class which inherits from one of existing supervision strategy classes (i.e. OneForOneSupervisionStrategy) define there your own custom exception behavior and use it's fully qualified name with assembly as a value under akka.actor.guardian-supervisor-strategy config