keeleysam / munkireport

Automatically exported from code.google.com/p/munkireport
Other
0 stars 0 forks source link

SQLAlchemy 0.6.x with SQLite and SingletonThreadPool gives Error 500 #13

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
I had noticed this using the released munkireport version on several servers 
before and now still noticing on a couple servers that i have updated to the 
latest via svn.

seemingly random, via the web interface i click on a computer to get a report, 
or hit the client list and i get a 500 error.  because of this the preflight 
and postflight sometimes do not log properly since they get this as well - 
leaving my report with many computers that have run but report that they are 
still in progress.

output of one computer that got the error on preflight:

Gipper:~ sdesrosiers$ sudo /usr/local/munki/managedsoftwareupdate -v
Performing preflight tasks...
Checking external IP
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <title>A 500 Error has Occurred </title>
    <link rel="stylesheet" type="text/css" media="screen" href="/css/style.css"/>
    <link rel="stylesheet" type="text/css" media="screen" href="/css/admin.css"/>
</head>
<body>
  <div id="header">
    <h1>MunkiReport</h1>
  </div>
  <ul id="mainmenu">
    <li class="first"><a href="/" class="">Start</a></li>
    <li><a href="/view" class="">Reports</a></li>
        <li id="login" class="loginlogout"><a href="/login">Login</a></li>
  </ul>
  <div id="content">
<h1>Error 500</h1>
<div><p>We're sorry but we weren't able to process  this request.</p></div>
    <!-- End of main_content -->
<div id="footer">
  <div class="clearingdiv"/>
</div>
  </div>
  <div style="text-align: right; margin: 10px; color: #bbb; font-size: 80%;">
    <i>MunkiReport version 0.7.0</i>
  </div>
</body>
</html>
Managed Software Update Tool
Copyright 2010 The Munki Project
http://code.google.com/p/munki

Getting manifest client_manifest...
Using manifest: account
**Checking for installs**
Getting catalog all...
Getting manifest required...
source-admin_fix version 2 (or newer) is already installed.
MunkiScripts version 1.0 (or newer) is already installed.
Local MCX version 1.6 (or newer) is already installed.
Software Update Supression version 1 (or newer) is already installed.
**Checking for removals**
**Checking for managed updates**
No change in InstallInfo.
No changes to managed software are available.
postflight logged for Gipper

i have noticed this on all servers i have deployed on at one point - but have 
now updated two of them to the latest and still have issue.  the servers are 
running 10.6.7

how can i give you more detail?

Original issue reported on code.google.com by sbo...@trmacs.com on 30 Apr 2011 at 3:09

GoogleCodeExporter commented 9 years ago
Check the log file (currently dumped on stdout) for the actual error message. 
You can also enable the debug console by editing MunkiReport.ini by setting 
debug to true.

Original comment by MagerV...@gmail.com on 1 May 2011 at 8:17

GoogleCodeExporter commented 9 years ago
stdout when 500 error occurred:

Error - <class 'sqlalchemy.exc.ProgrammingError'>: (ProgrammingError) Cannot 
operate on a closed database. None [{}]
URL: http://office.source-marketing.com:8444/view
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/WebError-0.10.3-py2.6.e
gg/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/configuration.py', line 796 in remover
  return app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/repoze.tm2-1.0b1-py2.6.
egg/repoze/tm/__init__.py', line 23 in __call__
  result = self.application(environ, save_status_and_headers)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 43 in __call__
  return self.wsgi_app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 68 in wsgi_app
  resp = req.get_response(self.application)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/resource_injector.py', line 68 in _injector
  resp = req.get_response(app)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Routes-1.12.3-py2.6.egg
/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 107 in __call__
  response = self.dispatch(controller, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 312 in dispatch
  return controller(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/lib/base.py', line 32 in __call__
  return TGController.__call__(self, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 211 in __call__
  response = self._dispatch_call()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 162 in _dispatch_call
  response = self._inspect_call(func)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 105 in _inspect_call
  result = self._perform_call(func, args)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/dispatcher.py', line 254 in _perform_call
  r = self._call(func, params, remainder=remainder)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/decoratedcontroller.py', line 111 in _call
  output = controller(*remainder, **dict(params))
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/controllers/view.py', line 58 in index
  error_clients=DBSession.query(Client).filter(Client.errors > 0).order_by(sort_key).all()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1589 in all
  return list(self)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1699 in __iter__
  return self._execute_and_instances(context)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1704 in _execute_and_instances
  mapper=self._mapper_zero_or_none())
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/session.py', line 724 in execute
  clause, params or {})
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1191 in execute
  params)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1269 in _execute_clauseelement
  parameters=params
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1382 in __create_execution_context
  None, None)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1377 in __create_execution_context
  connection=self, **kwargs)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/default.py', line 392 in __init__
  self.cursor = self.create_cursor()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/default.py', line 534 in create_cursor
  return self._connection.connection.cursor()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/pool.py', line 423 in cursor
  c = self.connection.cursor(*args, **kwargs)
ProgrammingError: (ProgrammingError) Cannot operate on a closed database. None 
[{}]

CGI Variables
-------------
  AUTH_TYPE: 'cookie'
  CONTENT_LENGTH: '0'
  CONTENT_TYPE: '; charset=utf-8'
  HTTP_ACCEPT: 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
  HTTP_ACCEPT_ENCODING: 'gzip, deflate'
  HTTP_ACCEPT_LANGUAGE: 'en-us'
  HTTP_CONNECTION: 'keep-alive'
  HTTP_COOKIE: 'auth_tkt="0eadc207e9abc237913db8ddcab825a74dbd6f0dmunkiadmin!userid_type:unicode"; utcOffset=-5; __utma=21680057.748178518.1279107560.1279107560.1279107560.1'
  HTTP_HOST: 'office.source-marketing.com:8444'
  HTTP_REFERER: 'http://office.source-marketing.com:8444/view/report/00:17:f2:0f:42:14'
  HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1'
  PATH_INFO: '/view'
  REMOTE_ADDR: '10.10.5.1'
  REMOTE_USER: u'munkiadmin'
  REMOTE_USER_DATA: 'userid_type:unicode'
  REMOTE_USER_TOKENS: ['']
  REQUEST_METHOD: 'GET'
  SERVER_NAME: '0.0.0.0'
  SERVER_PORT: '8444'
  SERVER_PROTOCOL: 'HTTP/1.1'

WSGI Variables
--------------
  application: <function remover at 0x104259f50>
  beaker.cache: <beaker.cache.CacheManager object at 0x1042f1e90>
  beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x1042f1e10>>
  beaker.session: {'_accessed_time': 1304260396.715749, '_creation_time': 1304260396.715749}
  paste.cookies: (<SimpleCookie: __utma='21680057.748178518.1279107560.1279107560.1279107560.1' auth_tkt='0eadc207e9abc237913db8ddcab825a74dbd6f0dmunkiadmin!userid_type:unicode' utcOffset='-5'>, 'auth_tkt="0eadc207e9abc237913db8ddcab825a74dbd6f0dmunkiadmin!userid_type:unicode"; utcOffset=-5; __utma=21680057.748178518.1279107560.1279107560.1279107560.1')
  paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x101d5e9d0>
  paste.registry: <paste.registry.Registry object at 0x104ab61d0>
  paste.throw_errors: True
  pylons.action_method: <bound method RootController.routes_placeholder of <munkireport.controllers.root.RootController object at 0x1044d1850>>
  pylons.controller: <munkireport.controllers.root.RootController object at 0x1044d1850>
  pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'}
  pylons.pylons: <pylons.util.PylonsContext object at 0x1050a4990>
  pylons.routes_dict: {'url': u'/view', 'action': u'routes_placeholder', 'controller': u'root'}
  repoze.tm.active: True
  repoze.what.adapters: {'groups': {'dscl_groups': <munkireport.lib.macosxauth.MacOSXGroupAdapter object at 0x102aca190>, 'ini_groups': <repoze.what.plugins.ini.ini.INIGroupAdapter object at 0x104258790>}, 'permissions': {'ini_permissions': <repoze.what.plugins.ini.ini.INIPermissionsAdapter object at 0x102ac6390>}}
  repoze.what.credentials: {'repoze.what.userid': u'munkiadmin', 'groups': (u'admins', u'viewers'), 'permissions': (u'admin', u'view')}
  repoze.who.identity: <repoze.who identity (hidden, dict-like) at 4366183200>
  repoze.who.logger: None
  repoze.who.plugins: {'authorization_md': <repoze.what.middleware.AuthorizationMetadata object at 0x102ac6750>, 'macosx_metadataprovider': <munkireport.lib.macosxauth.MacOSXMetadataProvider object at 0x102ac6d50>, 'macosx_authenticator': <munkireport.lib.macosxauth.MacOSXAuthenticator object at 0x102ac6150>, 'file_metadataprovider': <munkireport.lib.fileauth.FileMetadataProvider object at 0x102ac6dd0>, 'auth_tkt': <AuthTktCookiePlugin 4339819216>, 'friendlyform': <FriendlyFormPlugin 4339820240>, 'file_authenticator': <munkireport.lib.fileauth.FileAuthenticator object at 0x102ac6210>}
  routes.route: <routes.route.Route object at 0x102a19ed0>
  routes.url: <routes.util.URLGenerator object at 0x1050a44d0>
  toscawidgets.framework: <tw.mods.base.HostFramework object at 0x104258210>
  toscawidgets.javascript.require_once: False
  toscawidgets.prefix: '/toscawidgets'
  webob._parsed_query_vars: (GET([]), '')
  webob.adhoc_attrs: {'controller_state': <tg.controllers.dispatcher.DispatchState object at 0x1044d1310>, 'language': 'en-us', 'start_response': <function repl_start_response at 0x1050cacf8>, 'response_type': None, 'response_ext': None, 'identity': <repoze.who identity (hidden, dict-like) at 4366183200>}
  wsgi process: 'Multithreaded'
  wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x1050a44d0>, {'url': u'/view', 'action': u'routes_placeholder', 'controller': u'root'})
------------------------------------------------------------

Original comment by sbo...@trmacs.com on 1 May 2011 at 2:34

GoogleCodeExporter commented 9 years ago
Try setting sqlalchemy.poolclass = NullPool in /Library/Application 
Support/MunkiReport.ini (line 57).

Original comment by MagerV...@gmail.com on 2 May 2011 at 10:47

GoogleCodeExporter commented 9 years ago
after that and launching MunkiReport i get:

bash-3.2# /Library/MunkiReport/bin/server.sh 
server.sh launching MunkiReport
Traceback (most recent call last):
  File "/Library/MunkiReport/Python/bin/paster", line 8, in <module>
    load_entry_point('PasteScript==1.7.3', 'console_scripts', 'paster')()
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 84, in run
    invoke(command, command_name, options, args[1:])
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 123, in invoke
    exit_code = runner.run(args)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/command.py", line 218, in run
    result = self.command()
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/serve.py", line 276, in command
    relative_to=base, global_conf=vars)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteScript-1.7.3-py2.6.egg/paste/script/serve.py", line 313, in loadapp
    **kw)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteDeploy-1.3.4-py2.6.egg/paste/deploy/loadwsgi.py", line 203, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteDeploy-1.3.4-py2.6.egg/paste/deploy/loadwsgi.py", line 224, in loadobj
    return context.create()
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteDeploy-1.3.4-py2.6.egg/paste/deploy/loadwsgi.py", line 617, in create
    return self.object_type.invoke(self)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteDeploy-1.3.4-py2.6.egg/paste/deploy/loadwsgi.py", line 109, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/PasteDeploy-1.3.4-py2.6.egg/paste/deploy/util/fixtypeerror.py", line 57, in fix_call
    val = callable(*args, **kw)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-py2.6.egg/munkireport/config/middleware.py", line 49, in make_app
    app = make_base_app(global_conf, full_stack=True, **app_conf)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.egg/tg/configuration.py", line 841, in make_base_app
    load_environment(global_conf, app_conf)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.egg/tg/configuration.py", line 589, in load_environment
    self.setup_persistence()
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.egg/tg/configuration.py", line 499, in setup_persistence
    self.setup_sqlalchemy()
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.egg/tg/configuration.py", line 535, in setup_sqlalchemy
    engine = engine_from_config(pylons_config, 'sqlalchemy.')
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.egg/sqlalchemy/engine/__init__.py", line 281, in engine_from_config
    return create_engine(url, **opts)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.egg/sqlalchemy/engine/__init__.py", line 263, in create_engine
    return strategy.create(*args, **kwargs)
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.egg/sqlalchemy/engine/strategies.py", line 104, in create
    for k in util.get_cls_kwargs(poolclass):
  File "/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.egg/sqlalchemy/util.py", line 381, in get_cls_kwargs
    for c in cls.__mro__:
AttributeError: 'str' object has no attribute '__mro__'
bash-3.2# 

this is the ini section:

sqlalchemy.url = sqlite:////Library/Application 
Support/MunkiReport/MunkiReport.db
#echo shouldn't be used together with the logging module.
sqlalchemy.echo = false
sqlalchemy.echo_pool = false
sqlalchemy.poolclass = NullPool
sqlalchemy.pool_recycle = 3600

Original comment by sbo...@trmacs.com on 2 May 2011 at 11:19

GoogleCodeExporter commented 9 years ago
Ah, everything in the ini is a text string and sqlalchemy needs a class. 
Instead, edit 
/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-py
2.6.egg/munkireport/config/app_cfg.py:

Index: munkireport/config/app_cfg.py
===================================================================
--- munkireport/config/app_cfg.py   (revision 172)
+++ munkireport/config/app_cfg.py   (working copy)
@@ -38,6 +38,8 @@
 base_config.use_sqlalchemy = True
 base_config.model = munkireport.model
 base_config.DBSession = munkireport.model.DBSession
+import sqlalchemy
+base_config.sqlalchemy = {"poolclass": sqlalchemy.pool.NullPool}

 # Configure the authentication backend

Original comment by MagerV...@gmail.com on 2 May 2011 at 1:18

GoogleCodeExporter commented 9 years ago
thanks for the quick responses!  it runs modifying the egg file like above...  
although i duplicated the problem quickly...  do you have any issues doing 
repeated queries on munkireport?

bash-3.2# /Library/MunkiReport/bin/server.sh 
server.sh launching MunkiReport
Starting server in PID 28499.
serving on 0.0.0.0:8444 view at http://127.0.0.1:8444
Error - <class 'sqlalchemy.exc.ProgrammingError'>: (ProgrammingError) Cannot 
operate on a closed database. None [{}]
URL: http://office.source-marketing.com:8444/view
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/WebError-0.10.3-py2.6.e
gg/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/configuration.py', line 796 in remover
  return app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/repoze.tm2-1.0b1-py2.6.
egg/repoze/tm/__init__.py', line 23 in __call__
  result = self.application(environ, save_status_and_headers)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 43 in __call__
  return self.wsgi_app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 68 in wsgi_app
  resp = req.get_response(self.application)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/resource_injector.py', line 68 in _injector
  resp = req.get_response(app)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Routes-1.12.3-py2.6.egg
/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 107 in __call__
  response = self.dispatch(controller, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 312 in dispatch
  return controller(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/lib/base.py', line 32 in __call__
  return TGController.__call__(self, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 211 in __call__
  response = self._dispatch_call()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 162 in _dispatch_call
  response = self._inspect_call(func)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 105 in _inspect_call
  result = self._perform_call(func, args)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/dispatcher.py', line 254 in _perform_call
  r = self._call(func, params, remainder=remainder)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/decoratedcontroller.py', line 111 in _call
  output = controller(*remainder, **dict(params))
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/controllers/view.py', line 58 in index
  error_clients=DBSession.query(Client).filter(Client.errors > 0).order_by(sort_key).all()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1589 in all
  return list(self)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1699 in __iter__
  return self._execute_and_instances(context)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/query.py', line 1704 in _execute_and_instances
  mapper=self._mapper_zero_or_none())
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/orm/session.py', line 724 in execute
  clause, params or {})
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1191 in execute
  params)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1269 in _execute_clauseelement
  parameters=params
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1382 in __create_execution_context
  None, None)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/base.py', line 1377 in __create_execution_context
  connection=self, **kwargs)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/default.py', line 392 in __init__
  self.cursor = self.create_cursor()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/engine/default.py', line 534 in create_cursor
  return self._connection.connection.cursor()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/SQLAlchemy-0.6.7-py2.6.
egg/sqlalchemy/pool.py', line 423 in cursor
  c = self.connection.cursor(*args, **kwargs)
ProgrammingError: (ProgrammingError) Cannot operate on a closed database. None 
[{}]

CGI Variables
-------------
  AUTH_TYPE: 'cookie'
  CONTENT_LENGTH: '0'
  CONTENT_TYPE: '; charset=utf-8'
  HTTP_ACCEPT: 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
  HTTP_ACCEPT_ENCODING: 'gzip, deflate'
  HTTP_ACCEPT_LANGUAGE: 'en-us'
  HTTP_CONNECTION: 'keep-alive'
  HTTP_COOKIE: 'auth_tkt="73fd781910bb69a45627e27ded04e8914dbad3efmunkiadmin!userid_type:unicode"; utcOffset=-4; __utma=21680057.1929519145.1254411904.1295621984.1302105817.7; __utmz=21680057.1295621984.6.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'
  HTTP_HOST: 'office.source-marketing.com:8444'
  HTTP_REFERER: 'http://office.source-marketing.com:8444/view/report/00:23:df:9a:d2:fa'
  HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1'
  PATH_INFO: '/view'
  REMOTE_ADDR: '10.10.5.1'
  REMOTE_USER: u'munkiadmin'
  REMOTE_USER_DATA: 'userid_type:unicode'
  REMOTE_USER_TOKENS: ['']
  REQUEST_METHOD: 'GET'
  SERVER_NAME: '0.0.0.0'
  SERVER_PORT: '8444'
  SERVER_PROTOCOL: 'HTTP/1.1'

WSGI Variables
--------------
  application: <function remover at 0x104312f50>
  beaker.cache: <beaker.cache.CacheManager object at 0x104241e90>
  beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x104241e10>>
  beaker.session: {'_accessed_time': 1304342803.9632621, '_creation_time': 1304342803.9632621}
  paste.cookies: (<SimpleCookie: __utma='21680057.1929519145.1254411904.1295621984.1302105817.7' __utmz='21680057.1295621984.6.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='73fd781910bb69a45627e27ded04e8914dbad3efmunkiadmin!userid_type:unicode' utcOffset='-4'>, 'auth_tkt="73fd781910bb69a45627e27ded04e8914dbad3efmunkiadmin!userid_type:unicode"; utcOffset=-4; __utma=21680057.1929519145.1254411904.1295621984.1302105817.7; __utmz=21680057.1295621984.6.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)')
  paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x101df1950>
  paste.registry: <paste.registry.Registry object at 0x104a9b350>
  paste.throw_errors: True
  pylons.action_method: <bound method RootController.routes_placeholder of <munkireport.controllers.root.RootController object at 0x104ab0150>>
  pylons.controller: <munkireport.controllers.root.RootController object at 0x104ab0150>
  pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'}
  pylons.pylons: <pylons.util.PylonsContext object at 0x104ab0210>
  pylons.routes_dict: {'url': u'/view', 'action': u'routes_placeholder', 'controller': u'root'}
  repoze.tm.active: True
  repoze.what.adapters: {'groups': {'dscl_groups': <munkireport.lib.macosxauth.MacOSXGroupAdapter object at 0x102a05110>, 'ini_groups': <repoze.what.plugins.ini.ini.INIGroupAdapter object at 0x104313790>}, 'permissions': {'ini_permissions': <repoze.what.plugins.ini.ini.INIPermissionsAdapter object at 0x102a01310>}}
  repoze.what.credentials: {'repoze.what.userid': u'munkiadmin', 'groups': (u'admins', u'viewers'), 'permissions': (u'admin', u'view')}
  repoze.who.identity: <repoze.who identity (hidden, dict-like) at 4363499808>
  repoze.who.logger: None
  repoze.who.plugins: {'authorization_md': <repoze.what.middleware.AuthorizationMetadata object at 0x102a016d0>, 'macosx_metadataprovider': <munkireport.lib.macosxauth.MacOSXMetadataProvider object at 0x102a01cd0>, 'macosx_authenticator': <munkireport.lib.macosxauth.MacOSXAuthenticator object at 0x102a010d0>, 'file_metadataprovider': <munkireport.lib.fileauth.FileMetadataProvider object at 0x102a01d50>, 'auth_tkt': <AuthTktCookiePlugin 4339012176>, 'friendlyform': <FriendlyFormPlugin 4339013200>, 'file_authenticator': <munkireport.lib.fileauth.FileAuthenticator object at 0x102a01190>}
  routes.route: <routes.route.Route object at 0x102819e50>
  routes.url: <routes.util.URLGenerator object at 0x104ab0390>
  toscawidgets.framework: <tw.mods.base.HostFramework object at 0x104313210>
  toscawidgets.javascript.require_once: False
  toscawidgets.prefix: '/toscawidgets'
  webob._parsed_query_vars: (GET([]), '')
  webob.adhoc_attrs: {'controller_state': <tg.controllers.dispatcher.DispatchState object at 0x104ab04d0>, 'language': 'en-us', 'start_response': <function repl_start_response at 0x104abc0c8>, 'response_type': None, 'response_ext': None, 'identity': <repoze.who identity (hidden, dict-like) at 4363499808>}
  wsgi process: 'Multithreaded'
  wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x104ab0390>, {'url': u'/view', 'action': u'routes_placeholder', 'controller': u'root'})
------------------------------------------------------------

Original comment by *ab...@trmacs.com on 2 May 2011 at 1:28

GoogleCodeExporter commented 9 years ago
I can't reproduce it here, no, despite clicking like crazy...

Original comment by MagerV...@gmail.com on 2 May 2011 at 10:27

GoogleCodeExporter commented 9 years ago
hmm - dont know what else i can provide.. i do have two completely different 
servers doing this though... the steps above definitely changed it to nullpool? 
 is this just a sqlalchemy issue?

Original comment by sbo...@trmacs.com on 3 May 2011 at 2:14

GoogleCodeExporter commented 9 years ago
I had this same error, but I noticed that client package I was creating didn't 
have the correct values for REPORTPATH. 

Original comment by tev...@gmail.com on 5 May 2011 at 10:21

GoogleCodeExporter commented 9 years ago
sboyle: I'm thinking that it either sets it too early (so it gets overwritten), 
or too late (so the pool is already initialized), but I haven't had a chance to 
dig through the TurboGears startup code. And yes, it's an sqlalchemy issue - 
they chanced it to nullpool in 0.7, but tg21 is still 0.6.

tevren: Error 500 is just a generic error when you run in production mode, 
check the log for the actual error message.

Original comment by MagerV...@gmail.com on 6 May 2011 at 1:19

GoogleCodeExporter commented 9 years ago
no problem!  works mostly.. :)

Original comment by sbo...@trmacs.com on 6 May 2011 at 2:45

GoogleCodeExporter commented 9 years ago
for some reason today i am noticing a large amount of errors when pulling 
detail from the report.... i get a 500 error almost everytime.  i have updated 
to the lastest stable wunkitools on my clients.

Error - <type 'exceptions.TypeError'>: expected string or buffer
URL: 
http://office.source-marketing.com:8444/view/report/00%3A1e%3Ac2%3A1b%3A56%3A6f
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/WebError-0.10.3-py2.6.e
gg/weberror/errormiddleware.py', line 162 in __call__
  app_iter = self.application(environ, sr_checker)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/configuration.py', line 796 in remover
  return app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/repoze.tm2-1.0b1-py2.6.
egg/repoze/tm/__init__.py', line 23 in __call__
  result = self.application(environ, save_status_and_headers)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 43 in __call__
  return self.wsgi_app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/middleware.py', line 68 in wsgi_app
  resp = req.get_response(self.application)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/ToscaWidgets-0.9.11-py2
.6.egg/tw/core/resource_injector.py', line 68 in _injector
  resp = req.get_response(app)
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 1008 in 
get_response
File 'build/bdist.macosx-10.6-universal/egg/webob/request.py', line 977 in 
call_application
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 73 in __call__
  return self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Beaker-1.5.4-py2.6.egg/
beaker/middleware.py', line 152 in __call__
  return self.wrap_app(environ, session_start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Routes-1.12.3-py2.6.egg
/routes/middleware.py', line 131 in __call__
  response = self.app(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 107 in __call__
  response = self.dispatch(controller, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/wsgiapp.py', line 312 in dispatch
  return controller(environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/lib/base.py', line 32 in __call__
  return TGController.__call__(self, environ, start_response)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 211 in __call__
  response = self._dispatch_call()
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 162 in _dispatch_call
  response = self._inspect_call(func)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/Pylons-1.0-py2.6.egg/py
lons/controllers/core.py', line 105 in _inspect_call
  result = self._perform_call(func, args)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/dispatcher.py', line 254 in _perform_call
  r = self._call(func, params, remainder=remainder)
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/TurboGears2-2.1-py2.6.e
gg/tg/controllers/decoratedcontroller.py', line 111 in _call
  output = controller(*remainder, **dict(params))
File 
'/Library/MunkiReport/Python/lib/python2.6/site-packages/MunkiReport-0.7.0.172-p
y2.6.egg/munkireport/controllers/view.py', line 145 in report
  m = re_result.search(result)
TypeError: expected string or buffer

CGI Variables
-------------
  AUTH_TYPE: 'cookie'
  CONTENT_LENGTH: '0'
  CONTENT_TYPE: '; charset=utf-8'
  HTTP_ACCEPT: 'application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'
  HTTP_ACCEPT_ENCODING: 'gzip, deflate'
  HTTP_ACCEPT_LANGUAGE: 'en-us'
  HTTP_CACHE_CONTROL: 'max-age=0'
  HTTP_CONNECTION: 'keep-alive'
  HTTP_COOKIE: 'auth_tkt="ac79745b6154c13e668434607d617dc14dd4174amunkiadmin!userid_type:unicode"; utcOffset=-4; __utma=21680057.1389530631.1305315135.1305315135.1305315135.1; __utmz=21680057.1305315135.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)'
  HTTP_HOST: 'office.source-marketing.com:8444'
  HTTP_REFERER: 'http://office.source-marketing.com:8444/view?__logins=0'
  HTTP_USER_AGENT: 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7; en-us) AppleWebKit/533.21.1 (KHTML, like Gecko) Version/5.0.5 Safari/533.21.1'
  PATH_INFO: '/view/report/00:1e:c2:1b:56:6f'
  REMOTE_ADDR: '10.10.5.151'
  REMOTE_USER: u'munkiadmin'
  REMOTE_USER_DATA: 'userid_type:unicode'
  REMOTE_USER_TOKENS: ['']
  REQUEST_METHOD: 'GET'
  SERVER_NAME: '0.0.0.0'
  SERVER_PORT: '8444'
  SERVER_PROTOCOL: 'HTTP/1.1'

WSGI Variables
--------------
  application: <function remover at 0x103ad9f50>
  beaker.cache: <beaker.cache.CacheManager object at 0x103a51ed0>
  beaker.get_session: <bound method SessionMiddleware._get_session of <beaker.middleware.SessionMiddleware object at 0x103a51e50>>
  beaker.session: {'_accessed_time': 1305745413.6734459, '_creation_time': 1305745413.6734459}
  paste.cookies: (<SimpleCookie: __utma='21680057.1389530631.1305315135.1305315135.1305315135.1' __utmz='21680057.1305315135.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)' auth_tkt='ac79745b6154c13e668434607d617dc14dd4174amunkiadmin!userid_type:unicode' utcOffset='-4'>, 'auth_tkt="ac79745b6154c13e668434607d617dc14dd4174amunkiadmin!userid_type:unicode"; utcOffset=-4; __utma=21680057.1389530631.1305315135.1305315135.1305315135.1; __utmz=21680057.1305315135.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)')
  paste.httpserver.thread_pool: <paste.httpserver.ThreadPool object at 0x101df5a10>
  paste.registry: <paste.registry.Registry object at 0x1052b9a10>
  paste.throw_errors: True
  pylons.action_method: <bound method RootController.routes_placeholder of <munkireport.controllers.root.RootController object at 0x105201290>>
  pylons.controller: <munkireport.controllers.root.RootController object at 0x105201290>
  pylons.environ_config: {'session': 'beaker.session', 'cache': 'beaker.cache'}
  pylons.pylons: <pylons.util.PylonsContext object at 0x105201250>
  pylons.routes_dict: {'url': u'/view/report/00:1e:c2:1b:56:6f', 'action': u'routes_placeholder', 'controller': u'root'}
  repoze.tm.active: True
  repoze.what.adapters: {'groups': {'dscl_groups': <munkireport.lib.macosxauth.MacOSXGroupAdapter object at 0x1029c91d0>, 'ini_groups': <repoze.what.plugins.ini.ini.INIGroupAdapter object at 0x103ada7d0>}, 'permissions': {'ini_permissions': <repoze.what.plugins.ini.ini.INIPermissionsAdapter object at 0x1029c63d0>}}
  repoze.what.credentials: {'repoze.what.userid': u'munkiadmin', 'groups': (u'admins', u'viewers'), 'permissions': (u'admin', u'view')}
  repoze.who.identity: <repoze.who identity (hidden, dict-like) at 4380488160>
  repoze.who.logger: None
  repoze.who.plugins: {'authorization_md': <repoze.what.middleware.AuthorizationMetadata object at 0x1029c6790>, 'macosx_metadataprovider': <munkireport.lib.macosxauth.MacOSXMetadataProvider object at 0x1029c6d90>, 'macosx_authenticator': <munkireport.lib.macosxauth.MacOSXAuthenticator object at 0x1029c6190>, 'file_metadataprovider': <munkireport.lib.fileauth.FileMetadataProvider object at 0x1029c6e10>, 'auth_tkt': <AuthTktCookiePlugin 4338770704>, 'friendlyform': <FriendlyFormPlugin 4338771728>, 'file_authenticator': <munkireport.lib.fileauth.FileAuthenticator object at 0x1029c6250>}
  routes.route: <routes.route.Route object at 0x102919f10>
  routes.url: <routes.util.URLGenerator object at 0x105201a10>
  toscawidgets.framework: <tw.mods.base.HostFramework object at 0x103ada250>
  toscawidgets.javascript.require_once: False
  toscawidgets.prefix: '/toscawidgets'
  webob._parsed_query_vars: (GET([]), '')
  webob.adhoc_attrs: {'controller_state': <tg.controllers.dispatcher.DispatchState object at 0x1052010d0>, 'language': 'en-us', 'start_response': <function repl_start_response at 0x1052b48c0>, 'response_type': None, 'response_ext': None, 'identity': <repoze.who identity (hidden, dict-like) at 4380488160>}
  wsgi process: 'Multithreaded'
  wsgiorg.routing_args: (<routes.util.URLGenerator object at 0x105201a10>, {'url': u'/view/report/00:1e:c2:1b:56:6f', 'action': u'routes_placeholder', 'controller': u'root'})
------------------------------------------------------------

Original comment by t...@source-marketing.com on 18 May 2011 at 7:05

GoogleCodeExporter commented 9 years ago
Please file a separate report instead of appending to this one.

Updating bug summary to narrow it down a bit, as Error 500 is a catch-all.

Original comment by MagerV...@gmail.com on 19 May 2011 at 7:39