[Bug 2076084] Re: Additional drivers tab cause uncancellable operation that prevents the program from closing

Andreas Hasenack 2076084 at bugs.launchpad.net
Fri Oct 18 18:02:52 UTC 2024


I'm learning with you here, Nathan. I'm asking around what's the
project's approach to creating new branches and such, because we need an
upstream branch for oracular now, so that ubuntu/master can become
plucky.

** Also affects: software-properties (Ubuntu Oracular)
   Importance: Undecided
       Status: New

** Also affects: software-properties (Ubuntu Plucky)
   Importance: Low
     Assignee: Nathan Teodosio (nteodosio)
       Status: Triaged

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to software-properties in Ubuntu.
https://bugs.launchpad.net/bugs/2076084

Title:
  Additional drivers tab cause uncancellable operation that prevents the
  program from closing

Status in software-properties package in Ubuntu:
  Triaged
Status in software-properties source package in Oracular:
  New
Status in software-properties source package in Plucky:
  Triaged

Bug description:
  Start software-properties-gtk, switch to additional drivers tab. The
  program will start consuming 100% CPU for quite some time (many
  seconds or minutes depending on the machine).

  There is however no way to cancel the operation other than killing
  software-properties. Trying to close the window or clicking Close
  button hangs.

  Test plans
  ----------

  1. Start software-properties-gtk
  1.1. Go to additional drivers tab.
  1.2. Click close at the south-east corner or close the window via your window manager.
  Expected. Window closes immediately.

  4. Start software-properties-gtk
  4.1. Go to additional drivers tab and wait.
  Expected: The viewport will at the end say that either no drivers are available or show a list of drivers such as in the drivers-list.png attachment. The cancel/retry buttons are gone in the latter case.

  2. Start software-properties-gtk and 'top' in a terminal
  2.1. Go to additional drivers tab.
  Expected: The 'python3' command starts consuming 100% CPU.
  2.2. Click cancel.
  Expected: The aforementioned process is no longer hogging the CPU, indicating that the driver scan really stopped. The button is now retry, clickable.
  2.3. Click retry.
  Expected: The 'python3' command starts consuming 100% CPU. The button is now cancel.

  3. Start software-properties-gtk and 'top' in a terminal
  3.1. Go to additional drivers tab.
  3.2. Get the PID of the 'python3' process consuming 100% CPU and kill it with kill -29 PID
  Expected: The viewport reports the error. Retry is clickable.

  5. Start software-properties-gtk
  5.1. Introduce a unconditional exception in /usr/lib/python3/dist-packages/UbuntuDrivers/detect.py:system_device_drivers, e.g.:
  --->
  --- /usr/lib/python3/dist-packages/UbuntuDrivers/detect.py
  +++ /usr/lib/python3/dist-packages/UbuntuDrivers/detect.py
  @@ -866,4 +866,5 @@

   def system_device_drivers(apt_cache=None, sys_path=None, freeonly=False):
  +print(fooo)
       '''Get by-device driver packages that are available for the system.

  <---
  5.2. Go to additional drivers tab.
  Expected: "An error occurred while searching for drivers."; In the terminal, the backtrace is shown:
  --->
  Traceback (most recent call last):
    File "/home/nteodosio/canonical/ubuntu-pro/software-properties/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 1456, in detect_drivers
      raise(self.p.exception)
  Exception: Traceback (most recent call last):
    File "/home/nteodosio/canonical/ubuntu-pro/software-properties/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 121, in run
      multiprocessing.Process.run(self)
    File "/usr/lib/python3.12/multiprocessing/process.py", line 108, in run
      self._target(*self._args, **self._kwargs)
    File "/home/nteodosio/canonical/ubuntu-pro/software-properties/softwareproperties/gtk/SoftwarePropertiesGtk.py", line 1437, in wrapper_system_device_drivers
      devices = detect.system_device_drivers(cache)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/UbuntuDrivers/detect.py", line 919, in system_device_drivers
      print(fooooo)
            ^^^^^^
  NameError: name 'fooooo' is not defined
  <---

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/software-properties/+bug/2076084/+subscriptions




More information about the foundations-bugs mailing list