Closed Bug 1181366 Opened 4 years ago Closed 3 years ago

Bookmark keyword database corruption; cannot re-add my "dxr" bookmark keyboard

Categories

(Firefox :: Bookmarks & History, defect, P2)

39 Branch
defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox39 --- affected
firefox40 --- affected
firefox41 --- affected
firefox42 --- affected

People

(Reporter: nhnt11, Unassigned)

References

Details

(Keywords: regression)

Attachments

(2 files)

I realized today that my bookmark keywords are no longer working.

I have a keyword set up for dxr, that lets me search DXR by typing "dxr <blah>".
I noticed this wasn't working, and dug around in the bookmarks library.

The keyword has disappeared, and I am unable to re-add it. It doesn't even work after deleting the bookmark and creating a new one.

I see these errors in the console after typing a new keyword in the "Keyword:" text field and then clicking a different bookmark in the list:

15:38:41.315 NS_ERROR_STORAGE_CONSTRAINT: Component returned failure code: 0x80630003 (NS_ERROR_STORAGE_CONSTRAINT) [nsINavBookmarksService.setKeywordForBookmark]1 PlacesUtils.jsm:3287:0

15:38:41.315 NS_ERROR_STORAGE_CONSTRAINT: Component returned failure code: 0x80630003 (NS_ERROR_STORAGE_CONSTRAINT) [nsITransactionManager.doTransaction]1 PlacesUtils.jsm:1954:0
Ah, I can add a keyword as long as it's not "dxr" - i.e. dxr seems to exist somewhere.
Flags: needinfo?(mak77)
Could you please run this query and copy the result to a txt, either here or through IRC/Mail in case it contains any sensitive data you don't want to disclose.

SELECT k.id, k.keyword, k.place_id, k.post_data, h.url, h.foreign_count, b.id, b.type, b.fk, b.keyword_id
FROM moz_keywords k
LEFT JOIN moz_places h ON k.place_id = h.id
LEFT JOIN moz_bookmarks b ON k.id = b.keyword_id
Flags: needinfo?(mak77) → needinfo?(nhnt11)
PS: you can use Sqlite Manager add-on selecting places.sqlite from the databases dropdown
Here you go.
Flags: needinfo?(nhnt11)
Attachment #8631129 - Attachment description: CSV dump → CSV dump of SQLite query result
it's pretty clear that dxr and dxrf don't have a url associated, so they cannot work
I still don't know how we could have created such entries.

could you please SELECT * from moz_places where id = 144795 and the same for id = 147502
Flags: needinfo?(nhnt11)
No results for both of those queries.
Flags: needinfo?(nhnt11)
funny, you have keywords pointing to nothing...

Ok, well, figuring out what happened won't be easy.
Regardless, you can fix your database by removing the 2 broken keywords from moz_keywords table, thus removing "dxr" and "dxrf" (DELETE FROM moz_keywords WHERE keyword = "dxr" OR keyword = "dxrf")

I will try to investigate how that could have happened, and we can add a maintenance task to remove orphan keywords automatically.
Taking to have it on the radar, not sure when I'll have the time though :/
Assignee: nobody → mak77
Same here. I created some bookmark keywords after Firefox 39 update, so the bug was not caused by a possible version conflict.

If you successfully create a bookmark keyword and edit it to change the URL, the keyword keeps pointing and searching using the old URL.
To fix it, you probably will try to remove the bookmark and create another one.
But you can't do it, because Firefox will not allow you to use the same keyword, even if you deleted the bookmark.
The same happens if you change a keyword of an existing bookmark and for some reason need to use the old one again in the same bookmark or in any other. Firefox will not allow it.
(In reply to Kyrodes from comment #9)
> Same here. I created some bookmark keywords after Firefox 39 update, so the
> bug was not caused by a possible version conflict.
> 
> If you successfully create a bookmark keyword and edit it to change the URL,
> the keyword keeps pointing and searching using the old URL.
> To fix it, you probably will try to remove the bookmark and create another
> one.

that's bug 1150678

This bug is very different cause the entries here are missing a URL completely, so it's some sort of migration corruption.
Summary: Bookmark keywords are broken in 39 release → Bookmark keyword database corruption; cannot re-add my "dxr" bookmark keyboard
Here I will add a schema migration to remove orphan keywords, so they can be reused. This can likely be uplifted to Aurora.

bug 1150678 is fixing keywords editing in the bookmarks panel, but it's unlikely we can uplift that anywhere since it requires idl changes.
Depends on: 1150678
Priority: -- → P2
Several of my keyworded searches got destroyed.
All of them have Post data for searches, and also the same url.
I modified one, and now all of them show the same keyword...
I can't change them back, because every single time the keyword is changed for all of them.

Is this is this bug? I guess it could be another similar bug.
Of course recreating/fixing these bookmarks with FF38 resulted in a bunch of keywords being lost when I got back to FF45.
I've been hit by this in the currently nightly (v49)
I think bug 1150678 will fix this as well.
Assignee: mak77 → nobody
could you please check if this is now fixed by bug 1150678?
Flags: needinfo?(nhnt11)
Er, sorry for the late response. FWIW, I haven't encountered this bug in a long time (since I reported it, I guess).
Flags: needinfo?(nhnt11)
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.