Trying Real Hard to set up remote deployment, nailed it locally using the existing examples but now trying to work between two machines.. finally getting closer and seeing this:
on the "local" system, which is actually an azure box:
let aref =
spawnRemote localSystem "akka.tcp://ryans-house@*ryan's house's ip*:54053/" "hello"
<@ actorOf (fun msg -> printfn "received '%A'" msg) @>
aref <! "sup"
seen in the log of the "remote" system, my house:
[ERROR][8/08/2015 1:56:14 AM][Thread 0020][[akka://ryans-house/system/endpointManager/reliableEndpointWriter-akka.tcp%3a%2f%2fryans-cloud%40*the cloud ip*%3a54053-1/endpointWriter]] AssociationError [akka.tcp://ryans-house@*the house ip*:54053] <- akka.tcp://ryans-cloud@*the cloud ip*:54053: Error [Error deserializing object of type 'System.Object'.] [ at Nessos.FsPickler.RootSerialization.readRootObject[T](IPicklerResolver resolver, ReflectionCache reflectionCache, IPickleFormatReader formatter, FSharpOption`1 streamingContext, FSharpOption`1 sifted, Pickler`1 pickler) in c:\Users\eirik\Development\nessos\FsPickler\src\FsPickler\FsPickler\RootSerialization.fs:line 61
at Nessos.FsPickler.FsPicklerSerializer.Deserialize[T](Stream stream, FSharpOption`1 pickler, FSharpOption`1 streamingContext, FSharpOption`1 encoding, FSharpOption`1 leaveOpen) in c:\Users\eirik\Development\nessos\FsPickler\src\FsPickler\FsPickler\Serializer.fs:line 65
at Akka.FSharp.Serialization.deserializeFromBinary[t](BinarySerializer fsp, Byte[] bytes) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.FSharp\FsApi.fs:line 352
at Akka.FSharp.Serialization.ExprSerializer.FromBinary(Byte[] bytes, Type _arg1) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.FSharp\FsApi.fs:line 361
at Akka.Remote.Serialization.DaemonMsgCreateSerializer.Deserialize(ByteString bytes, Type type) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\Serialization\DaemonMsgCreateSerializer.cs:line 51
at Akka.Remote.Serialization.DaemonMsgCreateSerializer.GetArgs(DaemonMsgCreateData proto) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\Serialization\DaemonMsgCreateSerializer.cs:line 172
at Akka.Remote.Serialization.DaemonMsgCreateSerializer.FromBinary(Byte[] bytes, Type type) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\Serialization\DaemonMsgCreateSerializer.cs:line 117
at Akka.Serialization.Serialization.Deserialize(Byte[] bytes, Int32 serializerId, Type type) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka\Serialization\Serialization.cs:line 106
at Akka.Remote.MessageSerializer.Deserialize(ActorSystem system, SerializedMessage messageProtocol) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\MessageSerializer.cs:line 31
at Akka.Remote.DefaultMessageDispatcher.Dispatch(IInternalActorRef recipient, Address recipientAddress, SerializedMessage message, IActorRef senderOption) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\Endpoint.cs:line 59
at Akka.Remote.EndpointReader.OnReceive(Object message) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka.Remote\Endpoint.cs:line 1569
at Akka.Actor.UntypedActor.Receive(Object message) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka\Actor\UntypedActor.cs:line 21
at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka\Actor\ActorBase.cs:line 155
at Akka.Actor.ActorCell.ReceiveMessage(Object message) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka\Actor\ActorCell.DefaultMessages.cs:line 125
at Akka.Actor.ActorCell.Invoke(Envelope envelope) in C:\Users\rdavis\Source\Repos\akka.net\src\core\Akka\Actor\ActorCell.DefaultMessages.cs:line 55]
Cause: Unknown
I think it means the message made it over, but things went bad trying to unpack it. Given that it works using Akka.Remote within the same process, maybe there is something different about the states of the two environments that could cause it? Has anyone seen this before? The hint being Error [Error deserializing object of type 'System.Object'.]
let rec loop
style actor deployment and messing up the continuation signature like I was this morning :-1:
"Binding session to {google protocol buffers dll}"
on the receiving end log when a message should have come through, is that what you would expect to see in the case of a version mismatch?
PersistentView
actor is created it won't respond on any custom messages until it fully and successfully recovers.
E:\Source\akka.net\src\core\Akka.MultiNodeTestRunner\bin\Debug>Akka.MultiNodeTestRunner.exe Akka.MultiNodeTests.dll -Dmultinode.enable-filesink=off -Dmultinode.test-spec="Akka.MultiNodeTests.ClusterConsistentHashingGroupSpec.AClusterRouterWithConsistentHashingGroupMustSendToSameDestinationsFromDifferentNodes"
system.Tcp()
without it going infinite loop
namespace Proto1.Client
{
using Akka.Actor;
using Akka.IO;
using System;
class Program
{
static void Main(string[] args)
{
var system = ActorSystem.Create("proto1");
var manager = system.Tcp(); //this causes 100% CPU
Console.ReadLine();
}
}
}