** Description changed:
Ansible raises an exception when running list plugin:
Version: 2.5.1+dfsg-1ubuntu0.1+esm3
$ ansible -vvv -m debug -a msg="{{lookup('list', 'junk')|zip}}" localhost
ansible 2.5.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/vyom/.ansible/plugins/modules',
u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Nov 21 2024, 12:09:09) [GCC 7.5.0]
Using /etc/ansible/ansible.cfg as config file
Parsed /etc/ansible/hosts inventory source with ini plugin
[WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'
META: ran handlers
The full traceback is:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py",
line 138, in run
res = self._execute()
File "/usr/lib/python2.7/dist-packages/ansible/executor/task_executor.py",
line 503, in _execute
self._task.post_validate(templar=templar)
File "/usr/lib/python2.7/dist-packages/ansible/playbook/task.py", line 260,
in post_validate
super(Task, self).post_validate(templar)
File "/usr/lib/python2.7/dist-packages/ansible/playbook/base.py", line 387,
in post_validate
value = method(attribute, getattr(self, name), templar)
File "/usr/lib/python2.7/dist-packages/ansible/playbook/task.py", line 268,
in _post_validate_args
args = templar.template(value)
File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line
535, in template
disable_lookups=disable_lookups,
File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line
491, in template
disable_lookups=disable_lookups,
File "/usr/lib/python2.7/dist-packages/ansible/template/__init__.py", line
727, in do_template
res = j2_concat(rf)
File "<template>", line 12, in root
File "/usr/lib/python2.7/dist-packages/ansible/utils/unsafe_proxy.py", line
91, in __iter__
return (cls(c) for c in super(AnsibleUnsafeText, self).__iter__())
AttributeError: 'super' object has no attribute '__iter__'
localhost | FAILED! => {
"msg": "Unexpected failure during module execution.",
"stdout": ""
}
The problem is: AttributeError: 'super' object has no attribute
'__iter__'
This works fine on non esm version:
Version: 2.5.1+dfsg-1ubuntu0.1
$ ansible -vvv -m debug -a msg="{{lookup('list', 'junk')|zip}}" localhost
ansible 2.5.1
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/home/vyom/.ansible/plugins/modules',
u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/dist-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.17 (default, Nov 21 2024, 12:09:09) [GCC 7.5.0]
Using /etc/ansible/ansible.cfg as config file
Parsed /etc/ansible/hosts inventory source with ini plugin
[WARNING]: provided hosts list is empty, only localhost is available. Note
that the implicit localhost does not match 'all'
META: ran handlers
localhost | SUCCESS => {
"msg": "<itertools.izip object at 0x7f1f2c3b55f0>"
}
META: ran handlers
META: ran handlers
- Thanks Martin Hutchins <[email protected]> for the bug report.
+ Thanks Martin Hutchins for the bug report.
Analysis:
This relates to the fix for CVE-2023-5764. The patch file doesn't
support python2. MRO for the affected class: (AnsibleUnsafeText,
unicode, AnsibleUnsafe, object) and none of these classes have a
__iter__ method in python 2.7.17
https://github.com/ansible/ansible/commit/7239d2d371bc6e274cbb7314e01431adce6ae25a#diff-65f6e2e7666c65b61d2dd334ca36e459e04854c3dc040e91c870886d01ce7aa7
Although the source code has logic for supporting older python versions
(and syntax also indicates similar support):
https://github.com/ansible/ansible/blob/7239d2d371bc6e274cbb7314e01431adce6ae25a/lib/ansible/module_utils/six/__init__.py#L49-L62
While it's setup.cfg doesn't: python_requires = >=3.9. So it's hard to
classify this as an upstream patch bug.
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2097504
Title:
Ansible raises exception while invoking list plugin
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-pro/+bug/2097504/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs