[ python-Bugs-971395 ] thread.name crashes interpreter
SourceForge.net
noreply at sourceforge.net
Sun Jun 13 22:13:27 EDT 2004
Bugs item #971395, was opened at 2004-06-11 16:15
Message generated for change (Comment added) made by tim_one
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=971395&group_id=5470
Category: Threads
Group: Python 2.3
>Status: Closed
Resolution: Works For Me
Priority: 5
Submitted By: Jonathan Ellis (ellisj)
Assigned to: Nobody/Anonymous (nobody)
Summary: thread.name crashes interpreter
Initial Comment:
I changed the __repr__ method of the cookbook Future
class --
http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/84317
-- as follows:
def __repr__(self):
return '<%s at %s:%s>' % (self.__T.name,
hex(id(self)), self.__status)
this caused obscure crashes with the uninformative message
Fatal Python error: PyEval_SaveThread: NULL tstate
changing to __T.getName() fixed the crashing.
It seems to me that thread.name should be __name or
_name to help novices not shoot themselves in the foot.
----------------------------------------------------------------------
>Comment By: Tim Peters (tim_one)
Date: 2004-06-13 22:13
Message:
Logged In: YES
user_id=31435
Well, in the absence of a test case, we can't even be sure
this specific change was the true cause, so I'm closing this
for now. Feel encouraged to reopen it if more evidence
appears.
FWIW, "NULL tstate" messages are historically almost all due
to flawed logic in 3rd-party C extension modules.
----------------------------------------------------------------------
Comment By: Jonathan Ellis (ellisj)
Date: 2004-06-12 23:57
Message:
Logged In: YES
user_id=657828
sorry, if I had been able to fine a simple crash case I
would have given it. :-|
----------------------------------------------------------------------
Comment By: Tim Peters (tim_one)
Date: 2004-06-12 22:58
Message:
Logged In: YES
user_id=31435
I've been unable to reproduce any problems with Future
modified to use your __repr__, under Python 2.3.4 on
Windows. Of course any attempt to invoke that method dies
with
AttributeError: 'Thread' object has no attribute 'name'
but that's not a bug.
Python won't change to add other ways of getting the thread
name -- the Python philosophy is to supply one clear way to
do a thing, and is opposed to Tower of Babel approaches that
try to cater to everything someone might type off the top of
their head. There's no end to that (why not .Name
and .thread_name and ... too?).
Would you kindly add specific code to this report, sufficient
to reproduce the fatal Python error you mentioned? If that
occurs, it's a bug, but I've been unable to provoke it.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=971395&group_id=5470
More information about the Python-bugs-list
mailing list