<type 'exceptions.IOError'>
Python 2.5.4: /opt/local/production/bin/python
Tue Jun 9 09:19:15 2026

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /usr1/local/production/www/htdocs/build/bdist.linux-x86_64/egg/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object at 0x2458e10>)
  556         """Runs the handler, flushes the streams, and ends the request."""
  557         try:
  558             protocolStatus, appStatus = self.server.handler(self)
  559         except:
  560             traceback.print_exc(file=self.stderr)
 /usr1/local/production/www/htdocs/build/bdist.linux-x86_64/egg/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi_fork.WSGIServer object at 0x206b810>, req=<flup.server.fcgi_base.Request object at 0x2458e10>)
 1116                 result = self.application(environ, start_response)
 1117                 try:
 1118                     for data in result:
 1119                         if data:
 1120                             write(data)
 /opt/local/production/www/htdocs/thumbnail.fcgi in app(environ={'DOCUMENT_ROOT': '/opt/local/production/www/htdocs', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTP_ACCEPT': '*/*', 'HTTP_ACCEPT_ENCODING': 'gzip, br, zstd, deflate', 'HTTP_CACHE_CONTROL': 'max-age=259200', 'HTTP_CONNECTION': 'keep-alive', 'HTTP_HOST': 'static.gigapan.org', 'HTTP_USER_AGENT': 'Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Geck...patible; ClaudeBot/1.0; +claudebot@anthropic.com)', 'HTTP_VIA': '1.1 squid-proxy-5b96dc6d46-lwtnh (squid/6.13)', 'HTTP_X_FORWARDED_FOR': '10.1.74.50', ...}, start_response=<function start_response at 0x21e95f0>)
  326                     background.save(tmpfile)
  327                 else:
  328                     thumbnail.render(prefix, suffix, int(fullwidth), int(fullheight), int(nlevels), tmpfile, int(outputwidth), int(outputheight), float(left), float(top), float(width), float(height))
  329                 os.rename(tmpfile,outputfile)
  330 
global thumbnail = <module 'thumbnail' from '/usr1/local/production/thumbnails/thumbnail.py'>, thumbnail.render = <function render at 0x1f31de8>, prefix = '/usr0/gigapans/20578', suffix = '.jpg', builtin int = <type 'int'>, fullwidth = 31136, fullheight = 9639, nlevels = 8, tmpfile = '/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg', outputwidth = '147', outputheight = '80', builtin float = <type 'float'>, left = 6712, top = 0, width = 17712, height = 9639
 /usr1/local/production/thumbnails/thumbnail.py in render(prefix='/usr0/gigapans/20578', suffix='.jpg', fullwidth=31136, fullheight=9639, nlevels=8, outputfilename='/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg', outputwidth=147, outputheight=80, left=6712.0, top=0.0, width=17712.0, height=9639.0)
   93         Image.ANTIALIAS)
   94     final_img = resized_img
   95     final_img.save(outputfilename, "JPEG", quality=90)
   96    
   97 
final_img = <Image.Image instance at 0x20d1638>, final_img.save = <bound method Image.save of <Image.Image instance at 0x20d1638>>, outputfilename = '/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg', quality undefined
 /opt/local/production/lib/python2.5/site-packages/PIL/Image.py in save(self=<Image.Image instance at 0x20d1638>, fp='/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg', format='JPEG', **params={'quality': 90})
 1397         if isStringType(fp):
 1398             import __builtin__
 1399             fp = __builtin__.open(fp, "wb")
 1400             close = 1
 1401         else:
fp = '/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg', __builtin__ = <module '__builtin__' (built-in)>, __builtin__.open = <built-in function open>

<type 'exceptions.IOError'>: [Errno 13] Permission denied: '/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg'
      args = (13, 'Permission denied')
      errno = 13
      filename = '/usr0/gigapans/20578/images/tmp768ee75a600f0587aea6316f327bbdb3.jpg'
      message = ''
      strerror = 'Permission denied'