[issue6598] calling email.utils.make_msgid frequently has a non-trivial probability of generating colliding ids

Serhiy Storchaka report at bugs.python.org
Tue Nov 10 12:43:49 EST 2015


Serhiy Storchaka added the comment:

http://buildbot.python.org/all/builders/x86%20Tiger%202.7/builds/3246/steps/test/logs/stdio
======================================================================
FAIL: test_make_msgid_collisions (email.test.test_email.TestMiscellaneous)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/db3l/buildarea/2.7.bolen-tiger/build/Lib/email/test/test_email.py", line 2434, in test_make_msgid_collisions
    pass
  File "/Users/db3l/buildarea/2.7.bolen-tiger/build/Lib/contextlib.py", line 24, in __exit__
    self.gen.next()
  File "/Users/db3l/buildarea/2.7.bolen-tiger/build/Lib/test/test_support.py", line 1570, in start_threads
    raise AssertionError('Unable to join %d threads' % len(started))
AssertionError: Unable to join 5 threads

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

Threads that should be finished for 3 seconds can't be finished for 15 minutes. It looks as clock() wrapped around. From clock (3) manpage:

    Note that the time can wrap around.  On a 32-bit system where CLOCKS_PER_SEC equals 1000000 this function will return the same value approximately every 72 minutes.

The solution is to use monotonic() (time() on older releases) instead of clock().

----------

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue6598>
_______________________________________


More information about the Python-bugs-list mailing list