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 <br...@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@lists.ironpython.com > http://lists.ironpython.com/listinfo.cgi/users-ironpython.com > >
_______________________________________________ Users mailing list Users@lists.ironpython.com http://lists.ironpython.com/listinfo.cgi/users-ironpython.com