Modify ↓
#3040 closed defect (fixed)
Database lock when updating timeline filters
| Reported by: | Christian Boos | Owned by: | Christian Boos |
|---|---|---|---|
| Priority: | normal | Milestone: | 0.10 |
| Component: | general | Version: | 0.9.4 |
| Severity: | major | Keywords: | database lock |
| Cc: | Branch: | ||
| Release Notes: | |||
| API Changes: | |||
| Internal Changes: | |||
Description
I've just noticed this db lock while changing timeline filters. The error appeared only in the logs, but I think we should not lend ourself to create a lock when performing a normal operation.
localhost - - [14/Apr/2006 17:31:29] "GET /devel/timeline HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/css/trac.css HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/css/timeline.css HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/trac.ico HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/js/trac.js HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/trac_banner.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/topbar_gradient.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/dots.gif HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/trac_logo_mini.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/wiki.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/trac.ico HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/topbar_gradient2.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/extlink.gif HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/changeset.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:30] "GET /devel/chrome/common/xml.png HTTP/1.1" 200 -
Trac[svn_fs] DEBUG: Opening subversion file-system at C:/Workspace/local/svn/trac-svnrepos with scope /
Trac[cache] DEBUG: Checking whether sync with repository is needed
Trac[svn_fs] DEBUG: Closing subversion file-system at C:/Workspace/local/svn/trac-svnrepos
Trac[api] DEBUG: Updating wiki page index
localhost - - [14/Apr/2006 17:31:47] "GET /devel/timeline?from=4%2F14%2F2006&daysback=30&milestone=on&ticket_details=on&
changeset=on&wiki=on&update=Update HTTP/1.1" 200 -
Trac[session] INFO: Refreshing session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Adding variable timeline.filter.changeset with value "1" to session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Adding variable timeline.filter.ticket_details with value "1" to session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Adding variable last_visit with value "1145028707" to session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Adding variable timeline.filter.milestone with value "1" to session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Adding variable timeline.filter.wiki with value "1" to session ca6b49eb53d04be055b54d53
Trac[session] DEBUG: Purging old, expired, sessions.
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/css/trac.css HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/css/timeline.css HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/trac.ico HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/js/trac.js HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/trac_banner.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/topbar_gradient.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/dots.gif HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/trac_logo_mini.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/wiki.png HTTP/1.1" 200 -
Trac[main] ERROR: database is locked
Traceback (most recent call last):
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\web\main.py", line 301, in dispatch_request
dispatcher.dispatch(req)
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\web\main.py", line 151, in dispatch
req.perm = PermissionCache(self.env, req.authname)
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\perm.py", line 276, in __init__
self.perms = PermissionSystem(env).get_user_permissions(username)
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\perm.py", line 134, in get_user_permissions
for perm in self.store.get_user_permissions(username):
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\perm.py", line 213, in get_user_permissions
cursor.execute("SELECT username,action FROM permission")
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\db\util.py", line 48, in execute
return self.cursor.execute(sql)
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\db\sqlite_backend.py", line 39, in execute
args or [])
File "C:\Workspace\install\lib\python\trac\devel\lib\site-packages\trac\db\sqlite_backend.py", line 31, in _rollback_o
n_error
return function(self, *args, **kwargs)
OperationalError: database is locked
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/topbar_gradient2.png HTTP/1.1" 500 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/changeset.png HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/extlink.gif HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/trac.ico HTTP/1.1" 200 -
localhost - - [14/Apr/2006 17:31:47] "GET /devel/chrome/common/xml.png HTTP/1.1" 200 -
This is reproducible, though sometimes there are even two database is locked errors, and it's not always for the same request, of course.
I think we never notice those request failures because those requested resources
are anyway cached by the web browser (in the above, it's the wiki.png).
I'll investigate further.
Attachments (0)
Change History (2)
comment:1 by , 20 years ago
| Milestone: | → 0.10 |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
comment:2 by , 20 years ago
Note:
See TracTickets
for help on using tickets.



Forgot to mention that this problem is specific to front-ends serving themselves the static content using the
Chromecomponent.Therefore, in r3160,
IRequestHandlers can now specify that they don't need user related information and also that they don't make use of templates and therefore don't need the HDF.This not only fixes this problem, but also makes TracStandalone feel noticeably faster (and I bet it'll be the same for TracCgi).
Also, while working on this, I noticed that when the
database lockoccurs for some important resource, liketrac.css, the problem becomes quite visible, as the layout is messed up. That might well be complementary explanation for the CSS intermittently applied issue (#2038)…