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'
------------------------------------------------------------