Eliminate possible race condition in async_wrapper where ansible deletes the argsfile while the module
is still kicking off. Should not happen except in modules that are somewhat slow to load and probably can be fixed better than the included sleep, i.e. some IPC communication that the process has launched and is ok to exit. This works pretty well for now though.
This commit is contained in:
parent
dca511fa35
commit
a3bd951bfb
2 changed files with 12 additions and 6 deletions
|
@ -134,6 +134,11 @@ if pid != 0:
|
|||
# print "RETURNING SUCCESS IN PARENT"
|
||||
print json.dumps({ "started" : 1, "ansible_job_id" : jid, "results_file" : log_path })
|
||||
sys.stdout.flush()
|
||||
# we need to not return immmediately such that the launched command has an attempt
|
||||
# to initialize PRIOR to ansible trying to clean up the launch directory (and argsfile)
|
||||
# this probably could be done with some IPC later. Modules should always read
|
||||
# the argsfile at the very first start of their execution anyway
|
||||
time.sleep(1)
|
||||
sys.exit(0)
|
||||
else:
|
||||
# the kid manages the job
|
||||
|
|
13
yum
13
yum
|
@ -265,13 +265,14 @@ def remove_only(pkgspec):
|
|||
def main():
|
||||
# state=installed pkg=pkgspec
|
||||
# state=removed pkg=pkgspec
|
||||
# list=installed
|
||||
# list=updates
|
||||
# list=available
|
||||
# list=repos
|
||||
# list=pkgspec
|
||||
# update="args"?
|
||||
# state=latest pkg=pkgspec
|
||||
#
|
||||
# informational commands:
|
||||
# list=installed
|
||||
# list=updates
|
||||
# list=available
|
||||
# list=repos
|
||||
# list=pkgspec
|
||||
|
||||
if len(sys.argv) == 1:
|
||||
msg = "the yum module requires arguments (-a)"
|
||||
|
|
Loading…
Reference in a new issue