Package: python3-apt Version: 2.9.2 Severity: important File: /usr/lib/python3/dist-packages/aptsources/distro.py
Dear Maintainer, * What led up to the situation?: Setup a node with ansible. * What exactly did you do (or not do) that was effective (or ineffective)? Run ansible as usual in order to setup a source file for apt. * What was the outcome of this action? Anisble run fails with ``` Traceback (most recent call last): File "/home/glennie/.ansible/tmp/ansible-tmp-1734426175.6180859-3979780-111839269724897/AnsiballZ_apt_repository.py", line 259, in <module> _ansiballz_main() File "/home/glennie/.ansible/tmp/ansible-tmp-1734426175.6180859-3979780-111839269724897/AnsiballZ_apt_repository.py", line 249, in _ansiballz_main invoke_module(zipped_mod, temp_path, ANSIBALLZ_PARAMS) File "/home/glennie/.ansible/tmp/ansible-tmp-1734426175.6180859-3979780-111839269724897/AnsiballZ_apt_repository.py", line 122, in invoke_module runpy.run_module(mod_name='ansible.modules.apt_repository', init_globals=dict(_module_fqn='ansible.modules.apt_repository', _modlib_path=modlib_path), File "<frozen runpy>", line 226, in run_module File "<frozen runpy>", line 98, in _run_module_code File "<frozen runpy>", line 88, in _run_code File "/tmp/ansible_ansible.builtin.apt_repository_payload_l931syp9/ansible_ansible.builtin.apt_repository_payload.zip/ansible/modules/apt_repository.py", line 195, in <module> File "/usr/lib/python3/dist-packages/aptsources/distro.py", line 544, in get_distro id = id.lower() ^^^^^^^^ AttributeError: 'NoneType' object has no attribute 'lower' msg: |- MODULE FAILURE: No start of json char found See stdout/stderr for the exact error ``` A simple way to reproduce this is bug is to start a python REPL, then type: ``` import aptsources.distro as aptsources_distro distro = aptsources_distro.get_distro() ``` >From what I see, the bug lies at line 544, in `aptsources/distro.py`. `id` is initalized to `None` in the function signature(line: 529). Then on line 544, I see `id = id.lower()`. If `id` is not set by the caller, it fails (as ansible seems do). May be, the line 544 should be be rewritten to: ``` if id is not None: id = id.lower() ``` * What outcome did you expect instead? Ansible should not fail here -- System Information: Debian Release: trixie/sid APT prefers unstable APT policy: (990, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 6.11.9-amd64 (SMP w/8 CPU threads; PREEMPT) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8), LANGUAGE not set Shell: /bin/sh linked to /usr/bin/dash Init: systemd (via /run/systemd/system) Versions of packages python3-apt depends on: ii distro-info-data 0.63 ii libapt-pkg6.0t64 2.9.17 ii libc6 2.40-4 ii libgcc-s1 14.2.0-8 ii libstdc++6 14.2.0-8 ii python-apt-common 2.9.2 ii python3 3.12.7-1 Versions of packages python3-apt recommends: ii iso-codes 4.17.0-1 ii lsb-release 12.1-1 Versions of packages python3-apt suggests: ii apt 2.9.17 pn python-apt-doc <none> -- no debconf information