Comment 0 for bug 1993019

Revision history for this message
Seth Arnold (seth-arnold) wrote :

Hello, we received a drive-by complaint about the ubuntu-drivers autoinstall tool:

< Fhazal> hye i have problem with ubuntu 22.04 nvidia auto install command
< Fhazal> this error appear when i try to auto install recommended driver
< Fhazal> https://pastebin.com/ydZVFT24

The contents of the pastebin:

Traceback (most recent call last):
  File "/usr/bin/ubuntu-drivers", line 513, in <module>
    greet()
  File "/usr/lib/python3/dist-packages/click/core.py", line 1128, in __call__
    return self.main(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1053, in main
    rv = self.invoke(ctx)
  File "/usr/lib/python3/dist-packages/click/core.py", line 1659, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/lib/python3/dist-packages/click/core.py", line 1395, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/lib/python3/dist-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/decorators.py", line 84, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/click/core.py", line 754, in invoke
    return __callback(*args, **kwargs)
  File "/usr/bin/ubuntu-drivers", line 432, in autoinstall
    command_install(config)
  File "/usr/bin/ubuntu-drivers", line 187, in command_install
    UbuntuDrivers.detect.nvidia_desktop_pre_installation_hook(to_install)
  File "/usr/lib/python3/dist-packages/UbuntuDrivers/detect.py", line 839, in nvidia_desktop_pre_installation_hook
    with_nvidia_kms = version >= 470
UnboundLocalError: local variable 'version' referenced before assignment

Skimming the version on my system it sure feels plausible:

def nvidia_desktop_pre_installation_hook(to_install):
    '''Applies changes that need to happen before installing the NVIDIA drivers'''
    with_nvidia_kms = False

    # Enable KMS if nvidia >= 470
    for package_name in to_install:
        if package_name.startswith('nvidia-driver-'):
            try:
                version = int(package_name.split('-')[-1])
            except ValueError:
                pass
            finally:
                with_nvidia_kms = version >= 470

    if with_nvidia_kms:
        set_nvidia_kms(1)

If there was an exception splitting, indexing, or converting to an int, that 'version' variable may not have a value.

Thanks