@font-face Crashes Firefox on Fedora
Sunday, July 5th, 2009 Posted in Troubleshooting | 4 Comments »With the release of Firefox 3.5, I decided it was finally time to get serious about setting up a custom headline font on Speed Force. Cross-platform @font-face embedding in CSS is now possible on Firefox, Safari, the beta version of Opera, and (I think) Chrome. So I pulled out some bookmarks, looked for some fonts with licenses that allowed embedding, messed around with a test page and finally settled on two custom fonts: one for the post headlines, and one for the title and the sidebar section headers.
I tested it in a couple of browsers, both on my Linux desktop and on the Mac laptop, and planned to test it on the Windows desktop when Katie was done with it. But then something weird started happening.
Firefox started crashing. Repeatedly. Not quite predictably, but only when that test page was open.
I figured maybe it was a corrupted font, so I removed one, then the other, then both. If the page tried to download an embedded font, Firefox would eventually crash. If not, it was rock solid.
This seemed kind of bizarre for such a high-profile new feature to cause consistent crashing.
I did some searches online but didn’t come up with anything until I tried running Firefox from the command-line, so that I could read the error message. It complained, "firefox: cairo-ft-font.c:554: _cairo_ft_unscaled_font_lock_face: Assertion `!unscaled->from_face' failed." Searching for that led me to Fedora bug 509501 and bug 502274, and this blog entry.
To make a long story short:
- On Linux, Firefox uses a library called cairo to handle graphics, including fonts.
- An old version of cairo had a bug that would cause crashes with fonts under certain circumstances.
- Cairo fixed the bug in December.
- Fedora 11 is still using the old version of cairo.
So until Fedora ships a newer (or at least patched) version of cairo, my primary browser on my primary desktop will crash on any web page with an embedded font.
Nice.
I guess I could patch my own system for now and put the fonts up for the benefit of the rest of the Firefox+Safari+Opera-using audience on Windows and Macs (and probably other Linux distributions). But that means causing a crash for anyone else running Fedora 11 when they visit my site. I’m not too thrilled about that idea. I have no problem with adding enhancements that only appear under certain browser+os combinations, but actively crashing a browser? Not something I want to do.
Update (July 21): Aha! Fedora submitted an updated cairo for inclusion in the stable release last night!
Installing IE8 RC1 — Or Trying
Tuesday, January 27th, 2009 Posted in Browsers, Computers/Internet | No Comments »- Installed IE8 RC1. Installer crashed, and I ended up with IE7…even though I’d been running the IE8 beta before. #
- IE8 installer crashes system. New HW checks out. Bad RAM may have screwed something up before I replaced it. Time for System Restore. *grr* #
- Wow, System Restore is taking a lot longer this time. Maybe it’s actually working? (Or maybe safe mode just makes it slower?) #
- I can’t remember how many times I’ve rebooted this computer today. (And no, safe mode didn’t solve it) #
- Finally got IE8 RC1 installed by telling it not to install updates immediately. The Malicious Software Scan was crashing the system. WTF? #
- Now that I’ve FINALLY got IE8 RC1 running, a cursory check of websites I maintain shows no glaring problems. *whew!* #
Crash Cause
Tuesday, January 13th, 2009 Posted in Computers/Internet | No Comments »Aha! Crashes on Windows box are due to bad memory! #
Improving Browser Reliability
Thursday, July 31st, 2008 Posted in Browsers | No Comments »The IEBlog recently posted about their efforts to improve reliability in Internet Explorer 8, particularly the idea of “loosely-coupled IE” (or LCIE). The short explanation is that each tab runs in its own process, so if a web page causes the browser to crash, only that tab crashes — not the whole thing. (It is a bit more complicated, but that’s the principle.) Combine that with session recovery (load with the same set of web pages, if possible with the form data you hadn’t quite finished typing in), and you massively reduce the pain of browser crashes.
I’d like to see something like this picked up by Firefox and Opera as well. They both have crash recovery already, but it still means restoring the entire session. If you have 20 tabs open, it’s great that you don’t have to hunt them down again. But it also means you have to wait for 20 pages to load simultaneously. It would be much nicer to only have to wait for one (or, if I read the IE8 article correctly, three).
Edited to add:
On a related note, I’ve run into an interesting conflict between crash recovery and WordPress’ auto-save feature. If you start a new post, WordPress will automatically save it as a draft. If the browser crashes, it will bring up the new-post page, but restore most of the form data you filled in. So the title, the text of your post, etc will all be there. But WordPress will see it as a new post, and you’ll end up with a duplicate.
This wasn’t a major problem when I encountered it — I had to reset the categories, tags, and post slug after I hit publish (since I hadn’t noticed that they’d been reset to defaults), and I just deleted the older, partial version of the post — but I can imagine if I’d uploaded an image gallery, I would have been rather annoyed, since there’s no way (that I’ve noticed) to move images from one post to another. Reuse them, sure, but not such that the gallery feature would work.
Fragile Tech
Monday, August 8th, 2005 Posted in Annoyances, Computers/Internet | 1 Comment »I got into work this morning to find my desk’s keyboard and KVM switch non-responsive. The only way to reset the switch was to turn it off and back on, which meant disconnecting all the keyboard and mouse cables. (A KVM switch doesn’t need much power, so many of them just draw power from the computer, the same way an actual keyboard or mouse would.) It switched immediately to the Linux box, which was happily displaying its screen saver, so I switched back to the Windows box where it had been… and it got stuck again.
OK, so the Windows box had crashed. It’s been doing that lately, though usually I actually get a blue screen with the dreaded IRQL_NOT_LESS_THAN_OR_EQUAL, which could mean anything from a driver conflict to failing hardware. I haven’t taken the time to track it down, but maybe I should. I rebooted the Windows box, which seems fine for the moment, though there’s no sign of the crash—or even my forced reboot—in the system log.
Then I switched over to the Linux box, and the mouse wasn’t responding. When the mouse gets messed up, sometimes it’s enough to switch out of X into text mode and back. No luck. Sometimes closing X entirely and starting it again is enough. Not this time. I actually had to reboot the Linux box to get my mouse back. That really annoyed me.
So here are three things that went wrong.
- The Windows box crashed. This is probably a driver or hardware problem.
- The KVM switch got stuck. This should not be possible. Even if it’s getting confusing signals from one set of ports, it should be able to switch to another port.
- The Linux box (Fedora Core 4) could not recover from having the mouse unplugged for 10 seconds. There should be an easy way to tell it to check for the mouse again.
It’s #2 and #3 that bug me the most. Maybe it’s the man-bites-dog effect (I expect Windows to crash and/or require frequent reboots, so it’s more annoying when Linux does it), or maybe it’s just the fact that they’re simple error-recovery issues. I mean, seriously, unplugging the mouse for a few seconds makes it unusable?
Update: I forgot to check the second Windows box on the switch. It also had stopped responding to the mouse even after I reset the KVM switch. I’m beginning to think that problem #3 was in the switch itself, not the Linux mouse driver, since the non-crashed Windows box had the exact same problem.
Disconectiva
Thursday, October 2nd, 2003 Posted in Annoyances, Linux | 1 Comment »For several months I’ve been providing installable RPM packages for the Dillo web browser. Since many different distributions use RPM packages, I’ve been getting requests to add various Linux distributions. I started out just installing to extra partitions, but then I started building virtual systems with User-Mode Linux.
Well, people have been requesting RPMs for Conectiva, a distribution from Brazil and partner in UnitedLinux. I built a UML virtual system, but was never able to get Dillo to compile or to get the imitation network driver working. So, tonight I decided to install an actual copy.
With most Linux installers, you can choose where to create a new partition, and set it up to add existing ones to the system. This has worked fine with every version of Red Hat, Mandrake, and SuSE I have installed. The installer will create the new partition, leave the others alone, and mark them to be visible in the system you’ve installed.
Conectiva didn’t leave the existing partitions alone. Each partition I had marked was gone: my main OS partition (currently Red Hat 9), my home directory, and all my download and media files. Fortunately I had backups of the most critical files from last Saturday, and I was able to recover my entire home directory with Tomsrtbt and Parted’s rescue function. And I don’t mind losing my main OS, since it’s not that hard to re-install it – all I need is the configuration, and I’ve got that backed up.
That leaves my entire download and media archive. I always figured, “I can just re-download all of this, right?” And most of it I can. Much of the rest either isn’t important, or hasn’t changed since the last backup (which I’ll admit was a long time ago), or can be recovered from CD, or can be re-scanned. The few photos that hadn’t made it into last week’s backup turned out to still be in a temporary folder on my website. Still, there are things that will be hard to find again, and probably some that will be impossible.
Just in case, I’ve got a recovery tool scanning the lost partitions in hopes that it will come up with something.
I’m not touching Conectiva again – or any other distribution I’m not already familiar with – until I get a spare system set up, or maybe spring for something like VMWare. And I’m seriously considering picking up some sort of backup solution that will hold more than a CD-RW, so I’ll be more inclined to save everything instead of picking and choosing what to put on a few discs.
Update 7:45am: I got the download/media partition back. The tool I ran overnight didn’t seem to find anything, but when I ran parted again this morning (after remembering that it was on PAUD, the Parted And Utilities Disk, not Tomsrtbt) it was able to find the partition.
So now all that’s missing is the primary OS (I’m running off of one of the “extra” installations right now), and I can reinstall that easily.






My Amazon Wishlist

