-
Notifications
You must be signed in to change notification settings - Fork 12
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
Runner
doesn't pick up config and code changes until restarted
#155
Comments
Thanks @janosh for this issue. Indeed, this may not be described in the documentation. I understand it could indeed be a use case and that the runner could regularly check if the config has been updated. We already though about this and discussed with @gpetretto but I remember there were a few tricky things. What are the things in the project config you'd like to update dynamically ? I guess it's the exec_config ? or is it something else ? maybe the workers ? Thing is what if someone modifies the stores (maybe by mistake). That would be quite problematic and the database could end up in an inconsistent state. If this dynamical reload is done, there should be some checks on what can be reloaded from the project and maybe the runner should stop itself if something "not allowed" has changed In any case, we should at least document this more clearly |
in my case both the pre_run: &pre_run |
module purge
module load slurm/stage openmpi/stage vasp/stage
export ATOMATE2_VASP_CMD="srun vasp_std"
echo "slurm job with id $SLURM_JOB_ID started at $(date +"%Y-%m-%d %H:%M:%S %Z") on $(hostname) running '$ATOMATE2_VASP_CMD'"
post_run: &post_run |
echo "slurm job ended at $(date +"%Y-%m-%d %H:%M:%S %Z")" but also the database connection info for the |
Ok so it's not really about production, it's really about when you have to set up your project. Maybe then instead of using the daemon runner you could use the "foreground" runner using |
that would very helpful! something like jf runner start --debug
# or
jf runner start --dev to show the runner's logs directly in stdout |
Well actually I just checked (I wasn't sure about this), if you use |
Hi @janosh,
In any case, if the automatic update would be preferable it can be indeed implemented as an option, as suggested by @janosh. |
thanks for all this helpful context @gpetretto. i'll be definitely be using
having a separate docs page for the
another good place would be in the CLI help of
point taken! though i would argue that if you've made some changes, forgot to restart the runner and then run off to a meeting and come back to check results, it doesn't matter so much if the new config starts to take effect 1 min sooner or later but rather that it was used at all |
when i modify
some-project.yaml
config file, the changes are not picked up by current or new calculations that start after those changes were made until theRunner
is killed and restarted. the same is true for direct changes to Python code (e.g. injf-remote
,qtoolkit
,jobflow
,atomate2
). while i can see this being a feature in that it ensures homogeneous settings until you deliberately restart theRunner
, it wasn't clear to me when i started usingjf-remote
and took at least an hour to figure out. ideally, this should be clearly documented somewhere (apologies if it is already and i missed it). another option to consider would be to make this configurable in~/.jfremote.yaml
static
mode would be the current behavior whilereload-config
would reload thesome-project.yaml
once a minute or so.reload-code
i'm less sure is worth implementing as it's more of an edge case and might be a can of worms to get working reliably. in casereload-config
also goes against thejobflow-remote
design philosophy, feel free to consider this issue as only a suggestion for more documention.The text was updated successfully, but these errors were encountered: