These are chat archives for akkadotnet/akka.net

5th
Aug 2018
AndreSteenbergen
@AndreSteenbergen
Aug 05 2018 08:49
Hey guys, are there some benchmarks about persistence? I am trying to find out which persistance layer is best for my need, I am trying to store high numbers of actor journals. I can't keep it all in memory, so I need some disc persistence. But I also need it to be fast.
Jessie Wadman
@JessieWadman
Aug 05 2018 11:38

I'm having a bit of trouble after updating to latest Akka 1.3.8 and Hyperion 0.9.8. I'm getting deserialization errors where before I didn't have any with 1.3.2 and 0.9.6.

The exception happens when one cluster node sends a message to another, with a message that consists of a Guid, string and a byte[]

It looks like Hyperion is not picking the correct value serializer for the message content.
Has anyone else seen this?

The exception I'm getting is:

Association with remote system akka.tcp://... has failed; address is now gated for 5000 ms. Reason is: [System.InvalidCastException: Unable to cast object of type 'System.Byte[]' to type 'System.String'.
at lambda_method(Closure , Stream , DeserializerSession )
at lambda_method(Closure , Stream , DeserializerSession )
at Hyperion.Serializer.DeserializeT
at Akka.Serialization.HyperionSerializer.FromBinary(Byte[] bytes, Type type)
at Akka.Serialization.Serialization.Deserialize(Byte[] bytes, Int32 serializerId, String manifest)
at Akka.Remote.Serialization.MessageContainerSerializer.FromBinary(Byte[] bytes, Type type)
at Akka.Serialization.Serialization.Deserialize(Byte[] bytes, Int32 serializerId, String manifest)
at Akka.Remote.DefaultMessageDispatcher.Dispatch(IInternalActorRef recipient, Address recipientAddress, Payload message, IActorRef senderOption)

Shukhrat Nekbaev
@snekbaev
Aug 05 2018 12:46
say, actor sends three messages and I'm interested only in testing the third one. Is my understanding correct that to be able to test the third message I can't just "cherry pick it from all response messages", but rather I need to either:
a) add ExpectMsg<MessageOne>, ExpectMsg<MsgTwo> to basically skip over the ones I'm not interested and then do one more ExpectMsg<MessageThree> and assert against the result
b) add IgnoreMessages with a predicate of everything but MessageThree and then add ExpectMsg<MessageThree> and assert the result
Shukhrat Nekbaev
@snekbaev
Aug 05 2018 16:00
what is the recommended way to test stashing in the actor?