apple / swift-distributed-actors

Peer-to-peer cluster implementation for Swift Distributed Actors
https://apple.github.io/swift-distributed-actors/
Apache License 2.0
580 stars 54 forks source link

ClusterControl.joined should cause joining; fix waiting issues #1122

Closed ktoso closed 1 year ago

ktoso commented 1 year ago

bug: We wrongly waited on the self.node to become up but should wait for the other node in joined(node:)

improvement: We should initiate joining when not already trying to and someone asks try await joined(node:) since the equivalent join() makes it seem like joined would do this as well

ktoso commented 1 year ago

The failure is ClusterSingletonPluginClusteredTests.test_singletonByClusterLeadership_withLeaderChange and I've actually been looking into it now, may solve. It's a bit tricky coming back to this after a while, but I'll figure it out -- it's an unexpected dead letter :)

Unrelated to the PR though.

https://github.com/apple/swift-distributed-actors/issues/1123

ktoso commented 1 year ago

Failed: https://github.com/apple/swift-distributed-actors/issues/1124 needs investigation

ktoso commented 1 year ago

This improves things but we definitely still have some issues to look into here, I'll schedule time to work on those consistently now.