Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:53
    Aaronontheweb closed #3972
  • 17:53
    Aaronontheweb commented #3972
  • 17:53
    Aaronontheweb closed #3976
  • 17:53
    Aaronontheweb commented #3976
  • 17:40

    Aaronontheweb on dev

    cleaned up some samples to use … (compare)

  • 17:40
    Aaronontheweb closed #3975
  • 16:33
    IgorFedchenko synchronize #3973
  • 16:31
    IgorFedchenko synchronize #3973
  • 14:04
    wsvdyk opened #3976
  • Oct 14 21:02
    Aaronontheweb synchronize #3975
  • Oct 14 21:02
    Aaronontheweb opened #3975
  • Oct 14 20:11
    IgorFedchenko commented #3973
  • Oct 14 20:10
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 20:06
    IgorFedchenko synchronize #3973
  • Oct 14 19:42
    IgorFedchenko edited #3973
  • Oct 14 18:08
    Aaronontheweb commented #3937
  • Oct 14 17:27
    Aaronontheweb commented #90
  • Oct 14 17:26
    Aaronontheweb commented #90
  • Oct 14 17:25
    Aaronontheweb assigned #90
Natan Vivo
@nvivo
which flags do I turn on?
Aaron Stannard
@Aaronontheweb
akka.loglevel = DEBUG should be enough
it'll show up automatically
otherwise
Natan Vivo
@nvivo
ok, let me try
Aaron Stannard
@Aaronontheweb
that'd be super helpful
because if the issue is still happening and it wasn't fixed by 1.2.1, it means that spec still misses this case
only way I can really investigate is seeing the gossip reports
@nvivo crap, sorry about this
need one more setting turned on
Aaron Stannard
@Aaronontheweb
actually no, you should be good - I take that back
was looking at the wrong thing
these are what I need
[DEBUG][6/20/2017 12:18:25 AM][Thread 0034][[akka://webcrawler/system/cluster/core/daemon#486810864]] [Initialized] Received GossipStatus(from=UniqueAddress: (akka.tcp://webcrawler@127.0.0.1:4053, 40198207), version=VectorClock(akka.tcp://webcrawler@127.0.0.1:12333-1430239033->2, akka.tcp://webcrawler@127.0.0.1:12333-853399868->2, akka.tcp://webcrawler@127.0.0.1:16666-54369554->4, akka.tcp://webcrawler@127.0.0.1:4053-40198207->36, akka.tcp://webcrawler@127.0.0.1:50070-660291545->1, akka.tcp://webcrawler@127.0.0.1:50074-731862939->4, akka.tcp://webcrawler@127.0.0.1:50150-1885380326->1))
[DEBUG][6/20/2017 12:18:27 AM][Thread 0039][[akka://webcrawler/system/cluster/core/daemon#486810864]] [Initialized] Received GossipStatus(from=UniqueAddress: (akka.tcp://webcrawler@127.0.0.1:16666, 54369554), version=VectorClock(akka.tcp://webcrawler@127.0.0.1:12333-1430239033->2, akka.tcp://webcrawler@127.0.0.1:12333-853399868->2, akka.tcp://webcrawler@127.0.0.1:16666-54369554->4, akka.tcp://webcrawler@127.0.0.1:4053-40198207->36, akka.tcp://webcrawler@127.0.0.1:50070-660291545->1, akka.tcp://webcrawler@127.0.0.1:50074-731862939->4, akka.tcp://webcrawler@127.0.0.1:50150-1885380326->1))
[DEBUG][6/20/2017 12:18:27 AM][Thread 0034][[akka://webcrawler/system/cluster/core/daemon#486810864]] [Initialized] Received GossipStatus(from=UniqueAddress: (akka.tcp://webcrawler@127.0.0.1:4053, 40198207), version=VectorClock(akka.tcp://webcrawler@127.0.0.1:12333-1430239033->2, akka.tcp://webcrawler@127.0.0.1:12333-853399868->2, akka.tcp://webcrawler@127.0.0.1:16666-54369554->4, akka.tcp://webcrawler@127.0.0.1:4053-40198207->36, akka.tcp://webcrawler@127.0.0.1:50070-660291545->1, akka.tcp://webcrawler@127.0.0.1:50074-731862939->4, akka.tcp://webcrawler@127.0.0.1:50150-1885380326->1))
[DEBUG][6/20/2017 12:18:29 AM][Thread 0032][[akka://webcrawler/system/cluster/core/daemon#486810864]] [Initialized] Received GossipStatus(from=UniqueAddress: (akka.tcp://webcrawler@127.0.0.1:50252, 260039022), version=VectorClock(akka.tcp://webcrawler@127.0.0.1:12333-1430239033->2, akka.tcp://webcrawler@127.0.0.1:12333-853399868->2, akka.tcp://webcrawler@127.0.0.1:16666-54369554->4, akka.tcp://webcrawler@127.0.0.1:4053-40198207->36, akka.tcp://webcrawler@127.0.0.1:50070-660291545->1, akka.tcp://webcrawler@127.0.0.1:50074-731862939->4, akka.tcp://webcrawler@127.0.0.1:50150-1885380326->1))
and these ones
[DEBUG][6/18/2017 4:05:14 PM][Thread 0029][[akka://MultiNodeClusterSpec/system/cluster/core/daemon#1087194642]] "Couldn't establish a causal relationship between "remote" gossip and "local" gossip - Remote[Gossip(members = [Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, Uid=829060428 status = Up, role=[], upNumber=1), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597, Uid=820594903 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50599, Uid=2023916882 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50601, Uid=2015451357 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50602, Uid=991187801 status = Up, role=[], upNumber=2)], overview = GossipOverview(seen=[UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, 829060428)], reachability=Reachability([akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597, 820594903): Reachable [Reachable] (7)], [akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50602, 991187801): Unreachable [Unreachable] (4)], [akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50601, 2015451357): Unreachable [Unreachable] (6)], [akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50599, 2023916882): Unreachable [Unreachable] (5)])), version = VectorClock(akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594-829060428->15, akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597-820594903->2)] - Local[Gossip(members = [Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, Uid=829060428 status = Up, role=[], upNumber=1), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597, Uid=820594903 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50599, Uid=2023916882 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50601, Uid=2015451357 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50602, Uid=991187801 status = Up, role=[], upNumber=2)], overview = GossipOverview(seen=[UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597, 820594903)], reachability=Reachability([akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50602 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, 829060428): Unreachable [Unreachable] (1)][akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50601 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, 829060428): Unreachable [Unreachable] (1)][akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50599 -> UniqueAddress: (akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, 829060428): Unreachable [Unreachable] (1)])), version = VectorClock(akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594-829060428->12, akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597-820594903->4, akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50599-2023916882->1, akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50601-2015451357->1, akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50602-991187801->1)] - merged them into [Gossip(members = [Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50594, Uid=829060428 status = Up, role=[], upNumber=1), Member(address = akka.trttl.gremlin.tcp://MultiNodeClusterSpec@localhost:50597, Uid=820594903 status = Up, role=[], upNumber=2), Member(address = akka.trttl.gremlin.tcp://M
if I can get those logs from the leader and the node that was stuck
and maybe one other peer in the cluster
that will be very helpful
Natan Vivo
@nvivo
ok
Natan Vivo
@nvivo
Ok, so after some help from @Aaronontheweb I started debugging, and found out the culprit was using the wrong version of akka
A specific node didn't get the correct image for some reason
Lothar Behrens
@lollisoft
Hi, I am new to akka and due to contact at my day job I am also interested in it privately. First question: How secure is akka.tcp based remote communication?
Second question: How to integrate federaded identity and for example WS-Federation (WCF) or OAuth2 and OpenID Connect (REST)?
Stephen Newman
@goodisontoffee
@lollisoft Looks like http://getakka.net/docs/remoting/security makes it possible to leverage TLS if that will help you answer your first question, second question I am afraid I can't help with :)
Nick Cuthbert
@ncthbrt
@lollisoft you probably don't want to integrate authentication/authorization between nodes of your system but rather at the system boundaries (e.g. using asp.net). A properly configured firewall would probably serve you better to protect the nodes in your cluster.
Aaron Stannard
@Aaronontheweb
@lollisoft I agree with @ncthbrt - his advice is good
Akka.NET is more like infrastructure in this case
rather than an end-to-end application framework
doesn't have a built-in concept of user identity or permissions structures
Nick Cuthbert
@ncthbrt
Has anyone used Akkling or the Akka.net F# api? Having trouble with custom persistence
Aaron Stannard
@Aaronontheweb
cc @Horusiath on that one
Bartosz Sypytkowski
@Horusiath
@ncthbrt what problems do you have?
fleed
@fleed

hi everyone

I'd like to use AkkaPersistence.SqlServer. I've created the actors inheriting from ReceivePersistentActor and I can run the application... I don't receive any error, but the database is always empty. Any suggestion? I'm initializing it this way (.NET core app):

            var config = ConfigurationFactory.ParseString(@"
            akka.persistence{
    journal {
        sql-server {
            # qualified type name of the SQL Server persistence journal actor
            class = ""Akka.Persistence.SqlServer.Journal.SqlServerJournal, Akka.Persistence.SqlServer""

# dispatcher used to drive journal actor
            plugin-dispatcher = ""akka.actor.default-dispatcher""

# connection string used for database access
            connection-string = """ + connectionString + @"""

# default SQL commands timeout
            connection-timeout = 30s

# SQL server schema name to table corresponding with persistent journal
            schema-name = dbo

# SQL server table corresponding with persistent journal
            table-name = EventJournal

# should corresponding journal table be initialized automatically
            auto-initialize = on

# timestamp provider used for generation of journal entries timestamps
            timestamp-provider = ""Akka.Persistence.Sql.Common.Journal.DefaultTimestampProvider, Akka.Persistence.Sql.Common""

# metadata table
            metadata-table-name = Metadata

        }
    }

    snapshot-store {
    sql-server {

# qualified type name of the SQL Server persistence journal actor
        class = ""Akka.Persistence.SqlServer.Snapshot.SqlServerSnapshotStore, Akka.Persistence.SqlServer""

# dispatcher used to drive journal actor
        plugin-dispatcher = ""akka.actor.default-dispatcher""

# connection string used for database access
        connection-string = """ + connectionString + @"""

# default SQL commands timeout
        connection-timeout = 30s

# SQL server schema name to table corresponding with persistent journal
        schema-name = dbo

# SQL server table corresponding with persistent journal
        table-name = SnapshotStore

# should corresponding journal table be initialized automatically
        auto-initialize = on
    }
    }
}
          }");
            return services.AddSingleton<IActorRefFactory>(
                provider =>
                    {
                        var actorSystem = ActorSystem.Create("Update", config);
                        var persistence = SqlServerPersistence.Get(actorSystem);
                        return actorSystem;
                    });
Aaron Stannard
@Aaronontheweb
@fleed what version are you using?
ah, I see what the issue might be
in order for the journal et al to be created
you have to actually start one of those persistent actors
since the underlying infrastructure is all instantiated lazily
fleed
@fleed
hi @Aaronontheweb , thank you for answering. I'm using the latest beta package available. Could it be that I need to add the plugin selection (plugin = "akka.persistence.journal.sql-server") as mentioned here https://stackoverflow.com/a/37311122?
fleed
@fleed
actually it seems that adding that plugin line causes the system to fail
Aaron Stannard
@Aaronontheweb
means it's loading it now
I suppose
it's 1:30am my time here, so I'm going to turn in shortly - but if you can post your error message on that SO thread one of us can take a look
fleed
@fleed
thank you @Aaronontheweb , it is ok now
Aaron Stannard
@Aaronontheweb
glad I could help (in whatever small way I could :p )
fleed
@fleed
adding the plugin entry initializes the SqlServer persistence, but VisualStudio had automatically changed sql-server to sql - server, breaking everything
another question is: why do I get an immediate snapshot offer?

this is my constructor for the actor:

this.ActorState.ReferenceIndex = referenceIndex;
            this.ActorState.ContentHash = contentHash;
            this.Settings = settings;
            this.Command<RequestExternalContent>(this.OnRequestExternalContent);
            // other commands here
            this.Recover<SnapshotOffer>(
                offer =>
                    {
                        var state = offer.Snapshot as UnitUpdateActorState;
                        if (state == null)
                        {
                            return;
                        }

                        if (!string.IsNullOrEmpty(state.ContentHash))
                        {
                            this.ActorState.ContentHash = state.ContentHash;
                        }

                        this.ActorState.Content = state.Content;
                        if (state.ReferenceIndex > 0)
                        {
                            this.ActorState.ReferenceIndex = state.ReferenceIndex;
                        }

                        this.ActorState.Timestamp = state.Timestamp;
                        this.ActorState.UnitUpdateRequested = state.UnitUpdateRequested;
                        this.ActorState.UpdateState = state.UpdateState;
                        this.Schedule();
                    });

and state is:

public class UnitUpdateActorState
    {
        public int ReferenceIndex { get; set; }

        /// <summary>
        /// Gets or sets the timestamp.
        /// </summary>
        public DateTimeOffset Timestamp { get; set; }

        /// <summary>
        /// Gets or sets the unit update requested.
        /// </summary>
        public UnitUpdateRequested UnitUpdateRequested { get; set; }

        public UpdateContent Content { get; set; }

        public string ContentHash { get; set; }

        public UnitUpdateState UpdateState { get; set; }

        public string GetName()
        {
            return new UnitUpdateActorName(this.UnitUpdateRequested.UpdateId, this.UnitUpdateRequested.UnitId).Build();
        }
    }
fleed
@fleed
the problem is:
I initialize the constructor with a string for contentHash and an integer higher than 0 for referenceIndex... but immediately after the construction I get a snapshot offer where the ContentHash is ok, but the ReferenceIndex is 0