
Good news: Mozilla fixed their damn browser - smacktoward
http://jasonlefkowitz.net/2011/12/good-news-mozilla-fixed-their-damn-browser/
======
jmillikin
Not to discount the work that Mozilla has been doing, but it seems like the
"improvement" they added is actually just a workaround for distros that
configure filesystems incorrectly.

That is, his machine is configured to use an obsolete filesystem (ext3) in a
mode with significant performance problems (data=ordered).

There are numerous ways that a machine can be mis-configured such that it
suffers from poor performance. It would be better if Firefox detected these
and warned about them, rather than just silently working around the broken-
ness.

~~~
CrLf
I find these statements amusing...

As it happens, neither is ext3 an obsolete filesystem (I have many machines
using it just fine, thank you, with no intention to migrate to less tested
filesystems just because they're "new"), nor "data=ordered" has significant
performance problems.

More amusing than this just the fact that the filesystem is a bottleneck for a
web browser... an application that should be network and CPU bound...

~~~
jmillikin
data=ordered certainly _does_ have significant performance problems. Most
notably, it causes fsync() to actually act like sync(), so flushing a single
file to disk can potentially cause a flush of the entire disk buffer instead!

~~~
nknight
That behavior for fsync() is permitted by POSIX (and incidentally matches a
_permitted_ , but not _required_ , interpretation of sync()). It's also
something that, given reasonable application design, should rarely be an
issue.

Part of Firefox's problem was that practically everything a user would do
resulted in fsync() being called -- that's unnecessary and unreasonable. It's
one thing to fsync() when one adds a bookmark, or saves a password. Doing it
every time a link is clicked is just insane, and would pose a performance
problem regardless of ext3's eccentricities.

------
noelwelsh
I've been running Aurora for a few months. It's been stable and gets the new
toys quicker. Some add-ons break on some updates, but the few web dev. add-ons
I use are always quick to update. I get questionnaires from time to time, but
they don't take long to complete and are a trivial way to contribute to
Mozilla. In short, give Aurora a try. It works as my full-time browser.

~~~
zobzu
Note that you can disable the questionnaires if you don't like them (you do,
but some may not)

------
sciurus
Can anyone point to the bugzilla entries for the fixes?

~~~
mbrubeck
I'm not sure which exact bug was the culprit here, but this is a list of
related to responsiveness problems caused by the "places" database:
[https://bugzilla.mozilla.org/showdependencytree.cgi?id=69150...](https://bugzilla.mozilla.org/showdependencytree.cgi?id=691507)

Some notable ones that were fixed recently include <http://bugzil.la/690354>
and <http://bugzil.la/686025>

------
joejohnson
What are people's overall impressions of Firefox 9?

~~~
viraptor
I don't remember anymore - running 11.0a now. I'm using nightly builds since
~2009 and haven't experienced any issues so far (really - not even a random
crash). The difference is so huge in overall performance, I don't want to go
to the "stable" release anymore.

The only problem are some less common plugins, but adblock and firebug get
updated within days... and I just switch to the latest official release for
quake live.

~~~
otherpope
"I don't remember anymore - running 11.0a now. I'm using nightly builds since
~2009"

Likewise. I also have several extensions enabled and generally have 30+ tabs
open all the time, sometimes many times that. I have had an odd crash but very
rarely.

------
tytso
So a couple of corrections that people are getting wrong over and over again
in this discussion. The reason why data=ordered is the default is not because
it's more likely for the file system to be recovered after a crash. It's
default for security reasons. The "data-writeback" mount option has the
tradeoff that there can be uninitialized blocks attached to files after a
crash. These uninitialized blocks could contain someone else's love letters,
porn stash, medical records, etc.

The main issue with "data=ordered" is not that it imposes a global order, but
that if you do block allocations, fsync() requires a journal commit, and the
security guarantees behind "data=ordered" require that all newly allocated
blocks must be written out before the filesystem-wide journal commit can be
allowed to complete. (Ext4 doesn't have this problem because it uses delayed
allocation.)

This isn't an issue with other databases such as Oracle, DB2, MySQL, etc. They
have no problems running on ext3. This is partially because they don't use
fsync() at all. Oracle and DB2 use O_DIRECT to blocks that are allocated once
(new blocks are only allocated when the table space file needs to be grown),
and MySQL uses fdatasync() to files that aren't constantly being created and
destroyed. SqlLite, because it is trying to pretend that it only needs one
file, uses many, MANY temporary files which are being constantly created and
destroyed. This is not efficient, and is why SQLite has all of these problems,
but millions and millions of dollars worth of enterprise servers can use ext3
running on RHEL3, RHEL4, and RHEL5 on Oracle without hitting these issues.

The sad thing is most people like to use SQLite because it doesn't require
manual scheme generation, not because it only uses one file. (In fact it
doesn't; there are multiple temporary files, some of such must be there in
case of an unclean shutdown. So if you copy just the single file after a
program crash, you'll screw up the database.) If someone created a lightweight
database that uses SQLite's interfaces, but used a single directory to hold
all of the database's files, and then didn't constantly copy data back and
forth between temporary files which were being constantly created and
destroyed, but instead used the storage strategies used by the more
sophisticated database systems, the result would work well on ext3, and for
all file systems, it would use less data writes, which would save battery
usage, SSD write endurance, and many other things. The last time I measured
it, Firefox's "awesome bar" was consuming a third of a megabyte of write
bandwidth to the disk per click; and it was updating at most a few hundred
bytes of data. The rest was all overhead due to the catastrophic
inefficiencies of SQLite.

P.S. And if you do implement this, please consider releasing it under the
Apache license so I can hopefully convince the Android team to drop SQLite in
favor of something that was a bit more written towards performance --- and
Android users all over the world will thank you. :-)

~~~
bryanlarsen
I think we can consider this authoritative: Theodore T'so is the maintainer of
ext3 & ext4.

------
PissedOffHNer
Fixed?

I ran Google Chrome open with 80-100 tabs for 3 WEEKS without anything going
wrong. Sunday the 18th I finally closed it and restarted my computer (after 3
weeks of non stop running).

Monday I launched the latest build of FireFox and within 30 minutes it
crashed. It then crashed again a few hours later.

Goodbye FireFox.

~~~
zobzu
I ran Chrome for 4 years (yeah) and closed it today after this news. Started
Firefox Aurora and it crashed at opening.

Damn. Oh and this is my 3rd post.

~~~
cpeterso
To be fair, Aurora is Mozilla's not-even-beta channel. And today of all days
was Day 1 of a new Aurora release cycle: in 6 weeks - 1 day, Aurora will be
elevated to Beta channel.

------
rhizome
It would be more accurate to say "is (probably) fixing," possibly with an (on
Linux) suffix.

------
redmethod
Even with fixes, most people seem to be switching to Chrome. It's hard to beat
Google's integration

~~~
wwweston
Google's integration is actually the reason why I'd switch back to Firefox in
a heartbeat if the performance kept up -- there's some serious privacy issues
involved in browsing the web using a Google browser while logged in to a
Google account.

~~~
NARKOZ
Use Chromium if you complain about privacy

~~~
gcp
I don't see how Chromium solves _any_ of the issues he was complaining about.
It's not like it rips out the basic designs of the browser, which _are_ still
tightly tied to Google.

~~~
intranation
Chromium and Chrome are identical except for one compile flag (which means you
can at least check it yourself):

<http://news.ycombinator.com/item?id=3034755>

