These are chat archives for akkadotnet/akka.net

9th
Oct 2017
carnogursky
@carnogursky
Oct 09 2017 04:54
@Horusiath Thank you. Please, could you give me some more detailed hint? I do not know how TslHandler in DotNetty works...
Bartosz Sypytkowski
@Horusiath
Oct 09 2017 05:19
@carnogursky this is a pretty complex stuff, I'm not sure if you want to dig deep into it. TLS needs its handshaking and secure stream handled - so far, only mature API for SSL in .NET is SslStream. However in akka actors and IO streams talks via ByteString. Because of that we need an adapter stream between actor and SslStream.
carnogursky
@carnogursky
Oct 09 2017 05:24
@Horusiath It looks like DotNetty has a solution, which can be implemented easier? Had checked theis examples of server, you suggested it coulf be implemented as Actor?
Bartosz Sypytkowski
@Horusiath
Oct 09 2017 05:26
DotNetty has a solution, but it's easier only if you want to use DotNetty directly
jalchr
@jalchr
Oct 09 2017 13:18
@Horusiath in DistributedData ... why would a 'Get' operation throw exception rather than returning null for a specific key ?
2017-10-09 01:17:37,203 [71] ERROR Akka.Actor.OneForOneStrategy - One or more errors occurred.
System.AggregateException: One or more errors occurred. ---> Akka.DistributedData.DataDeletedException: Cannot retrieve data under key [146324.mpg]. It has been permanently deleted and the key cannot be reused.
   at Akka.DistributedData.DistributedData.<GetAsync>d__13`1.MoveNext()
   --- End of inner exception stack trace ---
   at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)
   at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification)
   at System.Threading.Tasks.Task`1.get_Result()
   at Archive.VideoProcessing.Akka.VideoProviderWatcherActor.<Watch>b__10_4(FileFinished msg)
   at lambda_method(Closure , Object , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 , Action`1 )
   at Akka.Tools.MatchHandler.PartialHandlerArgumentsCapture`11.Handle(T value)
   at Akka.Actor.ReceiveActor.ExecutePartialMessageHandler(Object message, PartialAction`1 partialAction)
   at Akka.Actor.ReceiveActor.OnReceive(Object message)
   at Akka.Actor.UntypedActor.Receive(Object message)
   at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
   at Akka.Actor.ActorCell.ReceiveMessage(Object message)
   at Akka.Actor.ActorCell.Invoke(Envelope envelope)
---> (Inner Exception #0) Akka.DistributedData.DataDeletedException: Cannot retrieve data under key [146324.mpg]. It has been permanently deleted and the key cannot be reused.
   at Akka.DistributedData.DistributedData.<GetAsync>d__13`1.MoveNext()<---
Stijn Herreman
@stijnherreman
Oct 09 2017 14:36
@alexvaluyskiy any idea if it's possible to have packages that can target netstandard1.6 (like Akka.Remote), additionally also target netstandard2.0? The NETStandard.Library 1.6 package is a meta package and suffers from dependency bloat (few dozen dependencies), this was fixed in the 2.0 package. Since my application targets net461, I managed to work around this by first manually installing NETStandard.Library 2.0 and then updating Akka.Remote.
But probably not every users realises they can do this, so perhaps it's possible to help them out. I'm not sure though if NuGet is smart enough to pick the highest possible target, when installing a package (e.g. it should pick netstandard2.0 if possible, over netstandard1.6)
Bartosz Sypytkowski
@Horusiath
Oct 09 2017 14:53
@jalchr
  1. null should be returned in v1.3.1
  2. DistributedData methods are meant to be used outside actor context, inside actors using traditional message passing is a lot faster. Also message based API is bigger and gives more power i.e. you can subscribe to receive updates of target CRDT as they come.
  3. Keep in mind that DistributedData is not meant for high volume of data. If you want to use it for message delivery, you may eventually run out of memory.