-
Notifications
You must be signed in to change notification settings - Fork 0
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
Spawner upgrade fabric #9
Conversation
Fabric3 is an unauthorized fork of the main fabric project. It was originally forked to add python3 support, but the main fabric project now supports python3 and also has gone through a significant rewrite. The motivation for upgrading, besides the fact that Fabric3 is deprecated and no longer supported, is the fact that fabric is thread-safe, providing better support for concurrency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@arthurian, this looks great. Thanks for being thorough. I am commencing testing this on the dssg cluster, after which we can merge the PR should no problems present themselves. I notice that there are a few other places in the CloudJhub codebase where "fabric" is mentioned. Looks like modification will be needed here and here. That can be work for another PR given the focus right now is on the spawner.
@joshuagetega Great point about the other instances of fabric being used by |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me. I don't have a lot to add here.
@arthurian, oh, yes, you are right. Merging... |
Just realized this PR does not show I approved it, even though I have. I was to select the "Approve" option. Only remembering now, post-merging. At any rate, this comment is to indicate that I have approved the pull request. |
This PR upgrades from Fabric3 v1.14.post1 to Fabric v2.5. The goal is to swap the old fabric
run()
andsudo()
calls for the new ones, without changing the functionality.The main reason for upgrading, is the fact that the latest version of fabric is thread-safe. This is important for the spawner, because fabric calls are submitted to a thread pool and executed asynchronously. It's not clear that the v1.x forked version of fabric is actually thread-safe, and some intermittent issues that have cropped up when the system is under load may be related to this.
Additional Notes:
This is branched fromspawner-logging
. The expectation is that oncespawner-logging
has been merged intodevelop
, then this PR can be updated so that the diff will show just the fabric-related updates.Upgrading:
I've used the name
fabric2
instead of plain oldfabric
intentionally (this is documented in the upgrade guide), that way we can be sure that an error will occur if fabric2 is not actually installed, and also so it can exist alongside code that has not been migrated yet (e.g. code still importingfabric
).@joshuagetega @dodget