-
Notifications
You must be signed in to change notification settings - Fork 199
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
incompatible with regpg Ansible plugin #554
Comments
It's due to the double call to I think the correct behaviour will be to return the existing directory in the second call: Ansible internally only tracks one directory, so having multiple would cause others not to be deleted. This is a real easy fix, I just need to double check the logic above :) Thanks for reporting this! |
Thanks! My understanding of Ansible's internals is rather murky, but the impression I got from all the |
The default _make_tmp_path keeps a note of the last generated directory name in the 'shell' plugin, and some magical handling is attached to that particular name. This stuff continues to change rapidly across versions (2.7 featured more work to it IIRC). Regardless, your plugin worked previously and it needs to work again, as there will be more unreported cases just like this. Looks like returning the same path twice is definitely incorrect, if it wants to keep pipelining temp directory removal it needs to try harder, or disable the pipelining behaviour for subsequent make_tmp_path calls |
Ah, I see that the copy and template actions have changed a fair bit in this area since I last looked. I've tried gpg_d with Mitogen with Ansible 2.3 and 2.4 and it works OK. 2.5 is the first version that explodes. |
A first pass at this naturally this broke something :) This may take over the weekend, I won't be around so much for the coming 2 days |
OK, thanks for looking in to it :-) I have some acceptable workarounds for the time being. |
Ansible doesn't do this, so we shouldn't either.
* origin/dmw: issue #554: mitogen_action_script fix issue #554: fix Ansible 2.4 compatibility issue #554: don't rely on tmp_path autoremoval in test. issue #554: track and remove multiple make_tmp_path() calls. docs: update Changelog. docs: drastically simplify install/changelog. issue #552: include process identity in log messages. issue #550: update Changelog.
This is on master and will make it into the next release -- coming real soon! Thanks again for reporting this, and of course, if you're still having issues please reopen |
* origin/026: docs: update Changelog for release. Bump version for release. issue #555: ansible: workaround ancient reload(sys) hack. issue #554: mitogen_action_script fix issue #554: fix Ansible 2.4 compatibility issue #554: don't rely on tmp_path autoremoval in test. issue #554: track and remove multiple make_tmp_path() calls. docs: update Changelog. docs: drastically simplify install/changelog. issue #552: include process identity in log messages. issue #550: update Changelog. issue #550: parent: add explanatory comment. issue #550: fix up TTY ioctls on WSL 2016 Anniversary Update docs: update Changelog. service: make service list optional. docs: update Changelog; closes #548. issue #548: always treat transport=smart as 'ssh' for mitogen_via=. docs: better intro paragraph. .ci: copy private key file to tempdir. os_fork: more doc tweaks os_fork: more doc tweaks os_fork: yet more doc tidyup os_fork: more doc tweaks os_fork: clean up docs .ci: import soak scripts. .ci: allow containers for different jobs to run simultaneously os_fork: python 3 fixes and tests. issue #535: activate Corker on 2.4 in master too. issue #535: update Changelog. issue #535: wire mitogen.os_fork into Broker and Pool. issue #535: parent: add create_socketpair(size=..) parameter. issue #535: introduce mitogen.os_fork module and Corker class. issue #535: docs: update Changelog issue #535: service: support Pool.defer() like Broker.defer() issue #535: core: unicode.encode() may take importer lock on 2.x issue #535: docs: fix up Select doc issue #535: docs: update Changelog. issue #535: core/select: support selecting from Latches. core: increase cookie field lengths to 64-bit; closes #545. tests: ensure serialization restrictions are in effect tests/bench: set process affinity in throughput.py. docs: update copyright year. docs: update Changelog. core: Make Latch.put(obj=) optional. docs: change 'unreleased' Changelog format and add a hint. docs: update Changelog; closes #542. issue #542: return of select poller, new selection logic issue #542: .ci: move some tests to Azure and enable Mac job. ansible: create stub __init__.py for sdist.
I am using ansible 2.7.5 from Debian stretch-backports. Host and target are Debian stretch.
I am using the
regpg
gpg_d
action plugin, which you can get from https://dotat.at/prog/regpg/. It's basically a clone-and-hack of Ansible's copy or template modules. Details of a minimal reproduction setup below. It works without Mitogen, but I might be mis-using the API in a way that is revealed by Mitogen...I have tried Mitogen 0.2.5 (from the git tag) and latest Mitogen master. The error output is below; it occurs (in my code) around https://dotat.at/cgi/git/regpg.git/blob/HEAD:/ansible/action.py#l100
I ran
regpg init ansible; echo foo | regpg encrypt foo.asc
to install the Ansible plugins, set up the regpg keyring, and make a file to be decrypted. I added the Mitogen lines toansible.cfg
. No other setup except for the playbook, which is:ansible-config dump --only-changed
:The text was updated successfully, but these errors were encountered: