Trac slow / unreachable objects / database locked
|Reported by:||cmarschalek||Owned by:|
|Severity:||normal||Keywords:||performance database locked svn apr_terminate|
|Cc:||Emmanuel Blot, felix.schwarz@…||Branch:|
Description (last modified by )
Since I've upgraded trac to 0.11 (0.11.1 didn't fix this) it became very slow.
If you open a few changesets in tabs, they sometimes take very long to get ready, but when they do, they all load at the same time. While they're loading the apache process takes up pretty much the whole cpu. The speed somewhat improves but trac is a lot slower as a whole since the upgrade. Nothing else has changed on the server. Looking at my trac.log file I see lots of unreachable objects messages like:
2008-11-05 10:37:26,680 Trac[main] DEBUG: 880 unreachable objects found. 2008-11-05 10:37:29,217 Trac[main] DEBUG: Dispatching <Request "GET u'/changeset/12445'"> 2008-11-05 10:37:29,233 Trac[session] DEBUG: Retrieving session for ID u'marschalek' 2008-11-05 10:37:29,250 Trac[chrome] DEBUG: Prepare chrome data for request 2008-11-05 10:37:36,715 Trac[main] DEBUG: 1533 unreachable objects found. 2008-11-05 10:37:37,171 Trac[main] DEBUG: Dispatching <Request "GET u'/changeset/12446'"> 2008-11-05 10:37:37,195 Trac[session] DEBUG: Retrieving session for ID u'marschalek' 2008-11-05 10:37:37,211 Trac[chrome] DEBUG: Prepare chrome data for request 2008-11-05 10:37:39,828 Trac[main] DEBUG: 694 unreachable objects found.
Could this be the problem? At least the timestamps show a significant increase in time.
Rarely I also get database locked errors, which go away after a short while. Here's the last one I got:
How to Reproduce
While doing a GET operation on
/timeline, Trac issued an internal error.
(please provide additional details here)
Traceback (most recent call last): File "/usr/lib/python2.3/site-packages/Trac-0.11.1-py2.3.egg/trac/web/main.py", line 423, in _dispatch_request dispatcher.dispatch(req) File "/usr/lib/python2.3/site-packages/Trac-0.11.1-py2.3.egg/trac/web/main.py", line 222, in dispatch req.session.save() File "/usr/lib/python2.3/site-packages/Trac-0.11.1-py2.3.egg/trac/web/session.py", line 97, in save (self.sid,)) File "/usr/lib/python2.3/site-packages/Trac-0.11.1-py2.3.egg/trac/db/util.py", line 50, in execute return self.cursor.execute(sql_escape_percent(sql), args) File "/usr/lib/python2.3/site-packages/sqlite/main.py", line 237, in execute self.con._begin() File "/usr/lib/python2.3/site-packages/sqlite/main.py", line 503, in _begin self.db.execute("BEGIN") OperationalError: database is locked
I don't know if these problems are related though.
The first report (above) was about a perceived slowness when rendering big changesets, after an upgrade from 0.10 to 0.11. Well, that's Genshi mainly, see #7975 for the ticket addressing specifically this point.
comment:18 reported another, similar error, involving
apr_pool_destroy this time. The latter is quite obscure and hard to reproduce, the present ticket remains open for this problem.
Change History (44)
comment:12 by , 13 years ago
|Keywords:||svn apr_terminate added; needinfo removed|
|Priority:||normal → high|
comment:32 by , 12 years ago
|Milestone:||not applicable → next-minor-0.12.x|