Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 11:49
    IgorFedchenko commented #4085
  • 10:31
    IgorFedchenko commented #4085
  • 08:36
    IgorFedchenko commented #4085
  • 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
Maxim Cherednik
@maxcherednik
Maybe, but I am not sure :)
Alex Gibson
@crucifieddreams
Looks promising, certainly it was an issue I wasn't aware of. I am just running some tests to see if that is the problem I am seeing.
Aaron Stannard
@Aaronontheweb
In this state it doesn't leave cleanly. It tries to, I have a monitor running in all service discovery nodes (2 of them). They both report the cluster status that they see. When this problem happens the cluster status us everything UP and everything Seen. The leader gets the request that the node is exiting and this is logged every second that it is moving the node to exiting but it never exits.
whoops
there we go
so I've suspected that we have an issuer with MemberRemoved not firing correctly
I've not been sure under what circumstances this occurs
no idea if that report gets shown to guests or not
but either way, this is the flaky test report for
ClusterSpec.A_cluster_must_complete_LeaveAsync_task_upon_being_removed
that information you just mentioned is very helpful. Confirms for me that this is a bug.
that under some circumstances, the MemberRemoved event is not received or processed correctly
if you have some logs from that situation you described, that would be helpful
Aaron Stannard
@Aaronontheweb
opened an issue, #2492
Alex Gibson
@crucifieddreams
I'll gather up some logs of what we see and post them on the issue log. Thanks!
Thomas Tomanek
@thomastomanek
#2491 has been opened btw
Chris Ochs
@gamemachine
so back trying to debug why distributedpubsub isn't working for me. basically after some time period publish just stops working. I enabled DEBUG logging and for a while I see 'Received Akk.Cluster.GossipStatus' messages, and then it just stops after some time, and that's when publish stops working also
Chris Ochs
@gamemachine
so more testing it looks like the connection is coincidental
Chris Ochs
@gamemachine
so it looks like possibly some bad logic in pruning. If I bump up pub-sub.removed-time-to-live the issue seems to go away. So what I was seeing is that pubsub worked until I unsubscribed from a topic, and that seemed to start a countdown where at the end, I couldn't publish to any topic. It's like the topic just isn't there anymore.
but you also can't resub to it either, it's like when it gets pruned it's then in a bad state where it's just not functional at all anymore
Aaron Stannard
@Aaronontheweb
@gamemachine would you mind capturing this in an issue?
can take a look at the pruning logic and see what's up there
but outlining the steps you took to produce the error and the behavior you've observed would be valuable to capture
Chris Ochs
@gamemachine
not at all, but given it seems time based it's difficult to debug without running from source.
Aaron Stannard
@Aaronontheweb
we push our .PDBs to symbol source
so you should, in theory, be able to do step-through debugging, but yeah
that's kind of an impractical way to do it given that step-through won't hit
all of the concurrent and async stuff
happening in the background over the network
Chris Ochs
@gamemachine
ya guess I'm kind of old school, I like to just look at where I think it is, put in some logging, rinse repeat until I narrow it down
anyways I'll file ticket a bit later, this has been haunting me for a while
Chris G. Stevens
@cgstevens
Question. I have multiple members that do work and have a common status to report back to a managing dashboard that is is also a member part of the cluster using the Cluster.Tools with PubSub. That is simple with an Interface and Publish to my Topic. My problem is I have details that are unique now for each worker. What is a good approach? Before I was sending just a object with simple common stats but now my classes that have those extra properties outside of the interface are null. Before I go down any rabbit holes I figure I would ask. Thank you so much in advanced.
Chris G. Stevens
@cgstevens
Can you have an immutable object that has a dynamic property? Hmm
Chris Karcz
@ckarcz
Hi guys. I have a question. I have some legacy code I'd like to run in a distributed manner (cluster). I'd like to deploy a small service (w/ Actor) that creates its own supervised cluster that it distributes work to (group). I'd like to be able to create these child actors in their own AppDomains. The legacy code is not threadsafe and so I'd like to host these child actors in their own app domain. What's the best way to go about this? I'd like to have one main process that spawns these children (deploying remote actors in their own app domain would be great features too
My thoughts being I deploy one instance of the service (a group router), and its either configured to spawn x children in their own appdomain on startup (or like i mentioned above, it starts up and these children are remotely deployed from else where, in their own app domains). Is there a way to hook into remote/router child creation to take over the creation in oder to initialize child in separate appdomain?
Maciej Wódke
@mwpro

Hi everyone! I'm struggling with extending class for already persisted messages. I added new field, new messages are serializing propeply but when I try to recover my actor I receive

Persistence failure when replaying events for persistenceId [someId]. Last known sequence number [8]", "timestamp": "2017-01-31 09:30:05.9723", "stack": "System.InvalidCastException: Okre\u015blone rzutowanie jest nieprawid\u0142owe.\r\n   w lambda_method(Closure , Stream , DeserializerSession )\r\n   w Hyperion.ValueSerializers.ObjectSerializer.ReadValue(Stream stream, DeserializerSession session)\r\n   w Hyperion.Serializer.Deserialize[T](Stream stream)\r\n   w Akka.Serialization.HyperionSerializer.FromBinary(Byte[] bytes, Type type)\r\n   w Akka.Persistence.Sql.Common.Journal.AbstractQueryExecutor.ReadEvent(DbDataReader reader)\r\n   w Akka.Persistence.Sql.Common.Journal.AbstractQueryExecutor.<SelectByPersistenceIdAsync>d__44.MoveNext()\r\n--- Koniec \u015bladu stosu z poprzedniej lokalizacji, w kt\u00f3rej wyst\u0105pi\u0142 wyj\u0105tek ---\r\n   w System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n   w System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   w Akka.Persistence.Sql.Common.Journal.SqlJournal.<ReplayMessagesAsync>d__32.MoveNext()" }

According to Hyperion's documentation, it's version tolerant, so as far as I understand this therm, it means I should be able to add/remove field to the contract. I created simple project https://github.com/mwpro/Hyperion-VerionTolerance that reproduces my issues. Can you guys look at it please and tell me if I am doing something wrong or if there is some king of bug with version tolerance?

Bartosz Sypytkowski
@Horusiath
@mwpro using default serializer for persistence is generally a bad idea (Hyperion was created for remoting in mind)
until it gets to 1.0, binary encoding may change anyway
I'll take a look at it later, it may be a sign of a bug in the implementation
Maciej Wódke
@mwpro
@Horusiath thanks for reply. So I should switch my app to another serializer like ProtoBuf or MS Bond (as suggested in Hyperion docs) to avoid versioning problems. From your experience, is any of them is ready for production use with Akka.Persistence?
Bartosz Sypytkowski
@Horusiath
yes, I'd consider protobuf and ms bond a pretty mature options - I'm a fan of having well-defined schema files, as they make your data contracts explicit, so you can version them in explicit way too. But tbh you need to test yourself. Maybe simple json serializer will be enough for you.
also remember, that serialization sometimes depends on persistent provider you're going to use (i.e. MongoDB uses custom bson-based, Postrgres can be configured to use jsonb column type)
Alex Michel
@amichel
@ckarcz Why would you bother with appdomain and not just run separate processes? You will need remoting anyway, so it will be transparent with Akka to have them in different cluster nodes on same or separate machines.
Alex Michel
@amichel
@cgstevens will sending collections work for you? send lists of key/value tuples if you want to work loosely typed.
if you want strongly typed messaging, consider encapsulation
Nick Cuthbert
@ncthbrt
I was watching this NDC video, and the presenter was running 5 identical nodes of an actor systems on a single machine: https://vimeo.com/189191045
What advantages would this give you if any?
Chris G. Stevens
@cgstevens
Thanks @amichel I think the KeyValue will work just fine for what I need and I think I have a plan.
Jose Carlos Marquez
@oeaoaueaa
@ncthbrt maybe queuing and concurrency control?
Chris Karcz
@ckarcz
For my question- My thinking is that the parent actor can have children and monitor them as akka normally supports, the only difference being them running in a separate app domains. If one app domain crashes or runs out of memory (remember this is old legacy code) it would not affect the others and the parent would hopefully be able to restart a new child in a new app domain and retry. It'd also be easy to spawn child actors from configuration/message/code instead of deploying more instances of a service/package to the same machine, which when using a CD tool (octopus/xldelploy) is not straightforward.
Maxim Cherednik
@maxcherednik
To deploy an extra node is not that complicated with octopus.
What you are asking is doable, but separate machine is cleaner I guess.