These are chat archives for akkadotnet/

Aug 2018
Bartosz Sypytkowski
Aug 15 2018 05:55
@object keep in mind that this one only reduces the pressure on the journal. If you are bombarding newly created actors (that didn't recover yet), they will keep stashing incoming request until their recovery completes - which in turn my cause timeouts on the sender side.
but this is most likely to happen if you have slow db and huge number of requests
Tim Rudat
Aug 15 2018 10:17
Hi, I am running ActorSystem.Terminate().Wait(); to stop my actors. Sometimes the shutdown process hangs at [DEBUG][Thread 0008][akka://MyActorSystem/user] Stopping and won't continue. Is there a way to debug what exactly is preventing the stopping?
Tim Rudat
Aug 15 2018 11:13
It is an actor using theSynchronizedDispatcher that is blocking the Terminate from proceeding. The synchronized thread seems no longer to exist. How can I kill these "dead" actors before Terminating my ActorSystem?
Aug 15 2018 12:57
Strange thing observed with persistence (using PostgreSQL). On the odd occasion I have an entity, two events persisted at the same time. The events have the correct sequence number, but the ordering column has them in the wrong order. Has anyone else come across this? Any ideas as to how this can happen?
Aug 15 2018 13:11
Shouldn't happen (according to docs) when Persist is called no new messages should be accepted. So basically 2 events persisted at the exact same time should be impossible.
async/ wait issue perhaps? Quote: The persistent actor has a private stash for internally caching incoming messages during Recovery or the Persist \ PersistAll method persisting events.
Aug 15 2018 13:16
Or did you Persist 2 events during processing of 1 command?
Aug 15 2018 13:18
@AndreSteenbergen It's a single command message being processed, which then persists two events. Most of the time this is fine, but on the odd occasion I see the above mentioned global ordering issue
Aug 15 2018 13:20
as Persist is synchronous by nature this can sometimes occur I guess, You could Persist the second event in the Action called by the first Persist
Persist(firstEvent, evt => Persist(secondEvent, evt2 => {Handle(evt1); Handle(evt2);}) That would be the safest method
Vagif Abilov
Aug 15 2018 13:34
@Horusiath After reducing max-concurrent-recoveries I din't find any messages "Exceeded max-concurrent-recoveries" in our log, and with large number of parallel threads timeouts still happened. So I had to reduce the number of threads, looks like this is what triggers out persistent actors timeouts.
Shukhrat Nekbaev
Aug 15 2018 15:45
testing actor: should throw exception on certain condition. Test has:
EventFilter.Exception<InvalidOperationException>().ExpectOne( () => actor.Tell( toSend ) );
this works, however, if actor's PreRestart logs the exception Log.Error( reason, "PreRestart" ); then assertion fails, because it receives two InvalidOperationExceptions. Is it possible to assert only the exceptions?
same problem if logging is moved to PostRestart
Shukhrat Nekbaev
Aug 15 2018 16:16
didn't expect this to work, cause logging is happening in the same actor as where exception is thrown, but this seems to solve: EventFilter.Exception<InvalidOperationException>( source: actor.Path.ToString() ).ExpectOne( () => actor.Tell( toSend ) );
Lutando Ngqakaza
Aug 15 2018 19:56

is there like an idiomatic way for me to build a HOCON config that is derived from another.

This is how one might do it in other frameworks for example
I have Config A I wanna build Config B by traversing Config A's keys building up a list of keys and values and then use those keys and values to finally derive similar Config to A but is slightly different called Config B.

dont know if im making sense
basically i want a slightly modified version of Config A without using Fallbacks
tiny hydra
Aug 15 2018 22:30
Is there a way to set priority for an actor?