Closed
Bug 87864
Opened 23 years ago
Closed 23 years ago
Hang: Bookmarks file grows huge, is truncated
Categories
(SeaMonkey :: Bookmarks & History, defect, P2)
SeaMonkey
Bookmarks & History
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla0.9.6
People
(Reporter: chris, Assigned: paulkchen)
References
()
Details
(Whiteboard: [PDT-] [willconflict:wgate094+] [Fix checked into 094 branch 10.15])
Attachments
(4 files)
(deleted),
patch
|
jag+mozilla
:
review+
waterson
:
superreview+
|
Details | Diff | Splinter Review |
(deleted),
application/octet-stream
|
Details | |
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
paulkchen
:
review+
waterson
:
superreview+
|
Details | Diff | Splinter Review |
May be related to Bug # 84920 (that's how it manifested for me -- really slow
closing windows).
I have been managing a moderate sized set of bookmarks (128K) recently, for the
first time, in Mozilla's bookmark manager. Trying to track down why performance
recently was sluggish I thought I'd look at file sizes in the profile directory.
'lo and behold my bookmarks file had burgeoned to 4MB! Further investigation
showed that for some reason three particular bookmarks had been replicated over
and over and over.
Resultant bad bookmarks file and file after cleanup can be provided. I apologize
that no further pre-bug or tracing information of any kind can be provided. This
did not crash Mozilla at any time, but significantly reduced the user experience.
Comment 2•23 years ago
|
||
I just saw this in a recent nightly build (Build 2001062504 win32). I find that
it seems to happen after I "manage" a bookmark (i.e. drap and drop bookmarks,
copy and paste bookmarks). I find that it sometimes make multiple copies in the
bookmarks.html file when I copy and paste to the same folder multiple times, and
sometimes the bookmarks.html file just grows on its own! After this happened Moz
became rather unstable (i.e. crash&freeze at startup, at exit and randomly at
bookmark access).
Status: UNCONFIRMED → NEW
Ever confirmed: true
1) The bookmark manager duplicate entries in the bookmarks.html files when one ctrl-drag a bookmark entry.
2) ctrl-dragging bookmark folders duplicate entire folders too.
3) sometime ctrl-dragging cause weird duplicates like when I ctrl-drag a folder, the entries under the folder gets duplicated.
4) sometimes ctrl-dragging cause other bookmarks to duplicate thousands of times.
I can reproduce 1 and 2 reliably, but 3 and 4 is very hard to duplicate.
Forgot to mentioned that I tested the above using build 2001062815 win32 0.9.2 branch
I was not able to reproduce the duplicates from basic's comment.
Linux, 2001062906 Moz0.9.2 branch
Comment 8•23 years ago
|
||
I am seeing #1 from _basic@yahoo.com's 2001-06-29 13:33 list, using a linux tip
build from this evening. Here's how I reproduced it:
1. Choose bookmarks->Add bookmark
2. Bring up bookmark manager
3. Right click on the new bookmark, and choose copy
4. Right click, then paste.
Notice: only 1 copy of the bookmark appears onscreen, but there's 2 in the
bookmarks.html file.
5. Right click on the new bookmark, then delete.
Notice: it's not on the screen, but there's still 2 in the bookmarks file.
6. Close bookmark manager
7. Open bookmark manager
Notice: the bookmark is back, but only 1 entry in the file.
8. Delete the bookmark, and now it's really gone.
Note: I have my new bookmark folder still at the default.
Comment 10•23 years ago
|
||
*** Bug 88948 has been marked as a duplicate of this bug. ***
Comment 11•23 years ago
|
||
*** Bug 88910 has been marked as a duplicate of this bug. ***
Comment 12•23 years ago
|
||
Raising severity to critical since mozilla won't start once the bookmarks file
has grown enough. Platform -> All as per the duplicates on Mac platform. I am
changing the summary to ease spotting the bug and avoid duplicates. I have
nominated the bug for 0.9.3 and nsCatFood since this is very annoying and may
keep people from using mozilla.
Severity: major → critical
Keywords: mozilla0.9.3,
nsCatFood
Hardware: PC → All
Summary: Bookmarks Manager severely duplicated bookmarks → bookmarks duplicated, bookmarks file grows
Assignee | ||
Comment 13•23 years ago
|
||
nav triage team:
This isn't going to make it for the mozilla0.9.3 bus, marking nsbeta1+,
mozilla1.0 and p2
Comment 14•23 years ago
|
||
moving up to mozilla0.9.5, as it manifests as a perf problem.
Target Milestone: mozilla1.0 → mozilla0.9.5
Comment 15•23 years ago
|
||
*** Bug 94860 has been marked as a duplicate of this bug. ***
Comment 16•23 years ago
|
||
*** Bug 97367 has been marked as a duplicate of this bug. ***
Comment 17•23 years ago
|
||
Mass-moving lower-priority 0.9.5 bugs off to 0.9.6 to make way for remaining
0.9.4/eMojo bugs, and MachV planning, performance and feature work. If you
disagree with any of these targets, please let me know.
Target Milestone: mozilla0.9.5 → mozilla0.9.6
Comment 18•23 years ago
|
||
This stopped me dead in my tracks today, although I only tried the steps to
reproduce a few times, 3 days ago. Today, my bookmarks file somehow grew to 10
times the size it was yesterday, and is now 2.7MB, which causes the app to
become unresponsive at startup (Win98). The extra bloat is a few bookmarks which
appear to have been duplicated thousands of times each. I'm pretty sure they are
the ones I used to repro this on 9/16. I didn't realize that this could happen
suddenly, I thought it was very gradual, upon repeating steps to repro many
times. Moving back to 095, nominating for nsbranch. Claudius, care to risk a
bookmarks file on this, and opine as to whether it is worthy of plussing?
Keywords: mozilla0.9.3 → nsbranch
Summary: bookmarks duplicated, bookmarks file grows → Hang: bookmarks duplicated, bookmarks file grows huge
Target Milestone: mozilla0.9.6 → mozilla0.9.5
Comment 19•23 years ago
|
||
*** Bug 100699 has been marked as a duplicate of this bug. ***
Comment 20•23 years ago
|
||
This also caused my bookmarks file to be truncated, I lost thousands of
bookmarks :`-(
Summary: Hang: bookmarks duplicated, bookmarks file grows huge → Hang: Bookmarks file grows huge, is truncated
Comment 21•23 years ago
|
||
Hmmm, now that it seems evident that the gross misbehavior starts out and looks
rather less innocent (1 for 1 dupes after manipulating BM's) before suddenly
becoming the huge performance mess I'd say yes, this bug is worth an nsbranch plus.
here's a big BM file to play around with. You should take a look peter:
http://mozilla.org/quality/browser/front-end/testcases/bookmarks/large-Bookmarks.html
Comment 24•23 years ago
|
||
I've not yet been able to reproduce the massive growth, but all steps to
reproduce point towards the duplication of bookmarks in the HTML during copy-
paste operations. (Ctrl+Drag is the same as a copy-paste)
So I've patched those operations to prevent duplicates being created if a paste
occurs into the same folder as the source, along with adding a comment saying
that it's because of our nonexistent handling of duplicate bookmarks that is my
suspected cause of this woe.
Comment 25•23 years ago
|
||
Comment 26•23 years ago
|
||
Can someone who can see this try this patch and let me know if it works? Or
provide me with a faulty bookmarks file?
Comment 27•23 years ago
|
||
(I've verified that this patch removes the creation of excess bookmarks during
pastes into the source folder)
Comment 28•23 years ago
|
||
Ben, could you tar up something for Claudius to test (unless he can handle the
patch)? I'm not convinced that this only happens on copy/paste/ctrl-drag, since
for me the growth occurred well after the last such op.
Comment 29•23 years ago
|
||
> I'm not convinced that this only happens on copy/paste/ctrl-drag, since for me
> the growth occurred well after the last such op.
I think copy/paste/ctrl-drag could have somehow triggered something that causes
this. When I first discovered this problem I thought it was regression but after
some testing I found out that if I don't copy/paste/ctrl-drag between different
folders (and back and forth), it doesn't happen.
Comment 30•23 years ago
|
||
I agree, the copy/paste/ctrl-drag seems to be a necessary step, but the problem
doesn't show up at that time.
Comment 31•23 years ago
|
||
The effect of a duplication into an existing folder is not user visible. It is
my thinking that the effects are seen later.
Updated .jar file containing the patch coming in a few minutes...
Comment 33•23 years ago
|
||
Ben, I'm not sure what you mean is not user-visible. The end effect of my
bookmarks file growing by an order of magnitude, and the app failing to launch,
is quite noticeable. Both of these happened 2 days after the operation.
We need to get this bug prepped for landing, which means QA testing it, reviews,
possibly even landing and baking on the trunk. Please drive this like you would
drive Sylvia, or it won't make it into the branch.
Comment 34•23 years ago
|
||
This needs an ETA date in the status whiteboard today.
Comment 35•23 years ago
|
||
Comment on attachment 50448 [details] [diff] [review]
patch to copy paste operations to prevent duplicate bookmarks
r=jag
Attachment #50448 -
Flags: review+
Comment 36•23 years ago
|
||
Chris - We need an sr=, so we can check this one in today - PDT.
Comment 37•23 years ago
|
||
Comment on attachment 50448 [details] [diff] [review]
patch to copy paste operations to prevent duplicate bookmarks
sr=waterson
Attachment #50448 -
Flags: superreview+
Comment 38•23 years ago
|
||
Comment 41•23 years ago
|
||
0.9.5 is out the door. bumping TM up by one.
Target Milestone: mozilla0.9.5 → mozilla0.9.6
Comment 42•23 years ago
|
||
Fixes checked in to trunk and .9.4 branch.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Comment 43•23 years ago
|
||
Comment 44•23 years ago
|
||
So here's another diff. I don't think my previous patch was enough coverage.
Tonight, I finally (involuntarily) reproduced this bug while working on some
other bugs. Magic doubling bookmarks file and all. Not wanting to be beaten, I
wrote this new patch.
Explained:
Many moons ago, rjc realized that duplicate bookmarks would be a PITA, so he
added some code to the bookmark parser that prevented against adding duplicate
bookmarks (to fix bug 51021). This code essentially did the following:
for each bookmark "A" about to be added to a container "C",
scan all the contents of "C" to see if "A" already exists.
This was a O(n^2) algorithm and was removed to save some startup time.
The current code has no mechanism for preventing against duplicate bookmarks,
other than vigilance in the FE. As this bug shows, there's not been much
vigilance in the FE ;) (I'm to blame).
I'm now proposing a solution that can kill two birds with one stone. Here's
what I've done in this patch:
- added a back-arc out of bookmarks to their parent container.
- added two special methods to nsIBookmarksService - insertInFolder and
removeFromFolder. These methods insert a bookmark into a folder (preventing
against duplicates, and ensuring the back arc is created) and remove a bookmark
(and its back arc) respectively.
The code in insertInFolder does this:
when a bookmark "A" is about to be inserted into folder "C",
1) obtain a list of all its parents (RDF "atomizes" resources, so a single
bookmark resource can be in multiple folders
2) iterate over this set of parents, comparing to "C"
3) if one matches, "A" already exists in "C", so don't add it again.
This should be faster than the system used originally because bookmarks
typically have fewer parents than folders have children (so the list to scan is
smaller).
It's still slower than it is now by nature of the fact that it is inserting
more code, but it represents a critical safety measure, IMO.
The other question is bloat. I am unsure as to how much is added by all these
back arcs. I will investigate today/tomorrow.
The patch does work, however, I created a rogue bookmark file with about a
hundred copies of the same bookmark in a particular folder, and the code
presented here only used the first, ignored the second, and then repaired the
bookmark file when the application quit.
After this patch goes in, the best followup would be to modify all FE code in
js that inserts/removes items from folders and make them use the two methods
I've added in this patch. This ensures that all insertion/removal goes through
the same code and reduces the likelihood of error.
The other bird killed by this, by the way, is a less important bug where a user
is prevented from deleting bookmarks displayed in search results because as far
as the view is concerned, the "parent" of the bookmark is the search result
root, not the folder the bookmark is actually in. Without knowing what that
folder is, it's impossible to delete (or perform other actions on) the bookmark
from within the search view. A back arc imparts that knowledge.
There are other potential benefits, such as reducing the coupling between the
RDF data model and the view (treeview currently), where the FE code currently
has to crawl around a content model to find parents, etc.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Comment 45•23 years ago
|
||
tingley has fixed nsIRDFContainer::IndexOf() so that it should now be O(1); see
bug 104328. So perhaps we could just revert rjc's fix?
Comment 46•23 years ago
|
||
Comment 47•23 years ago
|
||
Reinstate rjc's old code.
I'd still like to investigate the back-arc stuff (for the purpose of fixing
other bugs) but since it's no longer a requirement of this bug, it can wait.
Status: REOPENED → ASSIGNED
Comment 48•23 years ago
|
||
Removing the + for the time being, given that there might be another fix that
better addresses this problem, which has not been addressed.
Whiteboard: [PDT+] {willconflict:wgate094+} → [PDT] [willconflict:wgate094+] [Fix checked into 094 branch 10.15]
Comment 49•23 years ago
|
||
PDT-, would've loved to haved the last patch earlier. Sorry, but pls try and get
it into the trunk, once waterson has checked in his patch for the performance
issue. Let's stay where we are at right now.
Whiteboard: [PDT] [willconflict:wgate094+] [Fix checked into 094 branch 10.15] → [PDT-] [willconflict:wgate094+] [Fix checked into 094 branch 10.15]
Comment 50•23 years ago
|
||
So can I assume sr=waterson for this last patch?
Whiteboard: [PDT-] [willconflict:wgate094+] [Fix checked into 094 branch 10.15] → [PDT] [willconflict:wgate094+] [Fix checked into 094 branch 10.15]
Updated•23 years ago
|
Whiteboard: [PDT] [willconflict:wgate094+] [Fix checked into 094 branch 10.15] → [PDT-] [willconflict:wgate094+] [Fix checked into 094 branch 10.15]
Comment 51•23 years ago
|
||
Comment on attachment 53644 [details] [diff] [review]
patch using IndexOf
sr=waterson
Attachment #53644 -
Flags: superreview+
Comment 52•23 years ago
|
||
tingley, ben was seeing some problems with hanging on startup when he attempted
to alter attachment 53644 [details] [diff] [review] to use nsIRDFContainerUtils directly (for the branch).
Could you do a quick sanity check and verify that this works correctly with the
patch from bug 104328?
Comment 53•23 years ago
|
||
Sure, I'll take a look.
Comment 54•23 years ago
|
||
Thank goodness for Ben Goodger.
There's an infinite loop in RDFContainerUtilsImpl::IndexOf(). The |continue| at
http://lxr.mozilla.org/mozilla/source/rdf/base/src/nsRDFContainerUtils.cpp#533
should be a |break|. Making this change fixes the hang -- I'll include this in
a new version of the patch on bug 104328.
Is this code being called from anywhere else? I wouldn't have expected a bug
like this to survive for so long.
No longer depends on: 104328
Comment 55•23 years ago
|
||
I try ;)
Assignee | ||
Comment 56•23 years ago
|
||
Comment on attachment 53644 [details] [diff] [review]
patch using IndexOf
r=pchen
Attachment #53644 -
Flags: review+
Comment 57•23 years ago
|
||
Paul Chen is now taking Bookmarks bugs. For your convenience, you can filter
email notifications caused by this by searching for 'ilikegoats'.
Assignee: ben → pchen
Status: ASSIGNED → NEW
Comment 58•23 years ago
|
||
Fix checked in.
Status: NEW → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → FIXED
Comment 59•23 years ago
|
||
*** Bug 105810 has been marked as a duplicate of this bug. ***
Comment 61•22 years ago
|
||
*** Bug 101307 has been marked as a duplicate of this bug. ***
Updated•20 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•