[issue6562] OverflowError in RLock.acquire()

2009-08-04 Thread David Roberts

David Roberts  added the comment:

Ok, so if it's a bug in (Py)Qt then I'm not going to worry about it.

I've managed to fix the issue in my case anyway, by (essentially) replacing:
image = Image.open(fname)
image.load()
tile = ImageQt(image)
with (the much more obvious way to do it):
tile = QImage(fname)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-08-04 Thread Amaury Forgeot d'Arc

Amaury Forgeot d'Arc  added the comment:

This error is certainly due to a C function that sets an exception but
does not return an error value.
When running with a debug build of python, you will see "XXX undetected
error" printed to stderr.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-08-04 Thread Fredrik Lundh

Fredrik Lundh  added the comment:

PIL is completely thread-agnostic, so I not sure there's anything PIL can 
do to fix this.

(and ImageQt is of course an interface to PyQt, which is an interface to 
Qt, which consists of a *lot* more than 50 lines...)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-08-04 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

I don't know, but you should probably contact the author, Fredrik Lundh,
and/or post on the PIL list. Since it is probably not a bug in Python
itself, I'm closing the issue.
(please reopen if you discover a problem in Python itself)

--
nosy: +effbot
resolution:  -> invalid
status: open -> closed

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-08-04 Thread David Roberts

David Roberts  added the comment:

I think I've narrowed it down to the ImageQt class provided by PIL -
commenting out the reference to this (in the constructor of the Tile
class referenced by TileProvider.run) stops the errors.

So how do I go about determining where the problem with ImageQt lies?
(It's only ~50 lines, so there can't be too many things that could
possibly go wrong)

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread David Roberts

Changes by David Roberts :


Added file: http://bugs.python.org/file14568/tilestore.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread David Roberts

David Roberts  added the comment:

Yes, it is the PIL library. Removing calls to Image.open() still results
in the same error - the exception is thrown before it even reaches that
bit of the code anyway.

Another odd thing is that the exception is only thrown on some of the
calls to get_tile_path, every second call to be exact - see the attached
log file.

I'm also attaching the relevant code from tilestore.py.

--
Added file: http://bugs.python.org/file14567/osm.log

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

Le samedi 25 juillet 2009 à 12:35 +, David Roberts a écrit :
>   File "C:\Python26\lib\ntpath.py", line 97, in join
> if path[-1] in "/\\":
> IndexError: cannot fit 'int' into an index-sized integer

This is definitely fishy and shouldn't happen in such a line of code.
Perhaps there is some deficient exception handling in one of the
extension modules you are using.

What if you remove calls to Image.open() (I assume it is the PIL
library?) and simply return filenames instead of Image objects?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread David Roberts

David Roberts  added the comment:

If I comment out all occurrences of "with self.__lock:" I then get the
same error in another part of the code:

C:\Python26\lib\threading.py:803: RuntimeWarning: tp_compare didn't
return -1 or -2 for exception
  return _active[_get_ident()]
Exception in thread Thread-4:
Traceback (most recent call last):
  File "C:\Python26\lib\threading.py", line 525, in __bootstrap_inner
self.run()
  File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tileprovider.py", line 82, in run
self.__tasks_available.acquire()
  File "C:\Python26\lib\threading.py", line 115, in acquire
me = current_thread()
  File "C:\Python26\lib\threading.py", line 803, in currentThread
return _active[_get_ident()]
OverflowError: can't convert negative value to unsigned long

Where self.__tasks_available is a threading.Condition.

If I comment out that bit, I then get the following error:

Traceback (most recent call last):
  File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tileprovider.py", line 91, in run
tile = self._load(tile_id)
  File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\dynamictileprovider.py", line 55, in _load
tile_id, True, filext=self.filext)
  File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tilestore.py", line 72, in get_tile_path
prefix = get_media_path(media_id)
  File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tilestore.py", line 46, in get_media_path
media_dir = os.path.join(tile_dir, media_hash)
  File "C:\Python26\lib\ntpath.py", line 97, in join
if path[-1] in "/\\":
IndexError: cannot fit 'int' into an index-sized integer

I'm not sure if this error is related to the other errors, but similarly
this error only occurs in this specific thread.

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

> I also noticed that there is a warning right before the exception is raised:
> 
> C:\Python26\lib\threading.py:803: RuntimeWarning: tp_compare didn't
> return -1 or -2 for exception
>   return _active[_get_ident()]

Right, it probably means the exception was raised before this very code
line, but wasn't properly signalled to the Python runtime.
Does the error disappear if you comment out the "with self.__lock" line?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread David Roberts

David Roberts  added the comment:

I haven't been able to isolate the issue. Could someone provide some
insight into what the error could possibly mean so that I have a better
idea of what I'm trying to isolate?

--

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread Amaury Forgeot d'Arc

Amaury Forgeot d'Arc  added the comment:

Could you provide a complete example for us to reproduce the issue?

--
nosy: +amaury.forgeotdarc

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread David Roberts

David Roberts  added the comment:

thread.get_ident() returns 1192 and 1560 in the cases where there is no
error, and 1316 in the case where the error is thrown. Doesn't seem
particularly unusual, and shows get_ident() isn't throwing the error itself.

I also noticed that there is a warning right before the exception is raised:

C:\Python26\lib\threading.py:803: RuntimeWarning: tp_compare didn't
return -1 or -2 for exception
  return _active[_get_ident()]

I've attached the relevant snippets of code. As you can see
OSMTileProvider (the class that is triggering the exception) doesn't
actually do all that much, and the two other classes derived from
DynamicTileProvider function correctly so I don't understand what it is
about this specific class.

--
Added file: http://bugs.python.org/file14564/tileproviders.py

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-25 Thread Gabriel Genellina

Changes by Gabriel Genellina :


--
nosy: +gagenellina

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-24 Thread Antoine Pitrou

Antoine Pitrou  added the comment:

This is strange, thread.get_ident() isn't supposed to raise this kind of
error.
Could you call it individually from the same thread to see what it returns?
Also, could you post the code for your derived class for us to see?

--
nosy: +pitrou

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue6562] OverflowError in RLock.acquire()

2009-07-24 Thread David Roberts

New submission from David Roberts :

I'm getting the following error on Windows in an application I've
written (the error does not occur on Linux):

Exception in thread Thread-4:
Traceback (most recent call last):
 File "C:\Python26\lib\threading.py", line 525, in __bootstrap_inner
   self.run()
 File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tileprovider.py", line 97, in run
   self.__tilecache[tile_id] = Tile(tile)
 File "C:\Documents and Settings\David\My
Documents\pyzui\pyzui\tilecache.py", line 165, in __setitem__
   with self.__lock:
 File "C:\Python26\lib\threading.py", line 115, in acquire
   me = current_thread()
 File "C:\Python26\lib\threading.py", line 803, in currentThread
   return _active[_get_ident()]
OverflowError: can't convert negative value to unsigned long

Where __lock is an RLock object.

The odd thing is that it only affects a single class (which is derived
from the TileProvider class in tileprovider.py, which in turn is derived
from threading.Thread). This led me to believe there was an error in my
code, but I asked on the mailing list and was told that it is likely a
bug in the threading module.

The Python version is 2.6.2.

--
components: Library (Lib), Windows
messages: 90879
nosy: davidar
severity: normal
status: open
title: OverflowError in RLock.acquire()
type: crash
versions: Python 2.6

___
Python tracker 

___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com