Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 17:21
    Aaronontheweb synchronize #4079
  • 17:20
    Aaronontheweb labeled #4084
  • 17:20
    Aaronontheweb labeled #4084
  • 17:20
    Aaronontheweb milestoned #4084
  • 17:20

    Aaronontheweb on dev

    Remove string interpolation fro… (compare)

  • 17:20
    Aaronontheweb closed #4084
  • 17:20
    Aaronontheweb commented #4084
  • 15:43
    ismaelhamed opened #4084
  • Dec 04 23:34

    Aaronontheweb on dev

    Made cleanup call thread-safe (… (compare)

  • Dec 04 23:34
    Aaronontheweb closed #4081
  • Dec 04 23:34
    Aaronontheweb closed #4020
  • Dec 04 19:08
    Aaronontheweb commented #4079
  • Dec 04 18:35
    maratoss review_requested #4079
  • Dec 04 18:26
    maratoss synchronize #4079
  • Dec 04 07:42
    jiyeongj edited #4083
  • Dec 04 06:45
    jiyeongj opened #4083
  • Dec 04 06:35
    dependabot-preview[bot] labeled #130
  • Dec 04 06:35
    dependabot-preview[bot] opened #130
  • Dec 04 06:35

    dependabot-preview[bot] on nuget

    Bump System.Data.SqlClient from… (compare)

  • Dec 03 19:10
    Aaronontheweb synchronize #4081
Alex Gibson
@crucifieddreams
:) thanks
Maxim Cherednik
@maxcherednik
btw Alex, just create an empty cluster without any logic and try to play around with all those edge cases
it helped me a lot
and 1.1.3 is way cleaner in terms of logging.
Alex Gibson
@crucifieddreams
It might be worth upgrading while I am making changes. Thanks for all your help folks.
Aaron Stannard
@Aaronontheweb
@crucifieddreams @maxcherednik akkadotnet/akka.net#2347 would that fix it?
sounds like that's what you need
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.