Firefox

Home, 2008-04-22

Firefox Extensions
Fixing a Broken Profile
Part 1 -- Security Update
Part 2 -- New Java
Part 3 -- Google Notebook

Firefox ExtensionsContents

Fixing a Broken ProfileContents

(Sometimes it seems to help if firefox is simply started from a new shell)

Part 1 -- Security UpdateContents

A security update (to 1.5.0.9 or something) broke my firefox. After a couple of restarts it would not start at all. An strace showed something like:

stat64("/home/pink/.mozilla/firefox/init.d/K*", 0xbfc6e030) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/opt/firefox-1.5.0.9/init.d/K*", 0xbfc6e030) = -1 ENOENT (No such file or directory)
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(1)                           = ?

I tried a number of things to fix it, but without success, so I created a new profile and tried to copy the most important bits from my old profile. The first attempts failed (I tried to copy all the files and then start firefox), but the following worked:

  1. copy bookmarks.html and start firefox
  2. copy history.dat formhistory.dat and start firefox
  3. copy key3.db and start firefox
  4. copy prefs.js and start firefox
  5. copy signons.txt and start firefox

I am not sure exactly why or how it worked, the signons.txt seemed to create most problems. Both key3.db and signons.txt are needed to be able to use the stored passwords.

Part 2 -- New JavaContents

In January 2007 I installed a new java (jre1.5.0_10) updated the plugins, restarted firefox and got this:

% INTERNAL ERROR on Browser End: Could not get the plugin managerpink@hugin: ~]
System error?:: Success

This killed my profile again and this time I could not even create a new profile and copy my bookmarks over without killing the profile...

This is what I did:

If there is still problems try to mkdir an init.d-dir under .firefox and touch a file beginning with K, say Kfoo.

Part 3 -- Google NotebookContents

A copy-paste inside my google notebook crashed my firefox and I could not start it with my profile afterwards:

[{WIFEXITED(s) && WEXITSTATUS(s) == 1}], 0) = 15573
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(-1, 0xbff27468, WNOHANG)        = -1 ECHILD (No child processes)
sigreturn()                             = ? (mask now [])
rt_sigaction(SIGINT, {SIG_DFL}, {0x8075fa0, [], 0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
read(255, "exitcode=$?\n\n## Stop addon scrip"..., 5247) = 91
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
open("/home/pink/.mozilla/firefox/init.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
brk(0)                                  = 0x811a000
brk(0x811c000)                          = 0x811c000
getdents64(3, /* 3 entries */, 4096)    = 72
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
open("/opt/firefox-1.5.0.9/init.d/", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 3 entries */, 4096)    = 72
getdents64(3, /* 0 entries */, 4096)    = 0
close(3)                                = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/home/pink/.mozilla/firefox/init.d/Kfoo", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
stat64("/opt/firefox-1.5.0.9/init.d/Kfoo", {st_mode=S_IFREG|0664, st_size=0, ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8)  = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
exit_group(1)                           = ?

I simply decided to add some size to /home/pink/.mozilla/firefox/init.d/Kfoo and wrote a few random letters into it, and lo and behold it started just fine after that.