Closed Bug 425993 Opened 13 years ago Closed 13 years ago

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

Categories

(Firefox :: Bookmarks & History, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED INVALID

People

(Reporter: fta+bugzilla, Unassigned)

References

Details

(Keywords: regression)

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
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
Closed: 13 years ago
Resolution: --- → INVALID
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
You need to log in before you can comment on or make changes to this bug.