Bugs item #1764059, was opened at 2007-07-31 08:06 Message generated for change (Comment added) made by ncoghlan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1764059&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: Threads Group: Python 2.5 >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Greg Kochanski (gpk) Assigned to: Nobody/Anonymous (nobody) Summary: _RLock.__repr__ throws exception Initial Comment: I rewrote the test code in threading.py to exercise it a bit more completely, and found the following exception. I think it arises because of a race condition. Ownership probably changes in the interval between the two parts of the "and" on line 90. Exception in thread gtp0: Traceback (most recent call last): File "/tmp/threading.py", line 460, in __bootstrap self.run() File "/tmp/threading.py", line 440, in run self.__target(*self.__args, **self.__kwargs) File "g_threading.py", line 107, in __a_thread self.sclock.wait() File "/tmp/threading.py", line 216, in wait self._note("%s.wait(): got it", self) File "/tmp/threading.py", line 46, in _note format = format % args File "/tmp/threading.py", line 189, in __repr__ return "<Condition(%s, %d)>" % (self.__lock, len(self.__waiters)) File "/tmp/threading.py", line 90, in __repr__ self.__owner and self.__owner.getName(), AttributeError: 'NoneType' object has no attribute 'getName' This was python 2.5.1, running on this: $ uname -a Linux chives 2.6.11.4-21.15-smp #1 SMP Tue Nov 28 13:39:58 UTC 2006 x86_64 x86_64 x86_64 GNU/Linux $ I attach a patch to threading.py that exhibits the bug (i.e. better testing code). ---------------------------------------------------------------------- >Comment By: Nick Coghlan (ncoghlan) Date: 2007-07-31 23:46 Message: Logged In: YES user_id=1038590 Originator: NO The race condition should be fixed in rev 56633 in Subversion. I didn't check in the test code changes, because they don't appear to actually exercise the affected code path (there is no code to call repr() on the RLock). ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1764059&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com