liferea built with xulrunner 1.9 dumping tons of places.sqlite-\d+.corrupt files

RESOLVED INVALID

Status

()

Firefox
Bookmarks & History
RESOLVED INVALID
10 years ago
7 years ago

People

(Reporter: Fabien Tassin, Unassigned)

Tracking

({regression})

Trunk
x86
Linux
regression
Points:
---

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

10 years ago
liferea, built with xulrunner 1.9 is dumping tons of places.sqlite-\d+.corrupt files. Even with a fresh profile, all those ".corrupt" files appear at startup.
This is 100% reproducible. A dump shows they are not corrupted at all.

It's a regression introduced when bug 415460 landed, between b3 and b4, and it's still there in 1.9pre.

Those ".corrupt" files are created when InitDB() fails.
I've traced it down to mDBGetTags:

http://mxr.mozilla.org/mozilla/source/toolkit/components/places/src/nsNavHistory.cpp#1140

1140   // mDBGetTags
1141   rv = mDBConn->CreateStatement(NS_LITERAL_CSTRING(
1142       "SELECT GROUP_CONCAT(t.title, ' ') "
1143       "FROM moz_places h "
1144       "JOIN moz_bookmarks b ON b.type = ") +
1145         nsPrintfCString("%d", nsINavBookmarksService::TYPE_BOOKMARK) +
1146         NS_LITERAL_CSTRING(" AND b.fk = h.id "
1147       "JOIN moz_bookmarks t ON t.parent = ?1 AND t.id = b.parent "
1148       "WHERE h.url = ?2"),
1149     getter_AddRefs(mDBGetTags));
1150   NS_ENSURE_SUCCESS(rv, rv);
Flags: blocking-firefox3?
Keywords: regression

Comment 1

10 years ago
this turned out to be due to a lower versioned (system-)sqlite loaded by liferea. Though it reveals that the standalone glue approach is not perfect, I close this issue as invalid as I cannot imagine a pragmatic solution on xulrunner side.

We will work around on distro side.
Status: NEW → RESOLVED
Last Resolved: 10 years ago
Resolution: --- → INVALID
(Reporter)

Comment 2

10 years ago
To complement Alexander's comment, it happened to be GROUP_CONCAT() not supported by sqlite 3.4.
Our liferea was built with system sqlite (= 3.4.*) while our xulrunner was using in-source sqlite (= 3.5.*). At runtime, liferea uses 3.4.

Liferea doesn't have an Error console to report the assert so it was silently ignored. Moving the db to ".corrupt" is definitely wrong here, I would have preferred a real assert() with a reason.

Now that we know that it's this, we can indeed fix it on distro side.
Flags: blocking-firefox3?
Bug 451915 - move Firefox/Places bugs to Firefox/Bookmarks and History. Remove all bugspam from this move by filtering for the string "places-to-b-and-h".

In Thunderbird 3.0b, you do that as follows:
Tools | Message Filters
Make sure the correct account is selected. Click "New"
Conditions: Body   contains   places-to-b-and-h
Change the action to "Delete Message".
Select "Manually Run" from the dropdown at the top.
Click OK.

Select the filter in the list, make sure "Inbox" is selected at the bottom, and click "Run Now". This should delete all the bugspam. You can then delete the filter.

Gerv
Component: Places → Bookmarks & History
QA Contact: places → bookmarks

Updated

7 years ago
You need to log in before you can comment on or make changes to this bug.