My site hosted on webfaction started returning a 500 internal server error this morning and it looks like it's choking on my routing. What's strange is that it was all working (with no changes made) for quite a while prior to this. My server log shows this at the start of the problem:
[Thu Sep 27 08:48:16 2012] [notice] caught SIGTERM, shutting down [Thu Sep 27 08:55:01 2012] [warn] mod_wsgi: Compiled for Python/2.7.1. [Thu Sep 27 08:55:01 2012] [warn] mod_wsgi: Runtime using Python/2.7.3. [Thu Sep 27 08:55:01 2012] [notice] Apache/2.2.17 (Unix) mod_wsgi/3.3 Python/2.7.3 configured -- resuming normal operations [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] mod_wsgi (pid=13716): Target WSGI script '/home/ianwscott/webapps/web2py/web2py/wsgihandler.py' cannot be loa$ [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] mod_wsgi (pid=13716): Exception occurred processing WSGI script '/home/ianwscott/webapps/web2py/web2py/wsgiha$ [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] Traceback (most recent call last): [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] File "/home/ianwscott/webapps/web2py/web2py/wsgihandler.py", line 33, in <module> [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] import gluon.main [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] File "/home/ianwscott/webapps/web2py/web2py/gluon/main.py", line 114, in <module> [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] rewrite.load() [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] File "/home/ianwscott/webapps/web2py/web2py/gluon/rewrite.py", line 320, in load [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] load(routes, appname) [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] File "/home/ianwscott/webapps/web2py/web2py/gluon/rewrite.py", line 262, in load [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] exec (data + '\\n') in symbols [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] File "<string>", line 14, in <module> [Thu Sep 27 08:56:03 2012] [error] [client 127.0.0.1] TypeError: 'tuple' object is not callable >From then until now any attempt to restart the server generates this same error with the same traceback. My routes.py file has these instructions: default_application = 'blog' # ordinarily set in base routes.py routes_app = ((r'/(?P<app>admin|blog|peergrades|paideia)\b.*', r'\g<app>'), (r'(.*)', r'blog'), (r'/?(.*)', r'blog')) routes_in = ( # make sure you do not break admin ('/admin','/admin'), ('/admin/$anything','/admin/$anything'), # make sure you do not break appadmin ('/$app/appadmin','/$app/appadmin'), ('/$app/appadmin/$anything','/$app/appadmin/$anything'), ) routes_out = ( # make sure you do not break admin ('/admin','/admin'), ('/admin/$anything','/admin/$anything'), # make sure you do not break appadmin ('/$app/appadmin','/$app/appadmin'), ('/$app/appadmin/$anything','/$app/appadmin/$anything'), ) logging = 'debug' Then I have an application specific routes.py file with these rules: #!/usr/bin/python # -*- coding: utf-8 -*- # default_application, default_controller, default_function # are used when the respective element is missing from the # (possibly rewritten) incoming URL routes_in = ( ('\b?', '/blog/plugin_blog/index'), ('/', '/blog/plugin_blog/index'), ('/index', '/blog/plugin_blog/index'), ('/index.html', '/blog/plugin_blog/index'), ('/login', '/blog/default/user/login') ('/blog/default/index', '/blog/plugin_blog/index'), ('/articles/$anything', '/blog/plugin_blog/articles/$anything'), ('/classes/$anything', '/blog/plugin_blog/classes/$anything'), ('/new_post', '/blog/plugin_blog/new_post'), ('/edit_post/$anything', '/blog/plugin_blog/edit_post/$anything'), ('/all_posts', '/blog/plugin_blog/all_posts'), ('/new_doc', '/blog/plugin_blog/new_doc'), # don't break download links ('/blog/default/download/$anything', '/blog/default/download/$anything'), # make sure you do not break admin ('/admin', '/admin'), ('/admin/$anything', '/admin/$anything'), # make sure you do not break appadmin ('/blog/appadmin', '/blog/appadmin'), ('/blog/appadmin/$anything', '/blog/appadmin/$anything') ) routes_out = ( ('/blog/plugin_blog/index', '/'), ('/blog/plugin_blog/articles/$anything', '/articles/$anything'), ('/blog/plugin_blog/classes/$anything', '/classes/$anything'), ('/blog/plugin_blog/new_post', '/new_post'), ('/blog/plugin_blog/edit_post/$anything', '/edit_post/$anything'), ('/blog/plugin_blog/all_posts', '/all_posts'), ('/blog/plugin_blog/new_doc', '/new_doc'), # don't break download links ('/blog/default/download/$anything', '/blog/default/download/$anything'), # make sure you do not break admin ('/admin', '/admin'), ('/admin/$anything', '/admin/$anything'), # make sure you do not break appadmin ('/blog/appadmin', '/blog/appadmin'), ('/blog/appadmin/$anything', '/blog/appadmin/$anything') ) Does anyone have any idea what would be causing the error? This is a production site that has been running fine for about four weeks (1 week with the routes.py set up more or less this way, 1 day with these specific settings). Thanks --