[tahoe-lafs-trac-stream] [tahoe-lafs] #1355: py2.7 incompatibility in cross_check_pkg_resources_versus_import?
tahoe-lafs
trac at tahoe-lafs.org
Thu Feb 3 13:52:59 PST 2011
#1355: py2.7 incompatibility in cross_check_pkg_resources_versus_import?
----------------------+-----------------------------------------------------
Reporter: warner | Owner: somebody
Type: defect | Status: new
Priority: critical | Milestone: 1.9.0
Component: code | Version: 1.8.2
Keywords: | Launchpad Bug:
----------------------+-----------------------------------------------------
Jimmy Tang [http://tahoe-lafs.org/pipermail/tahoe-
dev/2011-February/006074.html wrote] to the mailing list with a crash on
his Archlinux box. I suspect it's a python-2.7 incompatibility in the
error-handling path in all the crazy what-version-of-each-dependency code
inside {{{__init__.py}}}:
{{{
File "/home/jtang/tmp/tahoe-lafs/src/allmydata-
tahoe-1.8.2/src/allmydata/__init__.py",
line 301, in cross_check_pkg_resources_versus_import
% (imp_ver, name, imp_loc, pr_ver, pr_loc, e.__class__.name, e))
AttributeError: type object 'exceptions.TypeError' has no attribute 'name'
Aborting...
}}}
I suspect that {{{TypeError}}} moved from being implemented in Python (in
py2.6) to being implemented in C (in py2.7), and that for some reason when
you try to do the {{{.name}}} lookup, it explodes messily.
I don't know if this is a real error path, or if it's just accumulating a
bunch of warnings to print to stderr (i.e. if we just took out the
offending line, would the program work anyways, or is the missing/old
/unable-to-compute-version dependency actually important?).
This sort of problem reinforces my feeling that our {{{__init__.py}}} is
way too complex, and that all the version-checking logic may be doing more
harm than good.
This may provoke a 1.8.3, if it happens frequently enough. If the bad
{{{e.__class__.name}}} is only triggered under weird combinations of
installed dependencies, then we might be able to put it off until 1.9.0 .
--
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1355>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage
More information about the tahoe-lafs-trac-stream
mailing list