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

Server version of Hercules #10

Open
wants to merge 119 commits into
base: master
Choose a base branch
from

Conversation

marcopioppini
Copy link

This changes Hercules from a 1 transfer at-a-time tool to a long-running server.

Copy link

@aaronbojarski aaronbojarski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Marco for opening this PR!
I looked through the documentation (and only the documentation) and found a few typos.
Note that I commented on the Markdown files instead of the manual files as they were easier to read. So probably you will update the manual files and then just rebuild the Markdown files.

Hope this helps.

doc/hercules.conf.5.md Outdated Show resolved Hide resolved
doc/hercules.conf.5.md Outdated Show resolved Hide resolved
doc/hercules.conf.5.md Outdated Show resolved Hide resolved
doc/hercules-server.1.md Outdated Show resolved Hide resolved
doc/hercules-monitor.1.md Outdated Show resolved Hide resolved
README.md Outdated Show resolved Hide resolved
spotted by Aaron, thanks!
@@ -0,0 +1,3 @@
You may use the service files provided here to run hercules via systemd.
Make sure to replace the executable path and working directory according to your installation and copy the files to the appropriate location on your system.
The files should take care of starting and stopping the hercules server and monitor together.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The files should take care of starting and stopping the hercules server and monitor together.

Do we document the inter-dependencies? The hercules-server relies on the monitor to get paths, but why would it be an issues for example to restart the hercules-server without also restarting the monitor? The monitor doesn't reconnect?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They should not be restarted independently, as mentioned in the main readme.
Unfortunately, I did not get around to implementing this. Currently there are two main issues:
Because the server always sends requests to the monitor and waits for the reply (blocking), if you were to restart the monitor at the wrong time (before it was able to answer a pending request), the server could get stuck. Also, restarting only one of the two may mess up their shared state (which transfer ids exist, what transfers do they refer to, what state are they in, etc.).

Dockerfile Outdated Show resolved Hide resolved
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.

3 participants