Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 18 19:12
    IgorFedchenko commented #3998
  • Oct 18 18:29
    Aaronontheweb commented #3998
  • Oct 18 18:24
    Aaronontheweb opened #3998
  • Oct 18 18:19

    Aaronontheweb on fix-readme-logo

    (compare)

  • Oct 18 17:30
    Aaronontheweb milestoned #3973
  • Oct 18 16:38
    jaydeboer opened #3997
  • Oct 18 15:53
    Aaronontheweb synchronize #3973
  • Oct 18 15:52

    dependabot-preview[bot] on dev

    Bump Microsoft.NET.Test.Sdk fro… (compare)

  • Oct 18 15:52

    dependabot-preview[bot] on nuget

    (compare)

  • Oct 18 15:52
    dependabot-preview[bot] closed #3996
  • Oct 18 15:52
    Aaronontheweb commented #3996
  • Oct 18 14:53
    Aaronontheweb commented #3973
  • Oct 18 12:20
    IgorFedchenko commented #3973
  • Oct 18 12:17
    IgorFedchenko commented #3973
  • Oct 18 11:58
    IgorFedchenko synchronize #3973
  • Oct 18 11:33
    IgorFedchenko commented #3973
  • Oct 18 11:25
    IgorFedchenko synchronize #3973
  • Oct 18 07:04
    dependabot-preview[bot] labeled #3996
  • Oct 18 07:04
    dependabot-preview[bot] opened #3996
  • Oct 18 07:04

    dependabot-preview[bot] on nuget

    Bump Microsoft.NET.Test.Sdk fro… (compare)

to11mtm
@to11mtm
Interesting...
Andrew Young
@ayoung
Aaron Stannard
@Aaronontheweb
LOL
that is amazing
who made that?
Andrew Young
@ayoung
i have no idea.
do you know how much time i spend trying to make it all align?
Andrew Young
@ayoung
looks like someone from India
to11mtm
@to11mtm
omg awesome
Andrew Young
@ayoung
Arjen Smits
@Danthar
that is very nice
Arsene T. Gandote
@Tochemey
Hello Geeks. Can someone explain to me the existence of this property existenceConfirmed and addressTerminated in the Terminated message?
Sergey Prytkov
@Rattenkrieg
Hi guys, can someone re-run this:
As far as I understand this test fails sometimes due to tight timing limits
Bartosz Sypytkowski
@Horusiath
@Rattenkrieg done
Sergey Prytkov
@Rattenkrieg
thanks!
Bartosz Sypytkowski
@Horusiath
@Tochemey existenceConfirmed is true when terminated message was send directly by the terminated actor. addressTerminated is true when you were watching a remote actor on a cluster node, that has been marked as unreachable. So Actor itself may or may not be dead, but we cannot tell it for sure and we cannot communicate with it
Vagif Abilov
@object
Tried to update Wire NuGet packages, and still get "Method not found: 'Void Wire.SerializerOptions..ctor". So we should stick with Wire 0.0.6 when using Akka.NET, right? That NuGet package is one year old though.
Bartosz Sypytkowski
@Horusiath
@object the latest one I've tried to use was 0.8.1 - it's also the latests with no license issues
Vagif Abilov
@object
And it worked with Akka.NET 1.*? I just tried the latest one (0.8.2) and got the error above. Didn't try 0.8.1 but according to SemVer they should not be different when it comes to method signatures.
Bartosz Sypytkowski
@Horusiath
if you belive in semver, then yes :)
Vagif Abilov
@object
OK, I'll try 0.8.1 then with a risk of ruining my belief in semver.
Hmm, this is what I am getting with 0.8.1:
System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
----> System.Reflection.TargetInvocationException : Exception has been thrown by the target of an invocation.
----> System.MissingMethodException : Method not found: 'Void Wire.SerializerOptions..ctor(Boolean, System.Collections.Generic.IEnumerable1<Wire.Surrogate>, Boolean, System.Collections.Generic.IEnumerable1<Wire.Converters.ValueSerializerFactory>)'.
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at <StartupCode$TickSpec>.$TickSpec.createAction@212-1.Invoke()
Bartosz Sypytkowski
@Horusiath
nothing abnormal - as long as you don't enforce semver as part of your build process, don't count on it
lol
Vagif Abilov
@object
So you are saying that Wire 0.8.1. works for you?
At least it's semver compliant for me :-)
Bartosz Sypytkowski
@Horusiath
well, I think I meant 0.7.1
;)
Vagif Abilov
@object
Now we're talking!
Bartosz Sypytkowski
@Horusiath
btw. soon we'll probably release Hyperion - it's a Wire fork, we'll be using from now on
Vagif Abilov
@object
I see, thanks.
Bartosz Sypytkowski
@Horusiath
At least I want to merge akkadotnet/Hyperion#9 before. Probably guys also have something with .NET core port, so we could publish both normal and .net core packages
Vagif Abilov
@object
Nope, same exception with 0.7.1!
Bartosz Sypytkowski
@Horusiath
if you're using Akka.Serialization.Wire maybe that package is outdated
Vagif Abilov
@object
Oh...
Yepp, will have a look at it.
Bartosz Sypytkowski
@Horusiath
because we use reference to Wire 0.7.1 inside of it
and I see, SerializerOptions are already known to it
Vagif Abilov
@object
Yes, upgrading Akka.Serialization.Wire fixed it!
I will event try 0.8.1 now, as semver suggests :-)
Or should I stick to 0.7.1 until Hyperion is out?
Bartosz Sypytkowski
@Horusiath
no, 0.8.1 should be fine
Vagif Abilov
@object
Thanks!
Alex Michel
@amichel
hi, any example available on how to persist become/unbecome state and process stashed messages after recovery (particularly I need to recover in cluster sharding scenario after rebalancing)
Arsene T. Gandote
@Tochemey
Hello Geeks. Can we have an alpha-release of the Akka.NET Core build?
Because some of us have become addicted to it.
Darren Ford
@4deeptech
I have some questions about clustering and actor deployment and configuration. I created a Gist https://gist.github.com/4deeptech/9a6416b980ba102a8e1c094d2ee2384f to show config context and have the questions in the comments of the .cs file. The questions revolve around deployment configuration on different nodes if a given node already has an actor defined. A Gist seemed easier to demonstrate with an area for comments.
Bartosz Sypytkowski
@Horusiath

@amichel if you're not using snapshots you can just change behavior using Become as part of state recovery. If you're using snapshots, then you can include current behavior i.e. as enum, and when snapshot offer will be loaded, just switch behavior depending on it. Other option would be to set receive method as delegate and persist it along with the state itself, but this require you to use serializer that is able to work with delegates (i.e. Wire/Hyperion should be ok).

Regarding stashed messages I don't know if there are any build in mechanics there - we could possibly make a PR for that. But since persisting messages themselves usually cripples performance, I think the easiest way here is to push stash content back to the shard. First thing, that came out to my head look like that:

// we need custom stop message (can be set in shard region)
// because PoisonPill will immediatelly terminate an actor
Command<CustomStop>(_ =>{
    var envelopes = Stash.ClearStash();
    foreach (var env in envelopes){
        /// retransmit messages back to myself using cluster sharding mechanics
        var shardId = Self.Path.Parent.Name;
        var entityId = Self.Path.Name;
        /// ShardEnvelope is used by shard region MessageExtractor implementation
        shardRegion.Tell(new ShardEnvelope(shardId, entityId, env.Message), env.Sender);
    }
});