Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Dec 06 20:57
    IgorFedchenko commented #4085
  • Dec 06 20:32
    IgorFedchenko commented #4085
  • Dec 06 20:01
    IgorFedchenko commented #4085
  • Dec 06 19:55
    IgorFedchenko commented #4085
  • Dec 06 16:22
    Aaronontheweb labeled #3997
  • Dec 06 16:22
    Aaronontheweb closed #3997
  • Dec 06 16:20
    IgorFedchenko commented #3997
  • Dec 06 16:08
    IgorFedchenko commented #4085
  • Dec 06 15:50
    Aaronontheweb assigned #4085
  • Dec 06 15:50
    Aaronontheweb labeled #4085
  • Dec 06 15:50
    Aaronontheweb labeled #4085
  • Dec 06 15:49
    Aaronontheweb closed #4032
  • Dec 06 14:58
    IgorFedchenko commented #4032
  • Dec 06 14:57
    IgorFedchenko opened #4085
  • Dec 05 17:21
    Aaronontheweb synchronize #4079
  • Dec 05 17:20
    Aaronontheweb labeled #4084
  • Dec 05 17:20
    Aaronontheweb labeled #4084
  • Dec 05 17:20
    Aaronontheweb milestoned #4084
  • Dec 05 17:20

    Aaronontheweb on dev

    Remove string interpolation fro… (compare)

  • Dec 05 17:20
    Aaronontheweb closed #4084
Chris Hoare
@chrisjhoare
thanks @Zetanova - thats what I was hoping to be the case
Zetanova
@Zetanova
@Horusiath I have an stream that sinks to a remote actorRef. If the streams throws an error then the Exception is send to the remote actor and crashes the node (because of some serializing error in json). Is here a away to transform an exception to an custom-error-message ?
and still down the stream itself
Zetanova
@Zetanova
I am blind a bit, there is SelectError to trasnform an exception
Zetanova
@Zetanova
in Sink.ActorRefWithAck is an onFailureMessage argument but it is missing in Sink.ActorRef
Bartosz Sypytkowski
@Horusiath
@Zetanova yes, we probably should add it.
I see it in akka jvm docs, I guess it may have been added after we ported that part
Zetanova
@Zetanova
@Horusiath If possible to remove the argment type in SelectError(Func<Exception, Exception> transform) to SelectError(Func<Object, Object> transform). Exceptions and transparent remoting are not working well together. It is always a big source of a failure/crash. (since net1.1)
i create a topic akkadotnet/akka.net#3903
What i currently see is that RemoteDeploy and Streams have this behavior that both can pass unknown-exception-types to remote systems/nodes
Vladimir Boiarkin
@vladmir-boy
Hi. I have the question. we developed new transport for our Akka.NET application. Can we deploy it into existing system without downtime?
Bartosz Sypytkowski
@Horusiath
@vladmir-boy what do you mean by new transport?
Vladimir Boiarkin
@vladmir-boy
we implemented gRPC remote transport instead of dotNetty
Bartosz Sypytkowski
@Horusiath
dotnetty is using TCP layer, gRPC is build on top of HTTP 2 (which is build on top of TCP). So no, nodes using two different transports will not be able to communicated with each other - different binary formats.
If you'd replace dotnetty with another TCP implementation, it would be possible
Vladimir Boiarkin
@vladmir-boy
@Horusiath thanks! is there away to plug translator from one binary format to another somewhere ?
Bartosz Sypytkowski
@Horusiath
@vladmir-boy yes it's possible, but I wouldn't assume it's an easy task. I think, you should be able to get all necessary documentation here: https://getakka.net/articles/remoting/transports.html#using-custom-transports
Pedro Yan Ornelas de Oliveira
@pedroyan
Hi everyone! Noob question here: How can I log all uncaught exceptions thrown on a certain actor? I know I can override the PreRestart() method and log the exception there, but that wouldn't log exceptions that result on the actor stopping
Bartosz Sypytkowski
@Horusiath
@pedroyan all exceptions thrown in actors are logged by default
Felipe Muniz
@Mun1z
Anyone using the solution on online game servers? I met the actor model a short time ago, I'm studying to see if it's worth including it in my case.
Zetanova
@Zetanova
@Mun1z Most likely yes, but it depends of the game. The main benefit will be that there will be no locks (synchronisation) for user-states and world interactions. Clients would be served as fast as possible. But if your game-server/client can handle everything in a single message loop on 3Ghz, i want border that much to replace it with actor model.
HermansG
@HermansG
Probably a trivial question but I forgot the answer. Suppose in the mailbox of an actor we have messages m0 .. m5 all different object types.
m0 is delivered first and the state of the actor changes to a state that only has a Receive defined for the type of m5.
I forgot what happens to the messages m1..m4. Are they kept in the mailbox or are they sent to the actor and not processed?
Arjen Smits
@Danthar
They are processed and you receive warnings.
Zetanova
@Zetanova
@HermansG Every message is picked from the mailbox and get processed in order. If u want to postpone messages, you will need to resend it to the current actor again
Context.Self.Tell(msg, Context.Sender);
or stash it with IWithUnboundedStash and Stash.Stash(); and after Stash.UnstashAll();
HermansG
@HermansG
@Danthar "They are processed" but in Unhandled aren't they, because there is no Receive.
HermansG
@HermansG
@Zetanova that scenario for me is perhaps too advanced but thank you
Arjen Smits
@Danthar
Hermansg yes you get an unhandeld message. And yes the stashing is a way to handle this. It's very easy to apply. Check out the docs for more info 😊
Dan
@ctrlaltdan

Hey I have a question about event adapters and their support across persistence plugins. In short, I am trying to use an event adapter to serialise protobuf-net dtos using InMemory, Sql and Mongodb (through cosmosdb/documentdb emulator engine). I'm unsure if my event adapter implementation is incorrect or if there is a problem with the compatibility among different persistence drivers.

I have put together a solution with each of the three mechanisms (with tests) here:
https://github.com/ctrlaltdan/akka-event-adapters

Any help would be appreciated :D

Zetanova
@Zetanova
@ctrlaltdan ""System.Byte[], System.Private.CoreLib"" = protobuf looks strange, your code is only handle known and attributed/tagged types
Zetanova
@Zetanova
i am not sure, but what i think is happening that you serialize DtoA to byte[]+manifest
and after the persistent system passes byte[] again to the eventadapter and u are returing byte[]+String.Empty
on loading, you will get byte[]+string.empty again back
just remove ""System.Byte[], System.Private.CoreLib"" = protobuf
I have an other question and i fought that i resolved it, I have in a k8s cluster 3 seed nodes
i am using static-quorum of size 2 as split blrain resolver
Zetanova
@Zetanova
i had the problem that on an rollingupdate of the seed-nodes and a static seed node list, the first node (node0) always joint itself and build a new cluster, but node1 and node2 where up and still had the valid old cluster.
To resolve this problem, i changed the seed-node list on each seed node, so it's own entry is at the end of the list
Node0 => node1,node2,node2
Node1 => node0,node2,node1
Node2 => node0,node1,node2
It was fine for a while
But now node0 restarted on some point in the last days and joined itself again and formed a new cluster
I rested it, 5 times and always it joint itself instantly and formed a new cluster
Dan
@ctrlaltdan

@Zetanova Thanks for you reply. I tried to remove the system.byte[] from the hocon but (using mongodb) I still get the same error... System.TypeLoadException: Could not load type 'SLAP_V1' from assembly 'Akka.Persistence.MongoDb, Version=1.3.12.0, Culture=neutral, PublicKeyToken=null'.

It would seem that mongodb honours the manifest property and tries to deserialize the string (which it wont be able to do) whereas the sql plugin doesnt honour the manifest, equally causing problems.... Any thoughts?

I could wrap my contracts in another contract which achieves the same but I was trying to both interact natively with the framework and minify my message contracts (to make most of the cosmosdb 1kb=1RU costing model)
Zetanova
@Zetanova
the Sql plugin i know very well, it selfs the manifest string into a column and the payload in a blob column
I guess this answers one question...
Manifest NVARCHAR(500) NOT NULL,
Payload VARBINARY(MAX) NOT NULL,