saltstack / saltstack/salt

[BUG] kernelpkg.upgrade if available i got AttributeError: 'NoneType' object has no attribute 'group'

Open
#65,389 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug Execution-Module needs-triage
Dominant language
Python
Stars
15.7k
Forks
5.6k
Avg merge
2d 44m
Merged PRs (30d)
80

Description

Description
If running kernelpkg.upgrade then all server with an available kernel upgrade throws an error

Setup
Just run:

 salt -C 'G@kernel:Linux and I@upgrade:1' kernelpkg.upgrade reboot=True at_time=2

we get the following error (here you can also see that it works on server with no kernel upgrades):

it-web.company.de:
    The minion function caused an exception: Traceback (most recent call last):
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return
        return_data = minion_instance._execute_job_function(
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function
        return_data = self.executors[fname](opts, data, func, args, kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
        ret = self.loader.run(run_func, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute
        return func(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
        ret = self.loader.run(run_func, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade
        name="{}-{}".format(_package_prefix(), latest_available())
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available
        return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())
    AttributeError: 'NoneType' object has no attribute 'group'
paul11.company.de:
    ----------
    active:
        6.1.0-0.deb11.11-amd64
    latest_installed:
        6.1.0-0.deb11.11-amd64
    reboot_requested:
        True
    reboot_required:
        False
    upgrades:
        ----------

Please be as specific as possible and give set-up details.

  • on-prem machine
  • VM Vmware Esxi
  • VM running on a cloud service, please be explicit and add details
  • container (Kubernetes, Docker, containerd, etc. please specify)
  • or a combination, please be explicit
  • jails if it is FreeBSD
  • classic packaging
  • onedir packaging
  • used bootstrap to install

Steps to Reproduce the behavior
from server:

salt -l all 'it-web*' kernelpkg.upgrade reboot=True at_time=2
[TRACE   ] _get_event() waited 0 seconds and received nothing
[TRACE   ] Get event. tag: salt/job/20231012061542608236
[TRACE   ] get_event() received = {'data': {'cmd': '_return', 'id': 'it-web.company.de', 'success': False, 'return': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061542608236', 'fun': 'kernelpkg.upgrade', 'fun_args': [{'reboot': True, 'at_time': 2}], 'user': 'sudo_xxx', '_stamp': '2023-10-12T06:15:46.616750'}, 'tag': 'salt/job/20231012061542608236/ret/it-web.company.de'}
[DEBUG   ] jid 20231012061542608236 return from it-web.company.de
[DEBUG   ] return event: {'it-web.company.de': {'ret': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061542608236'}}
[DEBUG   ] The functions from module 'nested' are being loaded by dir() on the loaded module
[DEBUG   ] LazyLoaded nested.output
[TRACE   ] data = {'it-web.company.de': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n'}
it-web.company.de:
    The minion function caused an exception: Traceback (most recent call last):
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return
        return_data = minion_instance._execute_job_function(
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function
        return_data = self.executors[fname](opts, data, func, args, kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
        ret = self.loader.run(run_func, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute
        return func(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
        ret = self.loader.run(run_func, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
        return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
        return _func_or_method(*args, **kwargs)
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade
        name="{}-{}".format(_package_prefix(), latest_available())
      File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available
        return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())
    AttributeError: 'NoneType' object has no attribute 'group'
[TRACE   ] Get event. tag: salt/job/20231012061542608236

from client, running in forground with -l all:

[TRACE   ] ==== evaluating schedule now None =====
[TRACE   ] stdout: Hit:1 https://ftp.gwdg.de/debian bullseye InRelease
Hit:2 https://ftp.gwdg.de/debian bullseye-updates InRelease
Hit:3 https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye InRelease
Hit:4 https://ftp.gwdg.de/debian bullseye-backports InRelease
Hit:5 https://ftp.gwdg.de/debian-security bullseye-security InRelease
Hit:6 https://packages.sury.org/php bullseye InRelease
Hit:7 https://artifacts.elastic.co/packages/oss-7.x/apt stable InRelease
Hit:9 http://repo.zabbix.com/zabbix/6.0/debian bullseye InRelease
Hit:8 https://packages.gitlab.com/runner/gitlab-runner/debian bullseye InRelease
Reading package lists...
[INFO    ] Executing command apt-cache in directory '/root'
[TRACE   ] stdout: linux-image-amd64:
  Installed: 5.10.191-1
  Candidate: 5.10.197-1
  Version table:
     6.1.38-4~bpo11+1 100
        100 https://ftp.gwdg.de/debian bullseye-backports/main amd64 Packages
     5.10.197-1 500
        500 https://ftp.gwdg.de/debian bullseye/main amd64 Packages
 *** 5.10.191-1 500
        500 https://ftp.gwdg.de/debian-security bullseye-security/main amd64 Packages
        100 /var/lib/dpkg/status
[INFO    ] Executing command dpkg in directory '/root'
[WARNING ] The minion function caused an exception
Traceback (most recent call last):
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return
    return_data = minion_instance._execute_job_function(
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function
    return_data = self.executors[fname](opts, data, func, args, kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
    ret = self.loader.run(run_func, *args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute
    return func(*args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
    ret = self.loader.run(run_func, *args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
    return _func_or_method(*args, **kwargs)
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade
    name="{}-{}".format(_package_prefix(), latest_available())
  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available
    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())
AttributeError: 'NoneType' object has no attribute 'group'
[DEBUG   ] SaltEvent PUB socket URI: /var/run/salt/minion/minion_event_5c70277f73_pub.ipc
[DEBUG   ] SaltEvent PULL socket URI: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[TRACE   ] IPCClient: Connecting to socket: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[DEBUG   ] Sending event: tag = _salt_error; data = {'message': 'The minion function caused an exception', 'args': ('The minion function caused an exception',), '_stamp': '2023-10-12T06:14:13.315557'}
[TRACE   ] IPCServer: Handling connection to address: <socket.socket fd=47, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/var/run/salt/minion/minion_event_5c70277f73_pull.ipc>
[DEBUG   ] Closing IPCMessageClient instance
[INFO    ] Returning information for job: 20231012061409273717
[TRACE   ] Return data: {'success': False, 'return': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061409273717', 'fun': 'kernelpkg.upgrade', 'fun_args': [{'reboot': True, 'at_time': 2}], 'user': 'sudo_xxx'}
[DEBUG   ] SaltEvent PUB socket URI: /var/run/salt/minion/minion_event_5c70277f73_pub.ipc
[DEBUG   ] SaltEvent PULL socket URI: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[TRACE   ] IPCClient: Connecting to socket: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[TRACE   ] Client disconnected from IPC /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[DEBUG   ] Sending event: tag = __master_req_channel_payload/salt; data = {'cmd': '_return', 'id': 'it-web.company.de', 'success': False, 'return': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061409273717', 'fun': 'kernelpkg.upgrade', 'fun_args': [{'reboot': True, 'at_time': 2}], 'user': 'sudo_xxx', '_stamp': '2023-10-12T06:14:13.318642'}
[TRACE   ] IPCServer: Handling connection to address: <socket.socket fd=47, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/var/run/salt/minion/minion_event_5c70277f73_pull.ipc>
[DEBUG   ] Closing IPCMessageClient instance
[TRACE   ] ret_val = True
[DEBUG   ] minion return: {'success': False, 'return': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061409273717', 'fun': 'kernelpkg.upgrade', 'fun_args': [{'reboot': True, 'at_time': 2}], 'user': 'sudo_xxx'}
[TRACE   ] Client disconnected from IPC /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[DEBUG   ] Minion of 'salt' is handling event tag '_salt_error'
[DEBUG   ] Forwarding salt error event tag=_salt_error
[DEBUG   ] SaltEvent PUB socket URI: /var/run/salt/minion/minion_event_5c70277f73_pub.ipc
[DEBUG   ] SaltEvent PULL socket URI: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[TRACE   ] IPCClient: Connecting to socket: /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[DEBUG   ] Sending event: tag = __master_req_channel_payload/salt; data = {'id': 'it-web.company.de', 'cmd': '_minion_event', 'pretag': None, 'tok': b"G\xed+|p\x13\x9d%ON6\xc8\xfdW\x89KU,#\xe0\xc8\xdd\xe7'\xf5\xd1O\xb6;\xd6v2\xb5\xea8\xc0K\x17\xf1U\xc4}\xf1B>\xacK\x06\xcb\xe2\xc4**\xf1u\x15\\\x19\x97\xf1\xc7\x84\x95\x9b_s\xb9T\x85U\xfcO\x82\xb5V\xecd>lF\x18\x9fK6\xf2B\xe5*0A\xb0\x9d7\xba\xb4\x12\x02\xff\xb9/\xdeM\x90\x10g\x83\xac>\x10\x84\xaf\xbd\xc0v\x8a\xc3iD\xc5\x148\xf0\x8e\xfb2\xf8+Q\xe2.\x0eev\xa9\xa9\xc5lw \xd2\xb8\x02\xf2[\x0ev\xbfu\xc2e\xf1z\xc2PE\xfaEX\x1c\\g\xb9a\xdf\x19R\x11\x9c\x1eL\xbd\xcb&S\xabM\x0fd\xeaz\xa5\xd7[\xc2\xc8\x96F\x9c\x80\xb8\x9c\x95=\xdf\x18\x10\xde\x8e'l\xcc\xcaRDd\x82\xf1\x11\xfewy<\xbf3k\xe5\x82\x93\x14Iti\xbdb\x15\xd2\xea:)\xed\x104l\x94\xf5\xc8'\xd6\r\x04\xc6D\x7f\xab_\x9f}sl2D\xec\x9e\xc2#\xed", 'data': {'message': 'The minion function caused an exception', 'args': ['The minion function caused an exception'], '_stamp': '2023-10-12T06:14:13.315557'}, 'tag': '_salt_error', '_stamp': '2023-10-12T06:14:13.328186'}
[DEBUG   ] Minion of 'salt' is handling event tag '__master_req_channel_payload/salt'
[DEBUG   ] Minion return retry timer set to 7 seconds (randomized)
[TRACE   ] ReqChannel send crypt load={'cmd': '_return', 'id': 'it-web.company.de', 'success': False, 'return': 'The minion function caused an exception: Traceback (most recent call last):\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1943, in _thread_return\n    return_data = minion_instance._execute_job_function(\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/minion.py", line 1902, in _execute_job_function\n    return_data = self.executors[fname](opts, data, func, args, kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/executors/direct_call.py", line 10, in execute\n    return func(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__\n    ret = self.loader.run(run_func, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run\n    return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as\n    return _func_or_method(*args, **kwargs)\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 156, in upgrade\n    name="{}-{}".format(_package_prefix(), latest_available())\n  File "/opt/saltstack/salt/lib/python3.10/site-packages/salt/modules/kernelpkg_linux_apt.py", line 89, in latest_available\n    return "{}-{}-{}".format(version.group(1), version.group(2), _kernel_type())\nAttributeError: \'NoneType\' object has no attribute \'group\'\n', 'out': 'nested', 'retcode': 1, 'jid': '20231012061409273717', 'fun': 'kernelpkg.upgrade', 'fun_args': [{'reboot': True, 'at_time': 2}], 'user': 'sudo_xxx', '_stamp': '2023-10-12T06:14:13.318642'}
[TRACE   ] IPCServer: Handling connection to address: <socket.socket fd=56, family=AddressFamily.AF_UNIX, type=SocketKind.SOCK_STREAM, proto=0, laddr=/var/run/salt/minion/minion_event_5c70277f73_pull.ipc>
[DEBUG   ] Closing IPCMessageClient instance
[TRACE   ] Client disconnected from IPC /var/run/salt/minion/minion_event_5c70277f73_pull.ipc
[DEBUG   ] Minion of 'salt' is handling event tag '__master_req_channel_payload/salt'
[DEBUG   ] Minion return retry timer set to 9 seconds (randomized)
[TRACE   ] ReqChannel send crypt load={'id': 'it-web.company.de', 'cmd': '_minion_event', 'pretag': None, 'tok': b"G\xed+|p\x13\x9d%ON6\xc8\xfdW\x89KU,#\xe0\xc8\xdd\xe7'\xf5\xd1O\xb6;\xd6v2\xb5\xea8\xc0K\x17\xf1U\xc4}\xf1B>\xacK\x06\xcb\xe2\xc4**\xf1u\x15\\\x19\x97\xf1\xc7\x84\x95\x9b_s\xb9T\x85U\xfcO\x82\xb5V\xecd>lF\x18\x9fK6\xf2B\xe5*0A\xb0\x9d7\xba\xb4\x12\x02\xff\xb9/\xdeM\x90\x10g\x83\xac>\x10\x84\xaf\xbd\xc0v\x8a\xc3iD\xc5\x148\xf0\x8e\xfb2\xf8+Q\xe2.\x0eev\xa9\xa9\xc5lw \xd2\xb8\x02\xf2[\x0ev\xbfu\xc2e\xf1z\xc2PE\xfaEX\x1c\\g\xb9a\xdf\x19R\x11\x9c\x1eL\xbd\xcb&S\xabM\x0fd\xeaz\xa5\xd7[\xc2\xc8\x96F\x9c\x80\xb8\x9c\x95=\xdf\x18\x10\xde\x8e'l\xcc\xcaRDd\x82\xf1\x11\xfewy<\xbf3k\xe5\x82\x93\x14Iti\xbdb\x15\xd2\xea:)\xed\x104l\x94\xf5\xc8'\xd6\r\x04\xc6D\x7f\xab_\x9f}sl2D\xec\x9e\xc2#\xed", 'data': {'message': 'The minion function caused an exception', 'args': ['The minion function caused an exception'], '_stamp': '2023-10-12T06:14:13.315557'}, 'tag': '_salt_error', '_stamp': '2023-10-12T06:14:13.328186'}
[TRACE   ] ==== evaluating schedule now None =====
[DEBUG   ] Subprocess ProcessPayload(jid=20231012061409273717) cleaned up
[TRACE   ] ==== evaluating schedule now None =====
[TRACE   ] ==== evaluating schedule now None =====

Expected behavior
a working kernel.upgrade

Versions Report

salt --versions-report from master: ```yaml salt --versions-report Salt Version: Salt: 3006.3

Python Version:
Python: 3.10.13 (main, Sep 6 2023, 02:11:27) [GCC 11.2.0]

Dependency Versions:
cffi: 1.14.6
cherrypy: unknown
dateutil: 2.8.1
docker-py: Not Installed
gitdb: 4.0.10
gitpython: 3.1.31
Jinja2: 3.1.2
libgit2: Not Installed
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.9.8
pygit2: Not Installed
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.13.10
smmap: 5.0.0
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4

System Versions:
dist: debian 11 bullseye
locale: utf-8
machine: x86_64
release: 5.10.0-25-amd64
system: Linux
version: Debian GNU/Linux 11 bullseye

from minion:

Salt Version:
Salt: 3006.3

Python Version:
Python: 3.10.13 (main, Sep 6 2023, 02:11:27) [GCC 11.2.0]

Dependency Versions:
cffi: 1.14.6
cherrypy: 18.6.1
dateutil: 2.8.1
docker-py: Not Installed
gitdb: Not Installed
gitpython: Not Installed
Jinja2: 3.1.2
libgit2: Not Installed
looseversion: 1.0.2
M2Crypto: Not Installed
Mako: Not Installed
msgpack: 1.0.2
msgpack-pure: Not Installed
mysql-python: Not Installed
packaging: 22.0
pycparser: 2.21
pycrypto: Not Installed
pycryptodome: 3.9.8
pygit2: Not Installed
python-gnupg: 0.4.8
PyYAML: 6.0.1
PyZMQ: 23.2.0
relenv: 0.13.10
smmap: Not Installed
timelib: 0.2.4
Tornado: 4.5.3
ZMQ: 4.3.4

System Versions:
dist: debian 11 bullseye
locale: utf-8
machine: x86_64
release: 5.10.0-25-amd64
system: Linux
version: Debian GNU/Linux 11 bullseye

</details>

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with salt/modules/kernelpkg_linux_apt.py, especially upgrade and latest_available, then reproduce the failure with the documented kernelpkg.upgrade command on a Linux system with an available kernel upgrade. Done means the command no longer raises the reported AttributeError and still handles hosts without available upgrades as shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
devops, operating-systems
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.