Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple relay instances #1780

Open
gkc opened this issue Mar 3, 2025 · 3 comments
Open

Multiple relay instances #1780

gkc opened this issue Mar 3, 2025 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@gkc
Copy link
Contributor

gkc commented Mar 3, 2025

Is your feature request related to a problem? Please describe.

Ensure that multiple instances of a given relay (srvd) can run concurrently

Describe the solution you'd like

Ensure that multiple instances of a given relay (srvd) can run concurrently

Describe alternatives you've considered

No response

Additional context

No response

@gkc gkc added the enhancement New feature or request label Mar 3, 2025
@gkc gkc self-assigned this Mar 3, 2025
@gkc
Copy link
Contributor Author

gkc commented Mar 3, 2025

@cconstab I've run tests with latest versions and this appears to work just fine. I searched for a ticket which described the issue which was previously noted (I think by you) but could not find it.

I will try earlier releases of the clients to see if they had a problem or not

@gkc
Copy link
Contributor Author

gkc commented Mar 3, 2025

The issue occurs with releases 5.0.2, 5.2.0 and 5.5.0

Technically the underlying issue (a race condition) exists in the current version also, although I can't make it affect a session.

I will fix the race condition; however, this obviously won't change existing clients in the field, therefore I will need to make changes on the srvd side as well. The simplest path is to use a server-side mutex

  • implement this enhancement to atProtocol
  • modify srvd so that when it receives a request it attempts to create an immutable key
  • if it succeeds then it handles the session; if not then it doesn't try to handle the session

@cconstab Any other ideas?

@gkc
Copy link
Contributor Author

gkc commented Mar 3, 2025

2 SP for the srvd changes and testing. Most of the effort was in the implementation of atsign-foundation/at_protocol#65

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant