Edgewall Software

Ticket #6405 (closed defect: duplicate)

Opened 14 months ago

Last modified 14 months ago

Unable to get database connection within 20 seconds - Hets - Trac

Reported by: fox_nsgrcu@… Owned by: jonas
Priority: high Milestone:
Component: general Version: devel
Severity: critical Keywords:
Cc:

Description (last modified by cboos) (diff)

While trying to access to

http://www.informatik.uni-bremen.de/agbkb/forschung/formal_methods/CoFI/hets/developers_e.htm

I got the following traceback :

Oops…
Trac detected an internal error:

If you think this really should work and you can reproduce it, you should consider reporting this problem to the Trac team.

Go to http://trac.edgewall.org/ and create a new ticket where you describe the problem, how to reproduce it. Don't forget to include the Python traceback found below.

TracGuide — The Trac User and Administration Guide
Python Traceback

Traceback (most recent call last):
  File "/usr/local/lib64/python2.4/site-packages/trac/web/main.py", line 387, in dispatch_request
    dispatcher.dispatch(req)
  File "/usr/local/lib64/python2.4/site-packages/trac/web/main.py", line 191, in dispatch
    req.perm = PermissionCache(self.env, req.authname)
  File "/usr/local/lib64/python2.4/site-packages/trac/perm.py", line 267, in __init__
    self.perms = PermissionSystem(env).get_user_permissions(username)
  File "/usr/local/lib64/python2.4/site-packages/trac/perm.py", line 231, in get_user_permissions
    for perm in self.store.get_user_permissions(username):
  File "/usr/local/lib64/python2.4/site-packages/trac/perm.py", line 109, in get_user_permissions
    db = self.env.get_db_cnx()
  File "/usr/local/lib64/python2.4/site-packages/trac/env.py", line 182, in get_db_cnx
    return DatabaseManager(self).get_connection()
  File "/usr/local/lib64/python2.4/site-packages/trac/db/api.py", line 75, in get_connection
    return self._cnx_pool.get_cnx(self.timeout or None)
  File "/usr/local/lib64/python2.4/site-packages/trac/db/pool.py", line 107, in get_cnx
    raise TimeoutError('Unable to get database '
TimeoutError: Unable to get database connection within 20 seconds

Attachments

Change History

Changed 14 months ago by cboos

  • keywords needinfo added
  • priority changed from normal to high
  • description modified (diff)

Which version of Trac / pysqlite and SQLite are you using?

(if you're not using sqlite for the db backend, please mention the relevant information for your db backend as well)

Changed 14 months ago by cboos

  • version set to 0.10.2

Ok, checking myself: 0.10.2 for Trac.

You should upgrade that to 0.10.4 at least (or inform that site's admin to do it).

Changed 14 months ago by eblot

Likely a dup of #4465.

BTW, the URL does not look like Trac-ish, and leads to a 404 page error.

Changed 14 months ago by Dawid Polak <dawid@…>

  • version changed from 0.10.2 to devel
  • milestone set to 0.11

The same problem I have with the devel version.

I'm use tracd and problem break up when I restart the service (for on day or more) and return.

But interesting is, that in the some time, when trac can't connect with DB, from python (with pysqlite) or sqlite I can connect with the same DB file, and execute query.

I have:

  • Trac-0.11dev_r6223
  • python 2.5.1
  • pysqlite 2.4.1 (from SVN)
  • sqlite 2.5.2 (from source, with --enable-threadsafe )
Traceback (most recent call last):
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/api.py", line 342, in send_error
    'text/html')
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/chrome.py", line 590, in render_template
    data = self.populate_data(req, data)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/chrome.py", line 498, in populate_data
    d['chrome'].update(req.chrome)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/api.py", line 170, in __getattr__
    value = self.callbacks[name](self)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/chrome.py", line 377, in prepare_request
    for category, name, text in contributor.get_navigation_items(req):
  File "/usr/lib/python2.5/site-packages/TracWebAdmin-0.1.2dev_r3727-py2.5.egg/webadmin/web_ui.py", line 66, in get_navigation_items
    pages, providers = self._get_pages(req)
  File "/usr/lib/python2.5/site-packages/TracWebAdmin-0.1.2dev_r3727-py2.5.egg/webadmin/web_ui.py", line 86, in _get_pages
    p = list(provider.get_admin_pages(req))
  File "/usr/lib/python2.5/site-packages/TracWebAdmin-0.1.2dev_r3727-py2.5.egg/webadmin/logging.py", line 30, in get_admin_pages
    if req.perm.has_permission('TRAC_ADMIN'):
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/api.py", line 170, in __getattr__
    value = self.callbacks[name](self)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/main.py", line 252, in _get_perm
    return PermissionCache(self.env, self.authenticate(req))
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/main.py", line 129, in authenticate
    authname = authenticator.authenticate(req)
  File "build/bdist.linux-i686/egg/acct_mgr/web_ui.py", line 349, in wrap
    return func(self, *args, **kwds)
  File "build/bdist.linux-i686/egg/acct_mgr/web_ui.py", line 360, in authenticate
    return auth.LoginModule.authenticate(self, req)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/auth.py", line 70, in authenticate
    authname = self._get_name_for_cookie(req, req.incookie['trac_auth'])
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/web/auth.py", line 180, in _get_name_for_cookie
    db = self.env.get_db_cnx()
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/env.py", line 239, in get_db_cnx
    return DatabaseManager(self).get_connection()
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/db/api.py", line 76, in get_connection
    return self._cnx_pool.get_cnx(self.timeout or None)
  File "/usr/lib/python2.5/site-packages/Trac-0.11dev_r6223-py2.5.egg/trac/db/pool.py", line 109, in get_cnx
    % timeout)
TimeoutError: Unable to get database connection within 20 seconds

(sorry for my English ;)

Changed 14 months ago by cboos

Thanks for the detailed report.

First, you should disable the webadmin.* components (TracWebAdmin-0.1.2dev_r3727-py2.5.egg gets used, that's not what you want as the web admin is now part of the Trac code base).

Then, it looks like there must be an initial error before that one. Please attach the whole trac log file (at debug level), if possible.

Changed 14 months ago by cboos

Also, please try this:

  • stop tracd
  • remove or move the trac.log file aside
  • start tracd
  • use a tabbed browser, open say 10 times the timeline, 10 different custom queries, change the query parameters for each query and press update
  • reload all the tabs at once

Chances are that you've just triggered the problem. If so, attach the new trac.log here.

Changed 14 months ago by cboos

Last thing to test: does it also happen without the AccountManager plugin?

Changed 14 months ago by cboos

  • keywords needinfo removed
  • status changed from new to closed
  • resolution set to duplicate
  • milestone 0.11 deleted

Ok, I've been able to reproduce the issue myself, only on Linux though. Please follow-up on #4465.

Add/Change #6405 (Unable to get database connection within 20 seconds - Hets - Trac)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
to The owner will change from jonas. Next status will be 'closed'
 
Note: See TracTickets for help on using tickets.