[Python-apps-team] Bug#568968: Trivial program makes pylint hang (regression since 0.18.1-1)
Joseph Barillari
debian at barillari.org
Tue Feb 9 02:45:53 UTC 2010
Package: pylint
Version: 0.19.0-1
Severity: normal
If I run pylint on the following program:
from matplotlib.figure import Figure
Figure().add_subplot(111).xaxis
...pylint never exits. It prints the following:
$ pylint generate.py
No config file found, using default configuration
************* Module generate
C: 1: Missing docstring
...and hangs, using 100% of CPU.
For the record, I'm using these versions of matplotlib:
ii python-matplotlib 0.99.1.2-2 Python based plotting system in a style similar to Matlab
ii python-matplotlib-data 0.99.1.2-2 Python based plotting system (data package)
ii python-matplotlib-doc 0.99.1.2-2 Python based plotting system (documentation package)
If I interrupt pylab, it prints a very long stack trace which ends in:
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 231, in wrapper
for node in func(*args, **kwargs):
File "/usr/lib/pymodules/python2.5/logilab/astng/inference.py", line 259, in infer_getattr
for obj in owner.igetattr(self.attrname, context):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 168, in _infer_stmts
for infered in stmt.infer(context):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 203, in wrapped
for res in _func(node, context, **kwargs):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 168, in _infer_stmts
for infered in stmt.infer(context):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 203, in wrapped
for res in _func(node, context, **kwargs):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 231, in wrapper
for node in func(*args, **kwargs):
File "/usr/lib/pymodules/python2.5/logilab/astng/inference.py", line 207, in infer_callfunc
for infered in callee.infer_call_result(self, callcontext):
File "/usr/lib/pymodules/python2.5/logilab/astng/scoped_nodes.py", line 426, in infer_call_result
for infered in returnnode.value.infer(context):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 203, in wrapped
for res in _func(node, context, **kwargs):
File "/usr/lib/pymodules/python2.5/logilab/astng/inference.py", line 185, in infer_name
frame, stmts = self.lookup(self.name)
File "/usr/lib/pymodules/python2.5/logilab/astng/lookup.py", line 53, in lookup
return self.scope().scope_lookup(self, name)
File "/usr/lib/pymodules/python2.5/logilab/astng/scoped_nodes.py", line 323, in scope_lookup
return frame._scope_lookup(node, name, offset)
File "/usr/lib/pymodules/python2.5/logilab/astng/lookup.py", line 233, in _scope_lookup
stmts = node._filter_stmts(self.locals[name], self, offset)
File "/usr/lib/pymodules/python2.5/logilab/astng/lookup.py", line 172, in _filter_stmts
if not are_exclusive(self, node):
File "/usr/lib/pymodules/python2.5/logilab/astng/infutils.py", line 106, in are_exclusive
while node:
KeyboardInterrupt
If I try the same program on a machine running 0.18.1-1, it works without incident, printing the following:
$ pylint a.py
/usr/lib/pymodules/python2.5/pylint/lint.py:314: DeprecationWarning: use lgc.optik_ext.check_csv
value = check_csv(None, opt_name, value)
No config file found, using default configuration
************* Module a
C: 1: Missing docstring
Report
======
2 statements analysed.
Raw metrics
-----------
+----------+-------+-------+---------+-----------+
|type |number |% |previous |difference |
+==========+=======+=======+=========+===========+
|code |2 |100.00 |2 |= |
+----------+-------+-------+---------+-----------+
|docstring |0 |0.00 |0 |= |
+----------+-------+-------+---------+-----------+
|comment |0 |0.00 |0 |= |
+----------+-------+-------+---------+-----------+
|empty |0 |0.00 |0 |= |
+----------+-------+-------+---------+-----------+
Duplication
-----------
+-------------------------+------+---------+-----------+
| |now |previous |difference |
+=========================+======+=========+===========+
|nb duplicated lines |0 |0 |= |
+-------------------------+------+---------+-----------+
|percent duplicated lines |0.000 |0.000 |= |
+-------------------------+------+---------+-----------+
External dependencies
---------------------
::
matplotlib
\-figure
\-Figure (a)
Statistics by type
------------------
+---------+-------+-----------+-----------+------------+---------+
|type |number |old number |difference |%documented |%badname |
+=========+=======+===========+===========+============+=========+
|module |1 |1 |= |0.00 |0.00 |
+---------+-------+-----------+-----------+------------+---------+
|class |0 |0 |= |0.00 |0.00 |
+---------+-------+-----------+-----------+------------+---------+
|method |0 |0 |= |0.00 |0.00 |
+---------+-------+-----------+-----------+------------+---------+
|function |0 |0 |= |0.00 |0.00 |
+---------+-------+-----------+-----------+------------+---------+
Messages by category
--------------------
+-----------+-------+---------+-----------+
|type |number |previous |difference |
+===========+=======+=========+===========+
|convention |1 |1 |= |
+-----------+-------+---------+-----------+
|refactor |0 |0 |= |
+-----------+-------+---------+-----------+
|warning |0 |0 |= |
+-----------+-------+---------+-----------+
|error |0 |0 |= |
+-----------+-------+---------+-----------+
Messages
--------
+-----------+-----------+
|message id |occurences |
+===========+===========+
|C0111 |1 |
+-----------+-----------+
Global evaluation
-----------------
Your code has been rated at 5.00/10 (previous run: 5.00/10)
For the record, that machine is using a slightly different version of matplotlib:
ii python-matplotlib 0.99.1.2-1 Python based plotting system in a style simi
ii python-matplotlib-data 0.99.1.2-1 Python based plotting system (data package)
And the following pylint deps:
ii python 2.5.4-2 An interactive high-level object-oriented la
ii python-logilab-astng 0.19.1-1 extend Python's abstract syntax tree (AST)
ii python-logilab-common 0.45.1-1 useful miscellaneous modules used by Logilab
ii python-support 1.0.4 automated rebuilding support for Python modu
-- System Information:
Debian Release: squeeze/sid
APT prefers oldstable
APT policy: (500, 'oldstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.32-trunk-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages pylint depends on:
ii python 2.5.4-9 An interactive high-level object-o
ii python-logilab-astng 0.19.3-1 extend Python's abstract syntax tr
ii python-logilab-common 0.45.2-1 useful miscellaneous modules used
ii python-support 1.0.6 automated rebuilding support for P
Versions of packages pylint recommends:
ii python-tk 2.6.4-1 Tkinter - Writing Tk applications
pylint suggests no packages.
-- no debconf information
More information about the Python-apps-team
mailing list