← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1830635] [NEW] Regression: xenial: Uses apt_pkg.Error, which is only available in later versions

 

Public bug reported:

[Impact]
The last SRU introduced a regression in error handling, where apt_pkg.Error is being caught - but that class is not available in xenial - it still uses SystemError

[Test case]

Run python3 -c "import apt; apt.Cache().update()" while running apt
update.

You should see:

# <command>
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 468, in update
    raise LockFailedException("Failed to lock %s" % lockfile)
apt.cache.LockFailedException: Failed to lock /var/lib/apt/lists/lock

Currently you see:
# <command>
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 63, in __enter__
    return self._lock.__enter__()
SystemError: E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 481, in update
    with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")):
  File "/usr/lib/python3/dist-packages/apt/cache.py", line 64, in __enter__
    except apt_pkg.Error as e:
AttributeError: module 'apt_pkg' has no attribute 'Error'

[Regression potential]
It really can't get worse than this. But FWIW: This only affects code paths where we could not lock the lists/ or archives/ directory - they currently throw the AttributeError, and will then throw LockFailedException again - as they did before the SRU.

** Affects: python-apt (Ubuntu)
     Importance: Undecided
         Status: Invalid

** Affects: python-apt (Ubuntu Xenial)
     Importance: Undecided
         Status: Triaged

** Description changed:

  [Impact]
  The last SRU introduced a regression in error handling, where apt_pkg.Error is being caught - but that class is not available in xenial - it still uses SystemError
  
  [Test case]
  
  Run python3 -c "import apt; apt.Cache().update()" while running apt
  update.
  
- 
  You should see:
  
  # <command>
- Traceback (most recent call last):                                                                                                                                                                                                                                                          
-   File "<string>", line 1, in <module>                                                                                                                                                                                                                                                      
-   File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 468, in update
-     raise LockFailedException("Failed to lock %s" % lockfile)
+ Traceback (most recent call last):
+   File "<string>", line 1, in <module>
+   File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 468, in update
+     raise LockFailedException("Failed to lock %s" % lockfile)
  apt.cache.LockFailedException: Failed to lock /var/lib/apt/lists/lock
  
  Currently you see:
  # <command>
  Traceback (most recent call last):
-   File "/usr/lib/python3/dist-packages/apt/cache.py", line 63, in __enter__
-     return self._lock.__enter__()
+   File "/usr/lib/python3/dist-packages/apt/cache.py", line 63, in __enter__
+     return self._lock.__enter__()
  SystemError: E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
-   File "<string>", line 1, in <module>
-   File "/usr/lib/python3/dist-packages/apt/cache.py", line 481, in update
-     with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")):
-   File "/usr/lib/python3/dist-packages/apt/cache.py", line 64, in __enter__
-     except apt_pkg.Error as e:
+   File "<string>", line 1, in <module>
+   File "/usr/lib/python3/dist-packages/apt/cache.py", line 481, in update
+     with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")):
+   File "/usr/lib/python3/dist-packages/apt/cache.py", line 64, in __enter__
+     except apt_pkg.Error as e:
  AttributeError: module 'apt_pkg' has no attribute 'Error'
  
  [Regression potential]
- It really can't get worse than this.
+ It really can't get worse than this. But FWIW: This only affects code paths where we could not lock the lists/ or archives/ directory - they currently throw the AttributeError, and will then throw LockFailedException again - as they did before the SRU.

** Also affects: python-apt (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: python-apt (Ubuntu)
       Status: New => Invalid

** Changed in: python-apt (Ubuntu Xenial)
       Status: New => Triaged

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1830635

Title:
  Regression: xenial: Uses apt_pkg.Error, which is only available in
  later versions

Status in python-apt package in Ubuntu:
  Invalid
Status in python-apt source package in Xenial:
  Triaged

Bug description:
  [Impact]
  The last SRU introduced a regression in error handling, where apt_pkg.Error is being caught - but that class is not available in xenial - it still uses SystemError

  [Test case]

  Run python3 -c "import apt; apt.Cache().update()" while running apt
  update.

  You should see:

  # <command>
  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/usr/lib/python2.7/dist-packages/apt/cache.py", line 468, in update
      raise LockFailedException("Failed to lock %s" % lockfile)
  apt.cache.LockFailedException: Failed to lock /var/lib/apt/lists/lock

  Currently you see:
  # <command>
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/apt/cache.py", line 63, in __enter__
      return self._lock.__enter__()
  SystemError: E:Could not get lock /var/lib/apt/lists/lock - open (11: Resource temporarily unavailable)

  During handling of the above exception, another exception occurred:

  Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "/usr/lib/python3/dist-packages/apt/cache.py", line 481, in update
      with _WrappedLock(apt_pkg.config.find_dir("Dir::State::Lists")):
    File "/usr/lib/python3/dist-packages/apt/cache.py", line 64, in __enter__
      except apt_pkg.Error as e:
  AttributeError: module 'apt_pkg' has no attribute 'Error'

  [Regression potential]
  It really can't get worse than this. But FWIW: This only affects code paths where we could not lock the lists/ or archives/ directory - they currently throw the AttributeError, and will then throw LockFailedException again - as they did before the SRU.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/1830635/+subscriptions


Follow ups