This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: profiler: Bad return and Bad call errors with exceptions
Type: Stage:
Components: Library (Lib) Versions:
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: adsr, donut, edloper, garyoberbrunner, georg.brandl, spiv, therve
Priority: normal Keywords:

Created on 2005-02-07 04:50 by donut, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
profile_badcall.py donut, 2005-02-07 04:50 test case one: 'Bad call' error.
profile_badreturn.py donut, 2005-02-07 04:51 test case two: 'Bad return' error.
Messages (7)
msg24181 - (view) Author: Matthew Mueller (donut) Date: 2005-02-07 04:50
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
msg24182 - (view) Author: Gary Oberbrunner (garyoberbrunner) Date: 2005-03-09 03:35
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
msg24183 - (view) Author: Andrew Bennetts (spiv) Date: 2005-10-08 07:05
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
msg24184 - (view) Author: Artur de Sousa Rocha (adsr) Date: 2006-02-04 23:47
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
msg24185 - (view) Author: Edward Loper (edloper) * (Python triager) Date: 2006-08-24 06:43
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
msg57830 - (view) Author: Thomas Herve (therve) * Date: 2007-11-25 15:29
Ping to close this?
msg57831 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2007-11-25 17:06
With pleasure.
History
Date User Action Args
2022-04-11 14:56:09adminsetgithub: 41539
2007-11-25 17:06:01georg.brandlsetstatus: open -> closed
nosy: + georg.brandl
resolution: fixed
messages: + msg57831
2007-11-25 15:29:09thervesetnosy: + therve
messages: + msg57830
2005-02-07 04:50:54donutcreate