← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1778547] Re: Broken system lock counting

 

This bug was fixed in the package apt - 1.5.2

---------------
apt (1.5.2) artful; urgency=medium

  * apt.conf.autoremove: Catch some new Ubuntu module packages (LP: #1778551)
  * Fix lock counting in debSystem (LP: #1778547)

 -- Julian Andres Klode <juliank@xxxxxxxxxx>  Tue, 26 Jun 2018 12:51:24
+0200

** Changed in: apt (Ubuntu Xenial)
       Status: Fix Committed => Fix Released

-- 
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/1778547

Title:
  Broken system lock counting

Status in apt package in Ubuntu:
  Fix Committed
Status in apt source package in Xenial:
  Fix Released
Status in apt source package in Artful:
  Fix Released
Status in apt source package in Bionic:
  Fix Released

Bug description:
  [Impact]
  System lock unrefing is broken, off-by-one error. Locking twice opens a second fd for the lock file, and the old fd gets lost and remains open for the remaining duration of the program

  [Test case]

  Executing the following script should show one lock file in the first
  line, and none in the last line.

  def maybe_readlink(path):
    try:
      return os.readlink(path)
    except:
      return "<deleted>"

  import os, apt_pkg
  apt_pkg.init()
  apt_pkg.pkgsystem_lock()
  apt_pkg.pkgsystem_lock()
  print([(p, maybe_readlink("/proc/self/fd/" + p)) for p in os.listdir("/proc/self/fd")])
  apt_pkg.pkgsystem_unlock()
  apt_pkg.pkgsystem_unlock()
  print([(p, maybe_readlink("/proc/self/fd/" + p)) for p in os.listdir("/proc/self/fd")])

  [Test output]
  good, cosmic:
  [('0', '/dev/pts/2'), ('1', '/dev/pts/2'), ('2', '/dev/pts/2'), ('3', '/var/lib/dpkg/lock'), ('4', '<deleted>')]
  [('0', '/dev/pts/2'), ('1', '/dev/pts/2'), ('2', '/dev/pts/2'), ('3', '<deleted>')]

  bad, bionic:
  [('0', '/dev/pts/0'), ('1', '/dev/pts/0'), ('2', '/dev/pts/0'), ('3', 'pipe:[40889331]'), ('4', '/var/lib/dpkg/lock'), ('5', '/var/lib/dpkg/lock'), ('6', '<deleted>'), ('17', 'socket:[53931]')]
  [('0', '/dev/pts/0'), ('1', '/dev/pts/0'), ('2', '/dev/pts/0'), ('3', 'pipe:[40889331]'), ('4', '/var/lib/dpkg/lock'), ('5', '<deleted>'), ('17', 'socket:[53931]')]

  [Regression potential]
  A locking change can potentially break locking, but this one seems like an obvious off-by-one error.

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