[MapProxy] 500 errors with a seed-only MBtiles source

Paul Norman penorman at mac.com
Thu Jul 31 15:32:29 PDT 2014


I have a MBtiles generated from Tilemill 1 which I am hosting with Mapproxy.

The full configuration details are at 
https://github.com/osm-ca/mapproxy-config-faramir/blob/master/mapproxy.yaml#L161, 
but these are the relevant lines

layers:
   - name: abbreviated_names
     title: Abbreviated names
     sources: [abbreviated_names]
caches:
   abbreviated_names:
     sources: [seed_only]
     grids: [z12y]
     cache:
       filename: /srv/prerendered/abbreviated_names.mbtiles
       type: mbtiles

sources:
   seed_only:
     type: debug
     seed_only: true

When I request what would be a blank tile, I get a 500 error. The Apache 
log gives this detail
Traceback (most recent call last):, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/wsgiapp.py", 
line 166, in __call__, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     resp = self.handlers[handler_name].handle(req), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/base.py", 
line 30, in handle, referer: http://tile.paulnorman.ca/demo/abbreviated.html
     return handler(parsed_req), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/tile.py", 
line 81, in map, referer: http://tile.paulnorman.ca/demo/abbreviated.html
     tile = layer.render(tile_request, 
use_profiles=tile_request.use_profiles, coverage=limit_to, 
decorate_img=decorate_img), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/service/tile.py", 
line 307, in render, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     dimensions=dimensions, with_metadata=True), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/tile.py", line 
106, in load_tile_coord, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     created_tiles = creator.create_tiles([tile]), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/tile.py", line 
215, in create_tiles, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     created_tiles = self._create_single_tiles(tiles), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/tile.py", line 
239, in _create_single_tiles, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     created_tiles.extend(self._create_single_tile(tile)), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/tile.py", line 
264, in _create_single_tile, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     self.cache.store_tile(tile), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
   File 
"/srv/mapproxy/local/lib/python2.7/site-packages/mapproxy/cache/mbtiles.py", 
line 152, in store_tile, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
     cursor.execute(stmt, (level, x, y, content)), referer: 
http://tile.paulnorman.ca/demo/abbreviated.html
OperationalError: cannot modify tiles because it is a view, referer: 
http://tile.paulnorman.ca/demo/abbreviated.html


I'm not sure how to fix these errors. Thoughts?

It's not breaking the demo page 
(http://tile.paulnorman.ca/demo/abbreviated.html) because the 500 errors 
are on blank tiles, but it is filling up the logs.


More information about the MapProxy mailing list