[Mark English] > Every once in a while since I moved to Python 2.4 I've been seeing the > following exception in threading.py Condition: > > File "mctest3.py", line 1598, in WaitForMessages > self.condResponses.wait(1.0) > File "C:\Program Files\Python24\lib\threading.py", line 221, in wait > delay = min(delay * 2, remaining, .05) > OverflowError: long int too large to convert to int > > Is there something I'm doing wrong here ? I've looked at my code, and > glanced at threading.py, and I can't see any obvious errors (multiplying > a float by 2, using the result of the time.time() call none of which use > longs as far as I know). > > I added some print statements to threading.py and the exception is > thrown on the first iteration when delay is 0.0005 and remaining is 1.0 > However the code does keep running...
The error is particularly bizarre, since none of min's arguments are even integers (they're all floats). The only int in sight is "2". Which C extension modules (outside of the ones shipped with Python) are you using? The most common cause for "impossible exceptions" is flawed C code in an extension that fails to check a Python C API call for an error return. The exception remains set then, but the flawed C code doesn't tell the interpreter that it failed. The exception gets raised at a seemingly random later time then. This is usually in a non-core extension just because the core C code is so heavily used that such problems rarely survive to a final release. Do you use long (unbounded) ints _anywhere_ in the app that you know of? > ---------<code>-------------- > Delay: 0.0005 Remaining: 1.0 > Traceback (most recent call last): > File "<stdin>", line 1, in ? > File "mctest3.py", line 2665, in getLogonResponse > respLogon.WaitForMessages() > File "mctest3.py", line 1598, in WaitForMessages > self.condResponses.wait(1.0) > File "C:\Program Files\Python24\lib\threading.py", line 222, in wait > delay = min(delay * 2, remaining, .05) > OverflowError: long int too large to convert to int > Delay: 0.016 Remaining: 8.07899999619 > Delay: 0.032 Remaining: 8.01600003242 > Delay: 0.05 Remaining: 7.95399999619 > Done > Message response handler got message <LogonStatus4 object at 0x0167B540> > ----------</code>------------- > > Is this something to do with min ? Converting 1.0 ? Almost certainly neither, and there have been no other reports of this. That's more reason to suspect a non-core extension module. -- http://mail.python.org/mailman/listinfo/python-list