[IronPython] Problems with hashlib and threading

Curt Hagenlocher curt at hagenlocher.org
Tue Dec 30 18:13:25 CET 2008


I'm going to guess that this is because we use a static instance
of MD5CryptoServiceProvider to do the hashing, something which may not be
thread-safe.  It looks like all of the IronPython crypto implementations do
the same thing, so the SHA functions may have a similar issue.
Please file this as a bug on Codeplex.

On Sat, Dec 20, 2008 at 1:56 PM, Brian Merrell <brian at merrells.org> wrote:

> I get the following error periodically:
>
> Exception in thread Thread-2:
> Traceback (most recent call last):
>   File "C:\Program Files\IronPython 2.0\Lib\threading.py", line 486, in
> _Thread__bootstrap_inner
>     self.run()
>   File "initial_ingest.py", line 33, in run
>     md5 = hashlib.md5(contents).hexdigest()
> SystemError: Hash not valid for use in specified state.
>
> I am not sharing a md5() object between threads and have tried to avoid any
> shared memory issues:
>
>
> class Convert(threading.Thread):
>     def __init__(self, queue):
>         threading.Thread.__init__(self)
>         self.queue = queue
>     def run(self):
>         import hashlib
>         while True:
>             abs_filename = self.queue.get()
>             f = open(abs_filename, "rb")
>             contents = f.read()
>             f.close()
>             md5 = hashlib.md5(contents).hexdigest()
>             print md5, abs_filename
>             self.queue.task_done()
>
> Any ideas why this is failing?  Thanks,
>
> -brian
>
> _______________________________________________
> Users mailing list
> Users at lists.ironpython.com
> http://lists.ironpython.com/listinfo.cgi/users-ironpython.com
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20081230/d2fedf90/attachment.html>


More information about the Ironpython-users mailing list