Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 10:41
    peirens-bart opened #4095
  • 08:37
    Aaronontheweb synchronize #4071
  • 08:13
    jiyeongj opened #4094
  • Dec 12 15:42
    Aaronontheweb synchronize #4086
  • Dec 12 15:42
    Aaronontheweb closed #4083
  • Dec 12 15:42

    Aaronontheweb on dev

    Fix #4083 - Endpoint receive bu… (compare)

  • Dec 12 15:42
    Aaronontheweb closed #4089
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb labeled #4093
  • Dec 12 15:42
    Aaronontheweb opened #4093
  • Dec 12 14:20
    Aaronontheweb commented #4092
  • Dec 12 14:14
    Aaronontheweb labeled #4089
  • Dec 12 14:14
    Aaronontheweb labeled #4089
  • Dec 12 14:11
    Aaronontheweb synchronize #4089
  • Dec 12 14:10
    Aaronontheweb synchronize #4086
  • Dec 12 14:09

    Aaronontheweb on dev

    Convert to ImmutableHashSet for… (compare)

  • Dec 12 14:09
    Aaronontheweb closed #4090
  • Dec 12 12:04
    nagytech synchronize #4092
  • Dec 12 11:53
    nagytech synchronize #4092
Joshua Garnett
@joshgarnett
Good idea
cool, we shall see how this goes
Trying to debug some non-deterministic behavior, it’s been fun
Aaron Stannard
@Aaronontheweb
have you heard of FsCheck?
Joshua Garnett
@joshgarnett
nope
Aaron Stannard
@Aaronontheweb
it's how I find a lot of heisenbugs in my code and we use it in a few places here in the Akka.NET test suite too
I need to finish the part 3 of that series one day
it uses property and model-based testing
found tons of weird edge cases in production Akka.NET code with it
Joshua Garnett
@joshgarnett
Nice
Aaron Stannard
@Aaronontheweb
like a scenario where restarting one actor three times in a row broke a big piece of functionality, a scenario I would have never thought to test
Andrew Young
@ayoung
@uatec was that directed to me?
still don't know why Proto.Actor exists. Can someone comment?
Bartosz Sypytkowski
@Horusiath
@ayoung you could ask this question on proto.actor channel. IMO it result of some of the Roger's thoughts on akka's actors, that couldn't be implemented in akka itself because of legacy reasons. Personally me (and probably many people in the core team) sympathize with at least some of those ideas - we talked about them even before birth of proto.actor.
Phil Sandler
@philsandler_twitter
Thanks @Aaronontheweb --makes sense.
chipdice
@chipdice
Is there something special I need to do in order to serialize an enum as part of a message? I'm using Hyperion and as soon as I add my enum to a message I send, I get an error. ERROR 2017-09-14 14:35:54,547 [25] TcpServerHandler - Error caught channel [::ffff:172.16.165.175]:9710->[::ffff:172.16.165.175]:64469
System.Net.Sockets.SocketException (0x80004005): An existing connection was forcibly closed by the remote host
at DotNetty.Transport.Channels.Sockets.SocketChannelAsyncOperation.Validate()
at DotNetty.Transport.Channels.Sockets.AbstractSocketByteChannel.SocketByteChannelUnsafe.FinishRead(SocketChannelAsyncOperation operation)
DEBUG 2017-09-14 14:35:54,551 [25] EndpointWriter - Disassociated [akka.tcp://PMTActorSystem@chipd-pc2:9710] <- akka.tcp://PMTActorSystem@chipd-pc2:9560
WARN 2017-09-14 14:35:54,552 [25] ReliableDeliverySupervisor - Association with remote system akka.tcp://PMTActorSystem@chipd-pc2:9560 has failed; address is now gated for 5000 ms. Reason is: [Akka.Remote.EndpointDisassociatedException: Disassociated
at Akka.Remote.EndpointWriter.PublishAndThrow(Exception reason, LogLevel level, Boolean needToThrow)
at Akka.Remote.EndpointWriter.Unhandled(Object message)
at Akka.Actor.ReceiveActor.ExecutePartialMessageHandler(Object message, PartialAction`1 partialAction)
at Akka.Actor.ReceiveActor.OnReceive(Object message)
Saepul Ramdani
@blackclavus
Is there anyway to check current actor's behavior?
Stephen Newman
@goodisontoffee
@Aaronontheweb thank you for the Akka.Monitoring drop :)
Arsene
@Tochemey

Hello geeks, I am having an issue after updating my Akka packages:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMethodException: Method not found: 'Void Hyperion.SerializerOptions..ctor(Boolean, Boolean, System.Collections.Generic.IEnumerable`1<Hyperion.Surrogate>, System.Collections.Generic.IEnumerable`1<Hyperion.SerializerFactories.ValueSerializerFactory>, System.Collections.Generic.IEnumerable`1<System.Type>)'.
   at Akka.Serialization.HyperionSerializer..ctor(ExtendedActorSystem system, HyperionSerializerSettings settings)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
   at System.Activator.CreateInstance(Type type, Object[] args)
   at Akka.Serialization.Serialization..ctor(ExtendedActorSystem system)
   at Akka.Actor.Internal.ActorSystemImpl..ctor(String name, Config config)
   at Akka.Actor.ActorSystem.Create(String name)

Please assist. This is my config is the app.config:

  <akka>
    <hocon>
      <![CDATA[
          akka 
          {
            loggers = ["Akka.Logger.NLog.NLogLogger, Akka.Logger.NLog"]
            # here we are configuring log levels
            stdout-loglevel = DEBUG
            loglevel = DEBUG
            log-config-on-start = off        
            actor 
            {                
                debug 
                {  
                      receive = on 
                      autoreceive = on
                      lifecycle = on
                      event-stream = on
                      unhandled = on
                }
                serializers {
                      hyperion = "Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion"
                }
                serialization-bindings {
                  "System.Object" = hyperion
                }                
            }
          }
      ]]>
    </hocon>
  </akka>
Stephen Newman
@goodisontoffee
@Tochemey You need to update to the latest prerelease package for Akka.Serialization.Hyperion
Arsene
@Tochemey
Ok thanks man
I will give it a try
Arsene
@Tochemey
@goodisontoffee Thanks man. It works :smile:
Kevin McFarlane
@kevinmcfarlane
I notice that that the Akka.NET home page has some broken links in the "read more." Also the copyright is saying 2013-2016.
Aaron Stannard
@Aaronontheweb
@kevinmcfarlane would you mind logging an issue with some of those? we'll fix it
the copyright footer fix should be a breeze too
Kevin McFarlane
@kevinmcfarlane
Hi Aaron, I'll try and do so over the weekend. At work at the moment. :)
Michel van den Berg
@promontis
What to do when I have a coordinator actor that will deploy work to worker actors on a number of nodes and the number of worker actors is very high (say a million). The coordinator actor is persistent and has a million WorkerCreated events. Will this one coordinator actor be able to handle the creation of a million worker actors by reading the journal? Or will this take a long time? If so, how to speed this up?
Robert Stiff
@uatec
hey
https://getakka.net http cert appears to be wrong
getting an azure websites one
Gregorius Soedharmo
@Arkatufus
uh oh...
i'll let the other core team member know, thanks
Chris Ochs
@gamemachine
So long time user of akka but decided to give orleans a shot on my current game. I've noticed something very different at a core level, which is orleans is slow as hell. SOme of it is the serialization, but some of it appears to be that await is just slow. Does akka internally use some magic to make sending messages faster then a simple await?
on akka jvm as of around 2 years ago, the same basic logic I was pushing 50k messages second. Akka.net I didn't do as much testing, but it wasn't far behind at around the same cpu load. Orleans falls over at the same load, doesn't even get 20% of the way there
Ronny Carlansson
@lessismore1
Unable to find documention of HOCON. Need info about - akka.actor.ask-timeout. Pointers?
Bartosz Sypytkowski
@Horusiath
@lessismore1 akka.actor.ask-timeout was not originally part of JVM config, since in Scala you always have timeout as implicit parameter. We added it to allow people to set a global timeout on their Ask requests, so they don't need to pass timeouts each time. By default it's null (for backward compatibility story), but you can set it to any HOCON time value (i.e. 5s, 500ms etc.)
Ronny Carlansson
@lessismore1
Thanks for a quick reply! :) Working...
Bartosz Sypytkowski
@Horusiath
@gamemachine it's more the Orleans side - when you're calling grain methods, it's not just a simple await.
Ronny Carlansson
@lessismore1
Tried ImmutableSortedDictionary as actor state in a persistenceactor. Snapshots fails to load due to an requirement NewtonSoft have on immutables. Any hints?
Bartosz Sypytkowski
@Horusiath
@lessismore1 you may define your custom converter for json.net, or even better, you may define a custom serializer with well defined schema (i.e. protobuf, msgpack, ms bond)
Ronny Carlansson
@lessismore1
@Horusiath tried hyperion - same result. Something wrong the settings?
```
    serializers {
        hyperion = ""Akka.Serialization.HyperionSerializer, Akka.Serialization.Hyperion""
        bytes = ""Akka.Serialization.ByteArraySerializer""
    }
    serialization-bindings {
      ""System.Object"" = hyperion
      ""System.Byte[]"" = bytes
    }
```
Bartosz Sypytkowski
@Horusiath
@lessismore1 don't use Hyperion serializer for persistence - it's an anti-pattern
can you say what type are you actually trying to serialize?
Robert Stiff
@uatec
why is it an antipattern for persistence?
Bartosz Sypytkowski
@Horusiath
@uatec Hyperion should not be used for persistence for several reasons:
  1. Most important it's still in beta and its binary format is unstable - it can be changed in the future. This means, that if you upgrade Hyperion library to newer version, you may be not able to deserialize your data any longer.
  2. It uses a schema, but it's not defined explicitly like ie. in case of protobuf or msgpack. This means that if you shuffle order of the fields in your class, you may not be able to deserialize them any longer, or even worse i.e. deserialize value of field X as value of field Y- no error will be throw but the state of your data will be corrupted.
  3. It's created for remoting - once we start using more advanced features of hyperion like sessions, some of the payload bytes will be context-dependent i.e. we won't be sending the same object twice over the wire, instead we can send only an identifier to an object we've send previously. It's great for connection-scoped messaging, but it will break in case of persistence.
ziya
@mtmk
Hey guys. Just created a simple cluster example using docker etc: https://github.com/mtmk/akkadotnetexamples/tree/master/containerized I'd really appreciate if anyone gives it a quick whirl and feedback.. thank you :smile:
Ronny Carlansson
@lessismore1
@Horusiath will not use it - was for testing purposes only :) Good info on hyperion!
Tried ImmutableSortedDictionary as part of actor state. Default serializer and hyperion gave same error :( Test over now, but thanks ... :)
The reason was that I noticed use of it in Akka.DistributedData
Ronny Carlansson
@lessismore1
@Horusiath old post from Aaron led me to believe that hyperion was the right choice for immutables AND persistence:
Akka.NET Near-Term Roadmap
no. 3 was new to me!