Red Hat Bugzilla – Bug 449113
Firefox 3 fsync excessively and ui freezes
Last modified: 2010-10-22 21:36:10 EDT
+++ This bug was initially created as a clone of Bug #439908 +++
Description of problem:
Firefox 3 uses sqlite for storage of information like history, bookmarks, etc.
They used to use async i/o, but ran into corruption issues. So they went with
sync i/o which blocks very easily.
Sqlite runs six fsyncs per transaction for history changes. History changes
happen ever time you go to a new page. If you are doing something else on the
system like say a kernel compile, virtual machine image creation, or anything
i/o intensive then the Firefox gui freezes, because it is waiting on the fsync
to finish. I have seen this take literally a minute. Someone in the upstream bug
documented this taking 30 seconds.
The change was introduced in Firefox 3 beta 3. Before then it was async i/o.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. Install Firefox
2. Start Firefox
3. Do something i/o intensive
4. Load new pages
Firefox's ui freezes completely till the fsync completes
Firefox's ui doesn't freeze
The Mozilla developers have said they doesn't consider this a big issue, but for
me it makes Firefox 3 unusable. They have also said they don't plan to fix it
till after the 3.0 release, maybe not till 3.1.
Some discussion and workarounds:
We are following the bug in the upstream bugzilla no. 421482 very carefully, and
it is most likely that any relevant patch will be applied.
*** This bug has been marked as a duplicate of 439908 ***
Re-opening bug. This BZ is for RHEL 5 tracking. Bug 439908 is for Fedora rawhide.
Yes, sorry, I missed that IssueTracker number. Will fix.
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release. Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products. This request is not yet committed for inclusion in an Update
Should be fixed now.