amazonlinux / amazon-linux-2023

Amazon Linux 2023
https://aws.amazon.com/linux/amazon-linux-2023/
Other
523 stars 39 forks source link

[Bug] - "Unexpected Exception, this is probably a bug: join() missing 1 required positional argument: 'a'" on ansible-galaxy #514

Open nomike opened 11 months ago

nomike commented 11 months ago

Describe the bug ansible-galaxy fails with an error message:

# ansible-galaxy install willshersystems.sshd --force -vvv
ansible-galaxy [core 2.15.5]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-galaxy
  python version = 3.9.16 (main, Sep  8 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True
No config file found; using defaults
Starting galaxy role install process
Processing role willshersystems.sshd
Opened /root/.ansible/galaxy_token
- downloading role 'sshd', owned by willshersystems
- downloading role from https://github.com/willshersystems/ansible-sshd/archive/v0.21.0.tar.gz
- extracting willshersystems.sshd to /root/.ansible/roles/willshersystems.sshd
[WARNING]: Illegal filename '..': '..' is not allowed
ERROR! Unexpected Exception, this is probably a bug: join() missing 1 required positional argument: 'a'
the full traceback was:

Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/ansible/cli/__init__.py", line 659, in cli_executor
    exit_code = cli.run()
  File "/usr/local/lib/python3.9/site-packages/ansible/cli/galaxy.py", line 719, in run
    return context.CLIARGS['func']()
  File "/usr/local/lib/python3.9/site-packages/ansible/cli/galaxy.py", line 119, in method_wrapper
    return wrapped_method(*args, **kwargs)
  File "/usr/local/lib/python3.9/site-packages/ansible/cli/galaxy.py", line 1370, in execute_install
    self._execute_install_role(role_requirements)
  File "/usr/local/lib/python3.9/site-packages/ansible/cli/galaxy.py", line 1469, in _execute_install_role
    installed = role.install()
  File "/usr/local/lib/python3.9/site-packages/ansible/galaxy/role.py", line 426, in install
    setattr(member, attr, os.path.join(*n_final_parts))
TypeError: join() missing 1 required positional argument: 'a'

To Reproduce Steps to reproduce the behavior:

  1. Install ansible
  2. Run ansible-galaxy install willshersystems.sshd

Expected behavior I would expect the program not to crash and to install the ansible role completely. Due to this bug, the role is only installed halfway through and thus does not work.

Additional context

# ansible-galaxy --version
ansible-galaxy [core 2.15.5]
  config file = None
  configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.9/site-packages/ansible
  ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible-galaxy
  python version = 3.9.16 (main, Feb 23 2023, 00:00:00) [GCC 11.3.1 20221121 (Red Hat 11.3.1-4)] (/usr/bin/python3)
  jinja version = 3.1.2
  libyaml = True

Since the ansible version in Amazon Linux 2023 is the latest, I will also file this bug report upstream.

nomike commented 11 months ago

Upstream Bug report: https://github.com/ansible/ansible/issues/81965

stewartsmith commented 11 months ago

I see you've also sent a pull request upstream which we'll be sure to keep an eye on, thanks!