Edgewall Software
Modify

Opened 12 years ago

Closed 12 years ago

#6405 closed defect (duplicate)

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

Reported by: fox_nsgrcu@… Owned by: Jonas Borgström
Priority: high Milestone:
Component: general Version: devel
Severity: critical Keywords:
Cc: Branch:
Release Notes:
API Changes:

Description (last modified by Christian Boos)

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 (0)

Change History (8)

comment:1 by Christian Boos, 12 years ago

Description: modified (diff)
Keywords: needinfo added
Priority: normalhigh

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)

comment:2 by Christian Boos, 12 years ago

Version: 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).

comment:3 by Emmanuel Blot, 12 years ago

Likely a dup of #4465.

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

comment:4 by Dawid Polak <dawid@…>, 12 years ago

Milestone: 0.11
Version: 0.10.2devel

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 ;)

comment:5 by Christian Boos, 12 years ago

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.

comment:6 by Christian Boos, 12 years ago

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.

comment:7 by Christian Boos, 12 years ago

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

comment:8 by Christian Boos, 12 years ago

Keywords: needinfo removed
Milestone: 0.11
Resolution: duplicate
Status: newclosed

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

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Jonas Borgström.
The resolution will be deleted. Next status will be 'reopened'.
to as closed The owner will be changed from Jonas Borgström to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.