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

fix(reload): ensure daemon starts, even if reload not required #29

Merged

Conversation

conneryn
Copy link
Contributor

@conneryn conneryn commented Jan 7, 2023

I think I found the cause of #28

Problem:
Calling daemon.Reload() within the sync handler is the only place that the onionbalance service gets launched. The handler only calls "daemon.Reload()" when the configuration file (/run/onionbalance/config.yaml) doesn't exist yet or has changed.

On a fully clean start, this file doesn't exist yet, so the daemon does get started correctly. However, if the container restarts within the pod (but the pod itself isn't re-created), the config.yaml already exists, and so the daemon does not get started.

Solution:
This PR fixes this by adding an additional method "EnsureRunning()" which will start the daemon if it's not already running.

I also added small changes for:

  1. the "Reload" method wasn't implemented quite right, if the service was already running, it just called SIGHUP, but never called start again.
  2. minor refactor to remove the need for the "reload" variable, as it didn't seem necessary

Other considerations:
I noticed that the standard tor service (/agents/tor/local) also has similar logic around reload/start, so there may be a similar issue there that would be worth investigating.

Let me know if there are any changes/improvements I can add to his PR.

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

Successfully merging this pull request may close these issues.

2 participants