Dear Galaxy community,
I have noticed on forums that some users are experiencing this problem too, but no clues on how to fix it. When I set debug = false in universe.wsgi.ini, I get a server error in the history frame (history works perfectly when debug = true). Trying to create a new history, or to upload a saved one, doesn't work either. I use postgresql and nginx, but I this problem also appears on a freshly cloned instance of galaxy-dist. I tried on two machines with Fedora 13 + python 2.6.4 and Fedora 17 + python 2.7.3. As my goal is to use Galaxy in a production environment (with 2 webservers, 1 manager and 2 handlers), I would really like to be able to turn off debug. Here is what I can find in my paster.log when I turn off debug.
Thanks a lot if anyone has a solution!
David
Starting server in PID 4664.
serving on 0.0.0.0:8081 view at http://127.0.0.1:8081
127.0.0.1 - - [03/Aug/2012:16:26:49 +0200] "GET / HTTP/1.0" 200 - "-" "Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
127.0.0.1 - - [03/Aug/2012:16:26:49 +0200] "GET /root/tool_menu HTTP/1.0" 200 - "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
127.0.0.1 - - [03/Aug/2012:16:26:49 +0200] "GET /history HTTP/1.0" 200 - "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
127.0.0.1 - - [03/Aug/2012:16:26:49 +0200] "GET /history HTTP/1.0" 500 - "http://127.0.0.1:8080/" "Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1"
Error - <type 'exceptions.TypeError'>: 'NoneType' object is not callable
URL: http://127.0.0.1/history
File '/usr/lib/python2.7/site-packages/paste/exceptions/errormiddleware.py', line 144 in __call__
app_iter = self.application(environ, sr_checker)
File '/usr/lib/python2.7/site-packages/paste/recursive.py', line 84 in __call__
return self.application(environ, start_response)
File '/usr/lib/python2.7/site-packages/paste/httpexceptions.py', line 633 in __call__
return self.application(environ, start_response)
File '/home/galaxy2ei/galaxy-dist/lib/galaxy/web/framework/base.py', line 169 in __call__
return body( environ, start_response )
File '/home/galaxy2ei/galaxy-dist/lib/galaxy/web/framework/__init__.py', line 772 in render
template.render_context( context )
File '/home/galaxy2ei/galaxy-dist/eggs/Mako-0.4.1-py2.7.egg/mako/template.py', line 319 in render_context
**kwargs)
File '/home/galaxy2ei/galaxy-dist/eggs/Mako-0.4.1-py2.7.egg/mako/runtime.py', line 692 in _render_context
_exec_template(inherit, lclcontext, args=args, kwargs=kwargs)
File '/home/galaxy2ei/galaxy-dist/eggs/Mako-0.4.1-py2.7.egg/mako/runtime.py', line 718 in _exec_template
callable_(context, *args, **kwargs)
File '/home/galaxy2ei/galaxy-dist/database/compiled_templates/root/history.mako.py', line 62 in render_body
__M_writer(u'\n\n')
File '/home/galaxy2ei/galaxy-dist/lib/galaxy/web/framework/__init__.py', line 769 in write
response_write( d.encode( 'utf-8' ) )
TypeError: 'NoneType' object is not callable
CGI Variables
-------------
CONTENT_LENGTH: '0'
HTTP_ACCEPT: 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
HTTP_ACCEPT_ENCODING: 'gzip, deflate'
HTTP_ACCEPT_LANGUAGE: 'en-us,en;q=0.5'
HTTP_CONNECTION: 'close'
HTTP_COOKIE: 'galaxysession=c6ca0ddb55be603a1a924b5a883eb84f93f9e2c6424cabed485f00c49dc51dd6632e1e679e865175'
HTTP_HOST: '127.0.0.1'
HTTP_REFERER: 'http://127.0.0.1:8080/'
HTTP_USER_AGENT: 'Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20100101 Firefox/14.0.1'
HTTP_X_FORWARDED_FOR: '127.0.0.1'
HTTP_X_FORWARDED_HOST: '127.0.0.1'
ORGINAL_HTTP_HOST: 'galaxy_app'
ORGINAL_REMOTE_ADDR: '127.0.0.1'
PATH_INFO: '/history'
REMOTE_ADDR: '127.0.0.1'
REQUEST_METHOD: 'GET'
SERVER_NAME: '0.0.0.0'
SERVER_PORT: '8081'
SERVER_PROTOCOL: 'HTTP/1.0'
Configuration
-------------
__file__: '/home/galaxy2ei/galaxy-dist/universe_wsgi.ini'
admin_users: 'david.roquis@yahoo.com, galaxytest@2ei.com'
allow_library_path_paste: 'True'
allow_user_dataset_purge: 'True'
allow_user_deletion: 'True'
allow_user_impersonation: 'True'
database_connection: 'postgres://galaxy2ei:galaxy2ei@localhost:5432/galaxyprod'
database_engine_option_server_side_cursors: 'True'
database_engine_option_strategy: 'threadlocal'
datatypes_config_file: 'datatypes_conf.xml'
debug: 'False'
default_job_handlers: 'handler0'
enable_quotas: 'True'
file_path: 'database/files'
here: '/home/galaxy2ei/galaxy-dist'
job_handlers: 'handler0'
job_manager: 'manager'
job_working_directory: 'database/job_working_directory'
library_import_dir: '/home/galaxy2ei/Downloads'
new_file_path: 'database/tmp'
nginx_upload_path: '/_upload'
nginx_upload_store: 'database/tmp/upload_store'
nginx_x_accel_redirect_base: '/_x_accel_redirect'
nglims_config_file: 'tool-data/nglims.yaml'
set_metadata_externally: 'True'
static_cache_time: '360'
static_dir: '/home/galaxy2ei/galaxy-dist/static/'
static_enabled: 'True'
static_favicon_dir: '/home/galaxy2ei/galaxy-dist/static/favicon.ico'
static_images_dir: '/home/galaxy2ei/galaxy-dist/static/images'
static_robots_txt: '/home/galaxy2ei/galaxy-dist/static/robots.txt'
static_scripts_dir: '/home/galaxy2ei/galaxy-dist/static/scripts/'
static_style_dir: '/home/galaxy2ei/galaxy-dist/static/june_2007_style/blue'
tool_config_file: 'tool_conf.xml,shed_tool_conf.xml'
tool_data_path: 'tool-data'
tool_path: 'tools'
upstream_gzip: 'True'
use_interactive: 'False'
use_nglims: 'False'
user_library_import_dir: '/home/galaxy2ei/Downloads'
WSGI Variables
--------------
application: <paste.recursive.RecursiveMiddleware object at 0x8077450>
paste.cookies: (<SimpleCookie: galaxysession='c6ca0ddb55be603a1a924b5a883eb84f93f9e2c6424cabed485f00c49dc51dd6632e1e679e865175'>, 'galaxysession=c6ca0ddb55be603a1a924b5a883eb84f93f9e2c6424cabed485f00c49dc51dd6632e1e679e865175')
paste.expected_exceptions: [<class 'paste.httpexceptions.HTTPException'>]
paste.httpexceptions: <paste.httpexceptions.HTTPExceptionHandler object at 0x8077350>
paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x7f34ec7f5950>
paste.recursive.forward: <paste.recursive.Forwarder from />
paste.recursive.include: <paste.recursive.Includer from />
paste.recursive.include_app_iter: <paste.recursive.IncluderAppIter from />
paste.recursive.script_name: ''
paste.throw_errors: True
webob._parsed_query_vars: (MultiDict([]), '')
wsgi process: 'Multithreaded'
------------------------------------------------------------