Kopete intenal sqlite database fails when stored on NFS
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kdenetwork (Ubuntu) |
Confirmed
|
Wishlist
|
Unassigned |
Bug Description
Binary package hint: kopete
When Kopete stores its internal sqlite database, it chooses to do so on ~ This is problematic when NFS homedirs are in use (and is also why Amarok recommends a MySQL database when NFS homedirs are used)
When running on such a system, the following output is extremely prevalent...
kopete: ERROR: [QStringList StatisticsDB:
kopete: ERROR: database is locked
kopete: ERROR: on query: INSERT INTO contactstatus (metacontactid, status, datetimebegin, datetimeend) VALUES(
kopete: ERROR: [QStringList StatisticsDB:
kopete: ERROR: database is locked
kopete: ERROR: on query: INSERT INTO contactstatus (metacontactid, status, datetimebegin, datetimeend) VALUES(
This happens for every contact, for every event, on every account. Quite a lot :-)
Regards
Kyle
Changed in kopete: | |
importance: | Undecided → Wishlist |
status: | New → Confirmed |
affects: | kopete (Ubuntu) → kdenetwork (Ubuntu) |
The SQLite database is used by the "Statistics Plugin"; you can turn it on and off by going to Settings -> Configure Plugins...
From what I can tell the Statistics plugin records when contacts were last seen online (and perhaps other similar things I haven't noticed yet).
According to the SQLite FAQ, SQLite doesn't work well over NFS. (http:// www.sqlite. org/faq. html)
"SQLite uses reader/writer locks to control access to the database. <snip> But use caution: this locking mechanism might not work correctly if the database file is kept on an NFS filesystem. This is because fcntl() file locking is broken on many NFS implementations. You should *avoid putting SQLite database files on NFS* if multiple processes might try to access the file at the same time." (emphasis added)
As far as I can tell, the messages don't cause problems if you have one Kopete running at any given time, although if you launch kopete from a Terminal (emulator, or xterm, or uxterm or konsole or whatever you call it) it can be kind of annoying.