group.of.nepali.translators team mailing list archive
-
group.of.nepali.translators team
-
Mailing list archive
-
Message #19964
[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.47ubuntu13.1
---------------
apt-xapian-index (0.47ubuntu13.1) zesty; 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, 24 Nov 2017 21:23:12 -0600
** Changed in: apt-xapian-index (Ubuntu Zesty)
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:
Triaged
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 keeps a reference to the os.unlink function in the
ServerProgress instance, such that it has the same lifespan.
[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 self.os_unlink becomes
unreachable, we get the same exception again.
[Other Info]
* There is probably a more "pythonic" way to fix this. For instance,
avoiding __del__. That requires a larger change.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt-xapian-index/+bug/1652641/+subscriptions