[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