Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 14 21:02
    Aaronontheweb synchronize #3975
  • Oct 14 21:02
    Aaronontheweb opened #3975
  • Oct 14 20:11
    IgorFedchenko commented #3973
  • Oct 14 20:10
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 19:42
    IgorFedchenko edited #3973
  • Oct 14 18:08
    Aaronontheweb commented #3937
  • Oct 14 17:27
    Aaronontheweb commented #90
  • Oct 14 17:26
    Aaronontheweb commented #90
  • Oct 14 17:25
    Aaronontheweb assigned #90
  • Oct 14 17:16

    Aaronontheweb on dev

    Provide static GetRoutees.Insta… (compare)

  • Oct 14 17:16
    Aaronontheweb closed #3974
  • Oct 14 17:16
    Aaronontheweb milestoned #3974
  • Oct 14 16:05
    jackowild opened #90
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 14 15:08
    Aaronontheweb commented #3974
  • Oct 13 14:40
    cptjazz synchronize #3974
  • Oct 13 14:07
    cptjazz opened #3974
  • Oct 13 08:30
    ismaelhamed commented #3937
Zetanova
@Zetanova
as long as the extension initializion process dont call the same method where the Lazy helper is created and query itself, all will be good.
Thomas Lazar
@thomaslazar
is there a way to find out from an IActorRef what the type of the actual underlying actor is?
Bartosz Sypytkowski
@Horusiath
@thomaslazar nope, there is no correlation there
Thomas Lazar
@thomaslazar
ok. other question. can i somehow convert a IActorRef into a TestActorRef?
i have an actor i want to test. i send it a message and get an IActorRef in return and i just want to make sure that it's actually the actor i want.
Bartosz Sypytkowski
@Horusiath
you could do this for LocalActorRef but first think, if YAGNI
Thomas Lazar
@thomaslazar
well my situation is this. i have an actor A that creates 2 child actors B and C, both are doing stuff with resources. A has messages E/F that are used to return an IActorRef of B or C so code can work with the underlying resources. if certain stuff happens A tells B and C to shut down and when nobody is using them anymore they kill themselves. A creates a new B and C that get handed off to new caller asking message E/F. i just want to test sending message E and F if i get their corresponding B and C types back.
Bartosz Sypytkowski
@Horusiath
it sounds, like you're trying to test implementation (type of an actor) instead of behavior (what actor does). You could just invoke the test scenario. It's like duck typing - if actor behaves like B, it means it's B. If not and it behaves like C, it means, you've invoked C
Thomas Lazar
@thomaslazar
yeah... but that would make a simple "check if type is B" into "send actorref messages and see if it is actually the actor i wanted", which would be much more code.
Zetanova
@Zetanova
Akka.Persistence.Journal.AsyncWriteJournal.HandleWriteMessages(Akka.Persistence.WriteMessages message )
"New transaction is not allowed because there are other threads running in the session."
Zetanova
@Zetanova
@Horusiath If a command handler is Persiting two events and the Event Handler fails on the first event. On Recover of the AR will both events come in the same order? (Created+Updated)
Zetanova
@Zetanova
Somehow the create event is lost
Zetanova
@Zetanova
If the message handler of Akka.Persistence.Eventsourced.AroundReceive failes, then it is generating an infinit loop without calling OnReplayFailure()
Cleared the Journal and now i am getting NullRefException In Akka.Persistence.Sql.Common.Journal.JournalDbEngine
at System.Collections.Generic.LinkedList1.Find(T value) at System.Collections.Generic.LinkedList1.Remove(T value)
at Akka.Persistence.Sql.Common.Journal.JournalDbEngine.<>cDisplayClass1.<ReplayMessagesAsync>b0(Task1 task) at System.Threading.Tasks.ContinuationTaskFromResultTask1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
;(
Zetanova
@Zetanova
How to download the Debug Files (*.pdb) for the Dev builed. I added https://nuget.symbolsource.org/MyGet/akkadotnet to the Source Urls but VS cant find them there
Zetanova
@Zetanova
PendingOperations the LinkedList.Remove() is not thread safe
Need to get my Dev-fork up
Chris G. Stevens
@cgstevens
Quick Question: It does look like this is happening but want to validate. I am seeing, based on the messages, that when my member joins it is set to the Leader for that role before I get the message that it is actually up. Is this how it is actually happening or I am just getting that message first. In fact I am getting the message that the member is up 3-6 seconds after I was told that it is the leader for that role.... if it is happening this way why is it being promoted to leader when it isn't considered up.
Bartosz Sypytkowski
@Horusiath
@Zetanova concerning transactions errors - they should be fixed by #1306
I'll start to fix the rest of the errors you've found today
Zetanova
@Zetanova
@Horusiath thx, is there a Lock Free LinkedList in Akka or similar?
Bartosz Sypytkowski
@Horusiath
thx, but let me see, maybe it won't be necessary, if it won't be possible to make whole operation working on synchronous inside an actor, we still have an arsenal of atomic/immutable options inside akka itself
Zetanova
@Zetanova
LinkList and Set is fine in an actor, but if some concurrent is using them, there can be hiden bugs. 10M operations can be successfull 10M+1 is failing once in a week. LockFree Queue and LinkedList are nice because it can be a proteced property of a base class. Immutable Lists need still the lock or spin-lock to copy the list, like ConcurrentBag<T>
Christian Duhard
@cduhard
hmm this Terminated code doesn't seem to work
it's failing on _pendingCommands = groups.First(x => !x.Key).ToList();
Zetanova
@Zetanova
yes
@cduhard fast fix
var commands = new List<PendingCommand>(_pendingCommands.Count - i);
commands.AddRange(_pendingCommands.Where(cmd => cmd.PersistenceId != pid));
_pendingCommands = commands;
Christian Duhard
@cduhard
so i ma replacing all 3 lines with that
where does I come from?
Zetanova
@Zetanova
found commands
i++ in the loop
_pendingCommands.Where(cmd => cmd.PersistenceId == pid)
Christian Duhard
@cduhard
i'm missing something
Zetanova
@Zetanova
remove this toList and stuff
Christian Duhard
@cduhard
the current code is
            var groups =
                _pendingCommands.GroupBy(cmd => cmd.PersistenceId == terminated.ActorRef.Path.Name).ToArray();
            _pendingCommands = groups.First(x => !x.Key).ToList();
            var commands = groups.First(x => x.Key);
            foreach (var pendingCommand in commands)
            {
                var child = Recreate(pendingCommand.AggregateId, pendingCommand.PersistenceId);
                child.Tell(pendingCommand.Command, pendingCommand.Sender);
            }
Zetanova
@Zetanova
var pid = terminated.ActorRef.Path.Name;
int i = 0;
foreach (var pendingCommand in _pendingCommands.Where(cmd => cmd.PersistenceId == pid))

{

    var child = Recreate(pendingCommand.AggregateId, pendingCommand.PersistenceId);

    child.Tell(pendingCommand.Command, pendingCommand.Sender);
    i++;       
}

var commands = new List<PendingCommand>(_pendingCommands.Count - i);
commands.AddRange(_pendingCommands.Where(cmd => cmd.PersistenceId != pid));
_pendingCommands = commands;
Christian Duhard
@cduhard
got it, thanks. I'll give this a try.
@Zetanova what are you using for storage?
Zetanova
@Zetanova
sql-server for now. but the storage type should be picked by the AR-type
Christian Duhard
@cduhard
how do you mean?
Zetanova
@Zetanova
file, document-store, sql are all valid
Christian Duhard
@cduhard
i was going to give EventStore a try
Zetanova
@Zetanova
File => for very large AR's maybe explicit on a partition/drive SSD
DocumentStore => normal for AR's
sql => maybe faster for some kind of operations (need to test later on)
Christian Duhard
@cduhard
weird getting dead letters now
Zetanova
@Zetanova
In a local akka.net buget build where to set the BUILD_NUMBER of a package? Want to patch the Akka.Persistence.Sql.Common so that the SqlServer is dont updating it on install