Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 21 15:57
    Aaronontheweb closed #3877
  • Oct 21 15:57
    Aaronontheweb commented #3877
  • Oct 21 15:56

    Aaronontheweb on dev

    Persistence TestKit documentati… (compare)

  • Oct 21 15:56
    Aaronontheweb closed #3889
  • Oct 21 07:27
    dependabot-preview[bot] labeled #3999
  • Oct 21 07:27

    dependabot-preview[bot] on nuget

    Bump FluentAssertions from 4.14… (compare)

  • Oct 21 07:27
    dependabot-preview[bot] opened #3999
  • Oct 20 17:25
    valdisz synchronize #3889
  • Oct 20 17:17
    valdisz synchronize #3889
  • Oct 20 15:44
    valdisz synchronize #3889
  • Oct 20 09:22
    ismaelhamed commented #3863
  • Oct 19 23:39
    valdisz synchronize #3889
  • Oct 19 23:08
    edvinasz commented #2947
  • Oct 19 13:36
    Aaronontheweb commented #3973
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3995
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump BenchmarkDotNet from 0.10.… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] edited #3995
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3993
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3991
to11mtm
@to11mtm
You may want to place a ticket describing some of the issue (a test or even sample is immeasurably helpful) at https://github.com/akkadotnet/Hyperion/issues
Hyperion is the fork of Wire that will be used in further Akka releases, so that's the best place to have the issue tracked.
generally speaking however, Make sure anything you serialize is concrete-typed if you can (i.e. don't use Interfaces on messages, don't slam an arbitrary IEnumerable<> into an object field; instead do a ToList() on it first so there's a well known type on both ends)
(Because -that's- how I've seen that error before =D)
to11mtm
@to11mtm
Someone who knows more than me please confirm: There's an option in HOCON to serialize all messages. IFF I understand that correctly, that can help detect some serialization errors before they go across remoting and that can help troubleshoot, they will get published to the eventstream.
Keep in mind that you're going to have a perf penalty when doing that, so it's best used for trobleshooting scenarios.
Tamir Dresher
@tamirdresher
i think you mean this: akka { actor { serialize-messages = on } }
i'll check
to11mtm
@to11mtm
I think that's the one, you can see where it pushes errors to eventstream in the catch of this region: https://github.com/akkadotnet/akka.net/blob/dev/src/core/Akka/Actor/ActorCell.cs#L310
also note that if the serialization 'fails' things will still work local, so the eventstream is still the go to
Arjen Smits
@Danthar
@to11mtm you are correct about the serialize-messages option. That is a good way to detect serialization issues.
to11mtm @to11mtm is just glad he learned something from the groking
Arjen Smits
@Danthar
Nice post and explanation @Horusiath http://bartoszsypytkowski.com/optimizing-event-journals/
Bartosz Sypytkowski
@Horusiath
thx ;)
Arjen Smits
@Danthar
when we release the new implementation, we should put a link to that post in the release notes. It would help in letting people know what changed, why, and how it might impact them
Bartosz Sypytkowski
@Horusiath
When I wrote it, I've seen that it's more something that should be placed in a docs than inside blog post ;)
Arjen Smits
@Danthar
true :)
wauw
like... feels like the nail in the coffin for java
to11mtm
@to11mtm
@Horusiath Hey I was poking at some code thinking about akkadotnet/Hyperion#8 and noticed something that may be useful depending on how elegant MVP versus final solution needs to be...
But it looks like you can set readonly values on a struct if it was created by GetUninitializedObject: Sample here http://share.linqpad.net/499axc.linq
Bartosz Sypytkowski
@Horusiath
@to11mtm thx, but for some reason this doesn't work :)
once I'll find out why it doesn't work, maybe I'll find out how to make it work :)
Bartosz Sypytkowski
@Horusiath
the funny part is that we actually fill readonly fields in a the same way, you're using in you're using. But it throws
to11mtm
@to11mtm
HAHAHA wtf
Bartosz Sypytkowski
@Horusiath
I've fixed that, I understand what I changed, but I don't understand how was that supposed to change anything
Bartosz Sypytkowski
@Horusiath
basically, the code-gen first we were creating instance using Activator. That was returning a null, so the next we generated cast to a deserialized type. However later, for readonly fields, we were setting them with FieldInfo.SetValue(object, object), but that requires an object as a first param. So we generated code responsible for casting it back to object (but only for readonly fields). So struct created using activator → casted to its type → casted back to object, was causing an error.
what I've changed, was passing a direct reference to an object returned from activator (so we omitted all casts in this case). That worked.
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()