Closed
Bug 429379
Opened 17 years ago
Closed 16 years ago
Deleting large live bookmark makes Firefox unresponsive for several seconds.
Categories
(Firefox :: Bookmarks & History, defect, P2)
Tracking
()
VERIFIED
FIXED
Firefox 3.5
People
(Reporter: eleven81, Assigned: mak)
References
Details
(4 keywords)
Attachments
(1 file, 4 obsolete files)
(deleted),
patch
|
beltzner
:
approval1.9.1+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008041610 Minefield/3.0pre
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008041610 Minefield/3.0pre
Deleting large live bookmark makes Firefox unresponsive for several seconds.
Reproducible: Always
Steps to Reproduce:
1. Navigate to http://www.thejournal.com/the/rss/
2. Click the button to subscribe to this feed using Live Bookmarks to the Bookmarks Toolbar.
3. Allow the feed to populate.
4. Right click the Live Bookmark, select Delete.
Actual Results:
The browser hangs for 45 seconds at least, accepting no input. Once the delete operation completes, the browser resumes normal functionality.
Expected Results:
The Live Bookmark should disappear from the bookmark toolbar quickly, and the user interface should not hang.
Deleting the Live Bookmark should not take 45 seconds or longer. The user interface should not hang. If there is really some operation that needs so long to complete, it should be started and run in the background, not locking up the UI.
Comment 1•17 years ago
|
||
That looks like a _very_ inefficient SQL query. On my system it took a full 2 minutes to delete what was added in a matter of seconds.
Status: UNCONFIRMED → NEW
Component: Bookmarks → Places
Ever confirmed: true
Flags: wanted1.9.0.x?
QA Contact: bookmarks → places
Version: unspecified → Trunk
I revisited this today with Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9pre) Gecko/2008050706 Minefield/3.0pre and noticed that there is a very large amount of disk i/o that occurs during the time Firefox is hanging, waiting for the live bookmark to delete.
I am not sure exactly what is being accessed or deleted. It seems like Firefox is looking at the Live Bookmark like a directory full of files saved on the hard drive, instead of as a list of links cached someplace in memory for the current session.
Updated•16 years ago
|
Flags: wanted1.9.0.x? → blocking1.9.0.2?
Updated•16 years ago
|
Flags: blocking1.9.0.2?
Version: Trunk → 3.0 Branch
I revisited this again today, this time with Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1b2pre) Gecko/20081117 Minefield/3.1b2pre and noticed a new dialog that I had not before seen. The dialog appeared a total of seven times for me, each time asking whether or not to stop a script. Each time I clicked continue until the live bookmark had been deleted. The text of that dialog follows:
A script on this page may be busy, or it may have stopped responding. You can stop the script now, or you can continue to see if the script will complete.
Script: chrome://browser/content/places/toolbar.xml:553
Assignee | ||
Comment 4•16 years ago
|
||
easily reproducible on a clean profile, we should take a look if we can gain something on this test case for 3.1 since it could help also other delete cases.
Target Milestone: --- → Firefox 3.1
Assignee | ||
Comment 5•16 years ago
|
||
there are 2 bottlenecks here, the former is due to removeFolder, that has to remove all childrens (and luckily this is a bit faster now, still not perfect though, but we can track this later in bug 428459).
The latter and much bigger bottleneck is due to the transactionService, even if this is a livemark we save all of its children. Well i think we should not, children of a livemark are known to change, so there's no point in saving something we can reload directly from the feed.
This patch adds a removeLivemarkTransaction, and with this the big livemark removal takes 1-2 seconds. On undo we recreate the livemark and reload its contents from the feed, re-registering it with livemark service (something we were not doing before, so that's another bug.)
asking a first-pass review, i have to write a test for this before going on.
Comment 6•16 years ago
|
||
Comment on attachment 349564 [details] [diff] [review]
wip 0.1
>+function placesRemoveLivemarkTransaction(aFolderId) {
>+ this.redoTransaction = this.doTransaction;
>+ this._id = aFolderId;
>+ this._title = PlacesUtils.bookmarks.getItemTitle(this._id);
>+ this._container = PlacesUtils.bookmarks.getFolderIdForItem(this._id);
>+ var annos = PlacesUtils.getAnnotationsForItem(this._id);
>+ // Exclude livemark related annotations, those will be recreated automatically
>+ this._annotations = annos.filter(function(aValue, aIndex, aArray) {
>+ return !aValue.name.match(/^livemark/);
>+ });
please match exactly on the annotations you intend to exclude, as you might match annotations from extensions otherwise.
r=me for the approach.
Attachment #349564 -
Flags: review?(dietrich) → review+
Assignee | ||
Comment 7•16 years ago
|
||
mh, i did that because we have a lot of different annotations there, and if we add more annotations in the service we will also have to update the transaction manager. Hwv i don't see other solutions if we don't want to force extension developers to use a different annotation root.
Assignee | ||
Comment 8•16 years ago
|
||
addes a test for this and cleaned up a bit transaction manager livemarks tests, plus addressed previous comment.
Attachment #349564 -
Attachment is obsolete: true
Attachment #352098 -
Flags: review?(dietrich)
Assignee | ||
Comment 9•16 years ago
|
||
Comment on attachment 352098 [details] [diff] [review]
patch v1.1
oops wrong patch
Attachment #352098 -
Attachment is obsolete: true
Attachment #352098 -
Flags: review?(dietrich)
Assignee | ||
Comment 10•16 years ago
|
||
Sorry this is the correct one
Attachment #352099 -
Flags: review?(dietrich)
Comment 11•16 years ago
|
||
Comment on attachment 352099 [details] [diff] [review]
correct patch v1.0
>+ // Testing remove livemark
>+ // Set an annotation an check that we don't lose it on undo
nit: s/an/and/
r=me
Attachment #352099 -
Flags: review?(dietrich) → review+
Updated•16 years ago
|
Priority: -- → P2
Assignee | ||
Comment 13•16 years ago
|
||
pushed to trunk:
http://hg.mozilla.org/mozilla-central/rev/a8b303937581
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 14•16 years ago
|
||
askin in litmus because maybe the big livemark posted here could be useful for manual testing
Flags: in-testsuite+
Flags: in-litmus?
OS: Windows XP → All
Hardware: PC → All
Assignee | ||
Comment 15•16 years ago
|
||
Comment on attachment 352171 [details] [diff] [review]
correct patch v1.1
asking approval 1.9.1. this is making livemarks delete really faster (and general all folder deletes that contain livemarks). Low risk since come with a complete unit test.
Attachment #352171 -
Flags: approval1.9.1?
Assignee | ||
Comment 16•16 years ago
|
||
if we try to load a not existant livemark uri we leak loadgroup and other things
Attachment #352231 -
Flags: review?(dietrich)
Assignee | ||
Updated•16 years ago
|
Attachment #352231 -
Attachment is obsolete: true
Attachment #352231 -
Flags: review?(dietrich)
Assignee | ||
Comment 17•16 years ago
|
||
Comment on attachment 352231 [details] [diff] [review]
followup
i'll move the issue to a new bug since i think it's a livemark service bug.
Updated•16 years ago
|
Attachment #352171 -
Flags: approval1.9.1? → approval1.9.1+
Comment 18•16 years ago
|
||
Comment on attachment 352171 [details] [diff] [review]
correct patch v1.1
a191=beltzner
Assignee | ||
Comment 19•16 years ago
|
||
pushed to 1.9.1 branch:
http://hg.mozilla.org/releases/mozilla-1.9.1/rev/58e38927aaca
Keywords: fixed1.9.1
Comment 20•16 years ago
|
||
Verified fix on Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US;
rv:1.9.1b3pre) Gecko/20090123 Shiretoko/3.1b3pre
and Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.2a1pre)
Gecko/20090123 Minefield/3.2a1pre
deleting takes 2-4 seconds now.
Status: RESOLVED → VERIFIED
Keywords: fixed1.9.1 → verified1.9.1
Comment 22•16 years ago
|
||
added https://litmus.mozilla.org/show_test.cgi?id=7540 to litmus
Flags: in-litmus? → in-litmus+
Updated•16 years ago
|
Target Milestone: Firefox 3.1 → Firefox 3.5
Comment 23•15 years ago
|
||
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.
Description
•