[MapProxy] LockTimeout issue (mapnik)
André Pirard
A.Pirard.Papou at gmail.com
Fri Apr 5 10:24:47 PDT 2013
On 2013-04-05 18:31, Fernando Ribeiro wrote :
> Hi list,
>
> I am facing a strange issue related with tile locking, while running
> mapproxy under apache httpd with mod_wsgi.
>
> Apache and cache dirs are owned by the same user and I am currently
> serving 'on-the-fly' data from mapnik (2.0.1).
>
> The stack trace seems familiar with previous issues here on list:
>
> ...
> / File "/usr/lib/python2.6/site-packages/mapproxy/source/mapnik.py",
> line 86, in render/
> / with self.lock():/
> / File
> "/usr/lib/python2.6/site-packages/mapproxy/platform/cpython/lock.py",
> line 42, in __enter__/
> / self.lock()/
> / File
> "/usr/lib/python2.6/site-packages/mapproxy/platform/cpython/lock.py",
> line 72, in lock/
> / raise LockTimeout('another process is still running with our lock')/
> /LockTimeout: another process is still running with our lock/
>
> I can check the lock tiles on filesystem, but they seem empty (0bytes)
>
> Some config options:
> /client_timeout: 120
> /
> /
> /
> /sources:/
> / MAPNIK_OSM_OSP:/
> / type: mapnik/
> / mapfile: 'mymapfile.xml' /
> / use_mapnik2: true/
> / concurrent_requests: 1/
>
> wsgi config (from mapproxy-util):
> /from mapproxy.wsgiapp import make_wsgi_app/
> /application = make_wsgi_app(r'myconfigfile.yaml')/
>
> Any thoughts on this issue?
>
> P.S.- I can deliver 'on-the-fly' data with /serve-develop/ server, but
> I am facing a concurrency problem with mapnik OCCI plugin. I have to
> setup a preforked apache environment to overcome this problem.
Empty lock files are normal.
If it can help in any way, I sometimes also get flurries of such
messages for a source that likes not responding.
They make nothing worse except the log.
I'm just wondering if aborting with such messages is normal instead of
just timing out silently.
Cheers,
André.
[info] 127.0.0.1 - - [...] "GET /service?... 500 -
[...] mapproxy.source.wms - WARNING - could not retrieve WMS map: No
response from URL "...": timed out
[info] 127.0.0.1 - - [...] "..." 200 -
[...] mapproxy.source.request - INFO - GET ...
[...] mapproxy.source.wms - WARNING - could not retrieve WMS map: No
response from URL "...": timed out
[...] mapproxy.wsgiapp - CRITICAL - fatal error in service for /service ...
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/mapproxy/wsgiapp.py", line 166, in
__call__
resp = self.handlers[handler_name].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/ows.py", line 38,
in handle
return self.services[service].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/base.py", line
30, in handle
return handler(parsed_req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
111, in map
renderer.render(merger)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
471, in render
layer_merger)
File "/usr/lib/pymodules/python2.6/mapproxy/util/async.py", line 204,
in _single_call
result = func(*args)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
513, in _render_layer
layer_img = layer.get_map(self.query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 404, in
get_map
result = self._image(query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 437, in
_image
tile_collection =
self.tile_manager.load_tile_coords(affected_tile_coords,
with_metadata=query.tiled_only)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 126,
in load_tile_coords
created_tiles = creator.create_tiles(uncached_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 227,
in create_tiles
created_tiles = self._create_meta_tiles(meta_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 300,
in _create_meta_tiles
created_tiles.extend(self._create_meta_tile(meta_tile))
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 307,
in _create_meta_tile
with self.tile_mgr.lock(main_tile):
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
42, in __enter__
self.lock()
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
72, in lock
raise LockTimeout('another process is still running with our lock')
LockTimeout: another process is still running with our lock
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/mapproxy/wsgiapp.py", line 166, in
__call__
resp = self.handlers[handler_name].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/ows.py", line 38,
in handle
return self.services[service].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/base.py", line
30, in handle
return handler(parsed_req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
111, in map
renderer.render(merger)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
471, in render
layer_merger)
File "/usr/lib/pymodules/python2.6/mapproxy/util/async.py", line 204,
in _single_call
result = func(*args)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
513, in _render_layer
layer_img = layer.get_map(self.query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 404, in
get_map
result = self._image(query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 437, in
_image
tile_collection =
self.tile_manager.load_tile_coords(affected_tile_coords,
with_metadata=query.tiled_only)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 126,
in load_tile_coords
created_tiles = creator.create_tiles(uncached_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 227,
in create_tiles
created_tiles = self._create_meta_tiles(meta_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 300,
in _create_meta_tiles
created_tiles.extend(self._create_meta_tile(meta_tile))
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 307,
in _create_meta_tile
with self.tile_mgr.lock(main_tile):
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
42, in __enter__
self.lock()
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
72, in lock
raise LockTimeout('another process is still running with our lock')
LockTimeout: another process is still running with our lock
[info] 127.0.0.1 - - [...] "..." 500 -
[...] mapproxy.source.request - INFO - GET ...
[...] mapproxy.source.wms - WARNING - could not retrieve WMS map: No
response from URL "...": timed out
[info] 127.0.0.1 - - [...] "GET ..." 200 -
[...] mapproxy.wsgiapp - CRITICAL - fatal error in service for /service
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/mapproxy/wsgiapp.py", line 166, in
__call__
resp = self.handlers[handler_name].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/ows.py", line 38,
in handle
return self.services[service].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/base.py", line
30, in handle
return handler(parsed_req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
111, in map
renderer.render(merger)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
471, in render
layer_merger)
File "/usr/lib/pymodules/python2.6/mapproxy/util/async.py", line 204,
in _single_call
result = func(*args)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
513, in _render_layer
layer_img = layer.get_map(self.query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 404, in
get_map
result = self._image(query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 437, in
_image
tile_collection =
self.tile_manager.load_tile_coords(affected_tile_coords,
with_metadata=query.tiled_only)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 126,
in load_tile_coords
created_tiles = creator.create_tiles(uncached_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 227,
in create_tiles
created_tiles = self._create_meta_tiles(meta_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 300,
in _create_meta_tiles
created_tiles.extend(self._create_meta_tile(meta_tile))
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 307,
in _create_meta_tile
with self.tile_mgr.lock(main_tile):
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
42, in __enter__
self.lock()
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
72, in lock
raise LockTimeout('another process is still running with our lock')
LockTimeout: another process is still running with our lock
Traceback (most recent call last):
File "/usr/lib/pymodules/python2.6/mapproxy/wsgiapp.py", line 166, in
__call__
resp = self.handlers[handler_name].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/ows.py", line 38,
in handle
return self.services[service].handle(req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/base.py", line
30, in handle
return handler(parsed_req)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
111, in map
renderer.render(merger)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
471, in render
layer_merger)
File "/usr/lib/pymodules/python2.6/mapproxy/util/async.py", line 204,
in _single_call
result = func(*args)
File "/usr/lib/pymodules/python2.6/mapproxy/service/wms.py", line
513, in _render_layer
layer_img = layer.get_map(self.query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 404, in
get_map
result = self._image(query)
File "/usr/lib/pymodules/python2.6/mapproxy/layer.py", line 437, in
_image
tile_collection =
self.tile_manager.load_tile_coords(affected_tile_coords,
with_metadata=query.tiled_only)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 126,
in load_tile_coords
created_tiles = creator.create_tiles(uncached_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 227,
in create_tiles
created_tiles = self._create_meta_tiles(meta_tiles)
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 300,
in _create_meta_tiles
created_tiles.extend(self._create_meta_tile(meta_tile))
File "/usr/lib/pymodules/python2.6/mapproxy/cache/tile.py", line 307,
in _create_meta_tile
with self.tile_mgr.lock(main_tile):
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
42, in __enter__
self.lock()
File
"/usr/lib/pymodules/python2.6/mapproxy/platform/cpython/lock.py", line
72, in lock
raise LockTimeout('another process is still running with our lock')
LockTimeout: another process is still running with our lock
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapproxy/attachments/20130405/28b802a5/attachment-0001.html>
More information about the MapProxy
mailing list