← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1652641] Re: crash in indexer.py, AttributeError: 'NoneType' object has no attribute 'unlink'

 

This bug was fixed in the package apt-xapian-index - 0.47ubuntu8.4

---------------
apt-xapian-index (0.47ubuntu8.4) xenial; urgency=medium

  * debian/patches/08_race_no_attribute_unlink.patch: use a finalizer
    instead of __del__ to close and remove the socket.
    When ServerProgress.__del__() is called the global os module might
    already have been set to None by the Python shutdown, causing an
    exception. (LP: #1652641)

 -- Carlo Vanini <silhusk@xxxxxxxxx>  Fri, 23 Feb 2018 08:44:53 -0800

** Changed in: apt-xapian-index (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/1652641

Title:
  crash in indexer.py, AttributeError: 'NoneType' object has no
  attribute 'unlink'

Status in apt-xapian-index package in Ubuntu:
  Fix Released
Status in apt-xapian-index source package in Xenial:
  Fix Released
Status in apt-xapian-index source package in Zesty:
  Fix Released

Bug description:
  [Impact]

  When the apt-xapian-index is already up to date, and under certain
  conditions, update-apt-xapian-index throws an exception.

  The index /var/lib/apt-xapian-index is up to date
  Exception ignored in: <bound method ServerProgress.__del__ of
  <axi.indexer.ServerProgress object at 0x7f04a5ae4c18>>
  Traceback (most recent call last):
    File "/usr/lib/python3/dist-packages/axi/indexer.py", line 306, in __del__
  AttributeError: 'NoneType' object has no attribute 'unlink'

  This happens more frequently when it is run with nice and ionice,
  which is the case in the cron.weekly/apt-xapian-index cron job.

  This is not severe, since the exception is thrown on exit, and depends
  on the way python3 cleans up the environment. Anyway, this leaves a
  socket file behind, and creates noise in cron logs (see comment #2).

  The patch uses a weakref finalizer in order to remove the socket file.

  [Test Case]

  * `sudo nice -n 19 ionice -c 3 update-apt-xapian-index --quiet`
  * may need to run 4 times or more
  * no exception is thrown

  [Regression Potential]

  * If the os module is unloaded anyway and os.unlink becomes unreachable, we get the same exception again.
  * We import the `weakref` module, which was not used before.

  [Other Info]

  * This description was updated to reflect the changes in the behavior
  of the patch that was released in Zesty. It still needs sponsoring for
  Xenial.

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