You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am automating seamless DANE support after acmetool, and this process triggers a sequence of simple atomic and idempotent actions with its own timing. This raises concerns about atomicity of the /var/lib/acme/live directory contents. Multiple files cannot be written all at the same time, and concurrent programs might interact and see half-way results.
I therefore started wrapping acmetool with a voluntary lock, using flock(). I use the same lock for the scripts that work with /var/lib/acme.
I think it is generally a good idea to use flock() in the tool itself, precisely because it is a command that runs as a cronjob and occasionally at the user's request. There should be no interference between any two calls of the tool and, given the neat documentation of the /var/lib/acme directory, it would be good if any other tools could follow a compatible practice.
The text was updated successfully, but these errors were encountered:
I am automating seamless DANE support after
acmetool
, and this process triggers a sequence of simple atomic and idempotent actions with its own timing. This raises concerns about atomicity of the/var/lib/acme/live
directory contents. Multiple files cannot be written all at the same time, and concurrent programs might interact and see half-way results.I therefore started wrapping
acmetool
with a voluntary lock, usingflock()
. I use the same lock for the scripts that work with/var/lib/acme
.I think it is generally a good idea to use
flock()
in the tool itself, precisely because it is a command that runs as a cronjob and occasionally at the user's request. There should be no interference between any two calls of the tool and, given the neat documentation of the/var/lib/acme
directory, it would be good if any other tools could follow a compatible practice.The text was updated successfully, but these errors were encountered: