Summary: | cache.sqlite.database database is locked InitializationError | ||
---|---|---|---|
Product: | Portage Development | Reporter: | Jakub Moc (RETIRED) <jakub> |
Component: | Core - Interface (emerge) | Assignee: | Portage team <dev-portage> |
Status: | RESOLVED FIXED | ||
Severity: | minor | Keywords: | InVCS |
Priority: | High | ||
Version: | 2.1 | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 147007 |
Description
Jakub Moc (RETIRED)
2006-12-30 16:05:33 UTC
As per our discussion on irc, after removing /var/cache/edb/dep/usr/portage.sqlite and running emerge --metadata, we are unable to reproduce this error (with sqlite-3.3.6 and pysqlite-2.3.1 on x86). I'm not sure what might have triggered that. According to the sqlite docs at http://www.sqlite.org/lockingv3.html, "In order to maximize concurrency, SQLite works to minimize the amount of time that EXCLUSIVE locks are held". For reference, portage's sqlite cache module uses sqlite3's default "autocommit" mode. After looking at some pysqlite bug reports, I've decided to increase the timeout for 'database is locked' errors from 5 seconds to 15 seconds (in svn r5434). For reference, these are the bugs: http://www.initd.org/tracker/pysqlite/ticket/162 http://www.initd.org/tracker/pysqlite/ticket/126 This has been released in 2.1.2_rc4-r4. |