Closed
Bug 80868
Opened 23 years ago
Closed 6 years ago
Race conditions when rapidly switching preference panes
Categories
(Core :: Preferences: Backend, defect, P4)
Tracking
()
RESOLVED
INCOMPLETE
mozilla1.1alpha
People
(Reporter: jbetak, Assigned: samir_bugzilla)
References
Details
Attachments
(4 files)
this is a follow-up bug to bug 57720, which was marked mostfreq. This problem affects preferences only. Although rapid UI interaction might cause a large JS file from being fully loaded in any part of the XUL UI, only the preferences seem to cache transient widget state information (via Ben's wsm - widget state manager). For now, I'll simply copy some of the comments from there: --- It appears that the culprit is the asynchronous load of external JS files from individual pref panes. When "dancing around" the preference window tree, the asynchronous load can fail due to the timing (racing?) conditions and the initialization JS code for the pref pane doesn't get executed. After a failed JS load, we start hitting the asserts. --- when I increase the size of pref-search.js (>10 kB ) and place a delay in its initialization function, this bug can also be reproduced with the "Internet Search" preference panel. It seems to be an underlying issue with the preference code, which cannot handle multiple rapid requests without compromising data integrity. ---
Reporter | ||
Comment 1•23 years ago
|
||
Reporter | ||
Comment 2•23 years ago
|
||
Reporter | ||
Comment 3•23 years ago
|
||
Reporter | ||
Comment 4•23 years ago
|
||
Comment 5•23 years ago
|
||
I don't think this is a backend issue, I think it's a frontend issue. Perusing through the console output, I can't immediately find an indication of a race condition.. can you post a relevant exerpt?
Reporter | ||
Comment 6•23 years ago
|
||
alecf, thanks for looking into this. I'll try to spend some more time prepping valid data as promised. For expediency's sake, here are my current - and for the most part probably ignorant - comments: both console outputs demonstrate that a JS file could not be loaded, which I found suspicious. In my experience this only happens if interacting with the pref tree very rapidly. Debug dumps in nsPrefWindow and nsWidgetStateManager proved to be helpful in both generating an event log and artificially slowing down the responsiveness. Another thought - every prefWindow "switchpage" request should be followed with an "onpageload". Below I copied all occurrences from the last attachment - the "switchpage" count is 22, "onpageload" is 16... ------------- *** Switch page request:chrome://communicator/content/pref/pref-languages.xul... got a request WARNING: not calling OnDataAvailable, file d:\build\mozilla\netwerk\base\src\nsA syncStreamListener.cpp, line 403 Failed to load file:///D:/build/mozilla/dist/WIN32_D.OBJ/bin/chrome/toolkit/cont ent/global/strres.js WARNING: waaah!, file D:\build\mozilla\rdf\content\src\nsXULPrototypeDocument.cp p, line 523 *** Switch page request:chrome://communicator/content/pref/pref-languages.xul... got a request WARNING: not calling OnDataAvailable, file d:\build\mozilla\netwerk\base\src\nsA syncStreamListener.cpp, line 403 Failed to load file:///D:/build/mozilla/dist/WIN32_D.OBJ/bin/chrome/toolkit/cont ent/global/strres.js *** onpageload: this.wsm.dataManager.pageData[chrome://communicator/content/book *** onpageload: this.wsm.dataManager.pageData[chrome://communicator/content/book *** onpageload: this.wsm.dataManager.pageData[chrome://communicator/content/pref *** onpageload: this.wsm.dataManager.pageData[chrome://communicator/content/pref *** onpageload:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** onpageload:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** onpageload:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** onpageload:chrome://communicator/content/pref/pref-history.xul *** onpageload:chrome://communicator/content/pref/pref-languages.xul *** onpageload:chrome://communicator/content/pref/pref-navigator.xul *** onpageload:chrome://communicator/content/pref/pref-navigator.xul *** onpageload:chrome://communicator/content/pref/pref-search.xul *** onpageload:chrome://communicator/content/pref/pref-smart_browsing.xul *** onpageload:chrome://communicator/content/pref/pref-smart_browsing.xul *** onpageload:chrome://communicator/content/pref/pref-smart_browsing.xul *** onpageload:chrome://editor/content/pref-editing.xul *** switchPage:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** switchPage:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** switchPage:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** switchPage:chrome://communicator/content/bookmarks/pref-bookmarks.xul *** switchPage:chrome://communicator/content/pref/pref-applications.xul *** switchPage:chrome://communicator/content/pref/pref-applications.xul *** switchPage:chrome://communicator/content/pref/pref-history.xul *** switchPage:chrome://communicator/content/pref/pref-history.xul *** switchPage:chrome://communicator/content/pref/pref-history.xul *** switchPage:chrome://communicator/content/pref/pref-languages.xul *** switchPage:chrome://communicator/content/pref/pref-languages.xul *** switchPage:chrome://communicator/content/pref/pref-search.xul *** switchPage:chrome://communicator/content/pref/pref-search.xul *** switchPage:chrome://communicator/content/pref/pref-search.xul *** switchPage:chrome://communicator/content/pref/pref-search.xul *** switchPage:chrome://communicator/content/pref/pref-smart_browsing.xul *** switchPage:chrome://communicator/content/pref/pref-smart_browsing.xul *** switchPage:chrome://communicator/content/pref/pref-smart_browsing.xul *** switchPage:chrome://communicator/content/pref/pref-smart_browsing.xul *** switchPage:chrome://editor/content/pref-composer.xul *** switchPage:chrome://editor/content/pref-editing.xul *** switchPage:chrome://editor/content/pref-editing.xul
Reporter | ||
Comment 7•23 years ago
|
||
oops, I copied the same section twice, here is the missing part: *** switchPage:chrome://editor/content/pref-composer.xul /content/pref-editing.xul *** switchPage:chrome://communicator/content/pref/pref-search.xul Failed to load file:///C:/build/mozilla/dist/WIN32_D.OBJ/bin/chrome/comm/content /editor/pref-composer.js /content/pref-composer.xul WARNING: waaah!, file c:\build\mozilla\content\xul\document\src\nsXULPrototypeDo cument.cpp, line 523 JavaScript error: Here is another snippet, which shows that pref-search.js was not loaded although a the usual "Failed to load file..." warning didn't come up this time: *** hPrefWindow.onpageload: chrome://communicator/content/pref/pref-search.xul JavaScript error: line 0: checkEngine is not defined
Assignee | ||
Updated•23 years ago
|
Status: NEW → ASSIGNED
Priority: -- → P4
Target Milestone: --- → mozilla0.9.7
Assignee | ||
Comment 9•23 years ago
|
||
Moving to mozilla0.9.8.
Target Milestone: mozilla0.9.7 → mozilla0.9.8
Assignee | ||
Comment 10•23 years ago
|
||
Moving to milestone after mozilla0.9.9 (mozilla1.0 for now).
Keywords: nsbeta1+
Target Milestone: mozilla0.9.8 → mozilla1.0
Assignee | ||
Comment 11•23 years ago
|
||
Prefs triage team: nsbeta1-
Comment 12•22 years ago
|
||
Mass-moving all Navigator team 1.0 nsbeta1- bugs to 1.1
Target Milestone: mozilla1.0 → mozilla1.1
Updated•15 years ago
|
QA Contact: bugzilla → preferences-backend
Comment 13•6 years ago
|
||
This bug hasn't hasn't been touched meaningfully in 17 years. I don't even understand what it's about -- I don't know what "preference panes" and the "preference window tree", and pref-search.js doesn't seem to exist any more. I'm going to assume that whatever relevance it once had is long gone.
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → INCOMPLETE
You need to log in
before you can comment on or make changes to this bug.
Description
•