[ python-Bugs-1117670 ] profiler: Bad return and Bad call errors with exceptions

SourceForge.net noreply at sourceforge.net
Thu Aug 24 08:43:52 CEST 2006


Bugs item #1117670, was opened at 2005-02-06 23:50
Message generated for change (Comment added) made by edloper
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1117670&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: Python Library
Group: None
Status: Open
Resolution: None
Priority: 5
Submitted By: Matthew Mueller (donut)
Assigned to: Nobody/Anonymous (nobody)
Summary: profiler: Bad return and Bad call errors with exceptions

Initial Comment:
I ran into a weird error when trying to profile a test
script of mine:
AssertionError: ('Bad call', ('', 0, 'encode'))

I managed to whittle it down to some minimal test
cases, which are attached (although the errors they
generate are slightly different.)  

$ python-cvs -m profile profile_badcall.py
Traceback (most recent call last):
[snipped ...]
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 444, in runctx
    exec cmd in globals, locals
  File "<string>", line 1, in ?
  File "profile_badcall.py", line 10, in ?
    os.path.join("C",'b')
  File
"/home/donut/usr64/python/lib/python2.5/posixpath.py",
line 56, in join
    def join(a, *p):
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 228, in trace_dispatch_i
    if self.dispatch[event](self, frame, t):
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 285, in trace_dispatch_call
    assert (self.cur is None or \
AssertionError: ('Bad call', ('profile_badcall.py', 2,
'trier'))

$ python-cvs -m profile profile_badreturn.py
Traceback (most recent call last):
[snipped...]
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 444, in runctx
    exec cmd in globals, locals
  File "<string>", line 1, in ?
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 228, in trace_dispatch_i
    if self.dispatch[event](self, frame, t):
  File
"/home/donut/usr64/python/lib/python2.5/profile.py",
line 312, in trace_dispatch_return
    assert frame is self.cur[-2].f_back, ("Bad return",
self.cur[-3])
AssertionError: ('Bad return', ('profile_badreturn.py',
1, 'trier'))


The errors occur in python CVS as of 20050206 and
python 2.4, but not in python 2.3.4.  
OS: debian sid (3.1)
Arch: amd64


----------------------------------------------------------------------

>Comment By: Edward Loper (edloper)
Date: 2006-08-24 02:43

Message:
Logged In: YES 
user_id=195958

This bug was fixed by the following check-in:

http://mail.python.org/pipermail/python-checkins/2005-
September/047099.html

It should be closed.  A work-around for people using older 
versions of 2.4 is to do:

from profile import Profile
Profile.dispatch['c_exception'] = \
          Profile.trace_dispatch_return

----------------------------------------------------------------------

Comment By: Artur de Sousa Rocha (adsr)
Date: 2006-02-04 18:47

Message:
Logged In: YES 
user_id=728207

I've run into this bug too and decided to check the test
cases. Here's what I found:

1) Both test cases fail as mentioned above under Cygwin.

2) Under native Windows Python, profile_badcall.py passes OK
and profile_badreturn.py gives the following traceback:

Traceback (most recent call last):
  File "c:\Python24\lib\profile.py", line 611, in ?
    run('execfile(%r)' % (sys.argv[0],), options.outfile,
options.sort)
  File "c:\Python24\lib\profile.py", line 72, in run
    prof = prof.run(statement)
  File "c:\Python24\lib\profile.py", line 448, in run
    return self.runctx(cmd, dict, dict)
  File "c:\Python24\lib\profile.py", line 454, in runctx
    exec cmd in globals, locals
  File "<string>", line 1, in ?
  File "profile_badreturn.py", line 9, in ?
    sum(1,0)
TypeError: iteration over non-sequence

Python versions used:

Python 2.4.1 (#1, May 27 2005, 18:02:40)
[GCC 3.3.3 (cygwin special)] on cygwin

Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit
(Intel)] on win32


----------------------------------------------------------------------

Comment By: Andrew Bennetts (spiv)
Date: 2005-10-08 03:05

Message:
Logged In: YES 
user_id=50945

I still see this in current python 2.4, but not in current
python CVS.

Also, hotshot seems to work ok in 2.4 and CVS.

OS: ubuntu breezy (5.10)
Arch: i386


----------------------------------------------------------------------

Comment By: Gary Oberbrunner (garyoberbrunner)
Date: 2005-03-08 22:35

Message:
Logged In: YES 
user_id=417980

Is there any news on this bug?  It is possibly preventing
scons (http://scons.org) from being profiled on python 2.4
-- we get the same errors as above.  Test case is too large
to include here, but please email me with any news if
possible!  Would be glad to test a fix.
-- Gary

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1117670&group_id=5470


More information about the Python-bugs-list mailing list