[MASTER] Firefox does not start with certain addons installed

Bug #518422 reported by Sebastian
268
This bug affects 53 people
Affects Status Importance Assigned to Milestone
Mozilla Firefox
Fix Released
Medium
Nominated for 3.6 by Ryan
firefox (Ubuntu)
Fix Released
Medium
Chris Coulson
Lucid
Fix Released
Medium
Chris Coulson

Bug Description

Binary package hint: firefox

After upgrade to package version 3.6+nobinonly-0ubuntu1 Firefox does no longer start.
Removal of compatibility.ini in the configuration directory resolves the problem; however, Firefox then writes a new compatibility.ini that causes the problem again.

Revision history for this message
Draycen DeCator (ddecator) wrote :

Thank you for taking the time to report this bug and helping to make Ubuntu better. Firefox 3.6 has gone through some updates since this bug was reported. Could you please update to the latest version and let us know if this problem is still affecting you?

Changed in firefox (Ubuntu):
status: New → Incomplete
Revision history for this message
tromba-marina (tromba-marina) wrote :

Same behaviour on Windows 7. You have to delete compatibility.ini every time Firefox is closed (or alternatively, start in safe mode, then restart into normal mode).
A lot more people seem to be encountering this problem on various operating systems, cf. http://support.mozilla.com/tiki-view_forum_thread.php?locale=de&forumId=1&comments_threshold=0&comments_parentId=562036.

My current build identifier: Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2) Gecko/20100115 Firefox/3.6

Revision history for this message
Ryan (ubuntu-draziw) wrote :

Folks on mozilla, ubuntu, xmarks (and other) forums reporting the same issue. Removing compatibility.ini before every launch allows firefox to launch correctly
http://ubuntuforums.org/archive/index.php/t-1386945.html

Changed in firefox (Ubuntu):
status: Incomplete → Confirmed
Revision history for this message
Draycen DeCator (ddecator) wrote :

Thank you for taking the time to find an upstream report for this bug. Just to make sure this is an upstream bug, can you please confirm that this is still occurring on the latest Firefox release? We would appreciate it if you could also run the following command in a terminal:

apport-collect 518422

This will add relevant information about your system to this report so we can make sure everything looks correct.

Revision history for this message
Ryan (ubuntu-draziw) wrote :

You can find the apport data under https://bugs.launchpad.net/bugs/528139; apport-collect says you should only file on your bugs, or that you should create new and mark as dupe; since I already had a bug open, and already put in apport data, probably best to use that one.
ii firefox 3.6+nobinonly-0ubuntu5 safe and easy web browser from Mozilla
ii libxul-common 1.8.1.16+nobinonly-0ubuntu1 Gecko engine library - common files
ii libxul0d 1.8.1.16+nobinonly-0ubuntu1 Gecko engine library
ii xulrunner-1.9.1 1.9.1.8+build1+nobinonly-0u XUL + XPCOM application runner
If you really want me to attach to this one, let me know and I'll ignore the apport warning.

Revision history for this message
Draycen DeCator (ddecator) wrote :

Sorry about that, I didn't realize that information was attached to the other report. Have you tried disabling the "Torbutton" add-on while in Safe Mode like Micah requested? If you could try that and let us know whether or not it works, we would appreciate it. Thanks in advance!

Revision history for this message
Ryan (ubuntu-draziw) wrote :

Yes; Tried that. The 2 extensions I have that will consistently trigger the 'fail to even attempt launching' symptom (if compatibility.ini is in place) for me are RequestPolicy and xmarks. Both worked perfect on prior builds, and both work perfectly with 3.6 if I remove compatibility.ini, or if I launch in safe, enable, then click restart firefox. (which then runs without a compatibility.ini file)

Revision history for this message
Ryan (ubuntu-draziw) wrote :
Download full text (3.6 KiB)

I tried a strace -f /usr/bin/firefox...

Looks like the issue ties to this read...
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
grep 0xb7662058 firefox-strace.txt |wc
    425 4250 36975
Leading up to that read..
25377 socket(PF_FILE, SOCK_STREAM, 0) = 3
25377 connect(3, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0
25377 getpeername(3, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, [20]) = 0
25377 uname({sys="Linux", node="lt", ...}) = 0
25377 access("/var/run/gdm/auth-for-ryan-D3btog/database", R_OK) = 0
25377 open("/var/run/gdm/auth-for-ryan-D3btog/database", O_RDONLY) = 4
25377 fstat64(4, {st_mode=S_IFREG|0600, st_size=47, ...}) = 0
25377 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb74d1000
25377 read(4, "\1\0\0\2lt\0\0010\0\22MIT-MAGIC-COOKIE-1\0\20\27"..., 4096) = 47
25377 read(4, "", 4096) = 0
25377 close(4) = 0
25377 munmap(0xb74d1000, 4096) = 0
25377 getsockname(3, {sa_family=AF_FILE, NULL}, [2]) = 0
25377 fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
25377 fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
25377 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
25377 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
25377 writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"\0273\203\3672'\0\367\360\375\" \377s\17\256", 16}, {"", 0}], 6) = 48
25377 read(3, 0xb7603a40, 8) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\v\0\0\0\3\3", 8) = 8
25377 read(3, "hX\243\0\0\0\340\3\377\377\37\0\0\1\0\0\24\0\377\377\1\7\0\0 \10\377\0\0\0\0"..., 3084) = 3084
25377 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
25377 writev(3, [{"b\0\5\0\f\0\0\0BIG-REQUESTS", 20}], 1) = 20
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\1\0\0\0\0\0\1\221\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096) = 32
25377 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
25377 writev(3, [{"\221\0\1\0", 4}], 1) = 4
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\0\2\0\0\0\0\0\377\377?\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096) = 32
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
25377 writev(3, [{"7\0\5\0\0\0\340\3\255\1\0\0\10\0\0\0\377\377\377\0\24\0\6\0\255\1\0\0\27\0\0\0"..., 44}, {NULL, 0}, {"", 0}], 3) = 44
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
25377 read(3, "\1\10\4\0,\0\0\0\37\0\0\0\0\0\0\0\255\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 208
25377 read(3, 0xb7662058, 4096) = -1 EAGAIN (Resource temporarily unavailable)
25377 poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
25377 writev(3, [{"b\0\5\0\t\0\340\3", 8}, {"XKEYBOARD", 9}, {"\0\0\0", 3}], 3) = 20
25377 poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, rev...

Read more...

Revision history for this message
Ryan (ubuntu-draziw) wrote :

So if I'm reading the trace right - the issue is with firefox not getting the read it expects from xwindows after trying to set permissions (MIT-MAGIC-COOKIE-1 being user based protection)
25377 writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"\0273\203\3672'\0\367\360\375\" \377s\17\256", 16}, {"", 0}], 6) = 48
25377 read(3, 0xb7603a40, 8) = -1 EAGAIN (Resource temporarily unavailable)
and every read after that failing the same way. ??

Revision history for this message
Ryan (ubuntu-draziw) wrote :

Replicated with nightly:
http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-firefox-3.6.x/firefox-3.6.2pre.en-US.linux-i686.tar.bz2
md5sum:
50e87e4dcbcf2dd5bed29e80c5ab1b4e firefox-3.6.2pre.en-US.linux-i686.tar.bz2

Revision history for this message
John Vivirito (gnomefreak) wrote :

Changed to "triaged" as we have enough info for upstream to work on this

Changed in firefox (Ubuntu):
status: Confirmed → Triaged
Revision history for this message
Micah Gersten (micahg) wrote :

Marking High as this prevents usage

Changed in firefox (Ubuntu):
importance: Undecided → High
Revision history for this message
Kees Cook (kees) wrote :

A more stable work-around is:

rm compatibility.ini
ln -s /dev/null compatibility.ini

this will keep it worked around at every launch.

Revision history for this message
Kees Cook (kees) wrote :

I take it back -- this causes GM to not initialize at all. An rm per run seems to fix it, though.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Bug 530196 is probably a symptom of this issue.

Another symptom may occur on linux builds where extensions containing components are symlinked. For example, on Debian, extensions can live in a common directory for all applications and /usr/lib/mozilla/extensions/{app-id}/{ext-id} is a symbolic link to the common directory.

Another trigger was reported by a user who uses symbolic links for his firefox profile.

What happens then is that while you can run firefox once, if you exit firefox and start it again, well, it doesn't start up.

It looks like the xptiInterfaceInfoManager part of bug 491245 is responsible for this issue. In other words, reverting its hunk (http://hg.mozilla.org/mozilla-central/diff/51bafb458d68/xpcom/reflect/xptinfo/src/xptiInterfaceInfoManager.cpp) is enough to "fix" the problem.

Revision history for this message
In , Bzbarsky (bzbarsky) wrote :

So this is basically the same as bug 513736 and bug 530793, right?

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

(In reply to comment #1)
> So this is basically the same as bug 513736 and bug 530793, right?

Yes it is. And I think I know what the root problem is (though I am currently building to verify that), and it all boils down to what we want to expect from nsIFile.equals. In other words, the change in bug 491245 in probably very wrong, and the normalizations shouldn't even be needed.

On Unix, and I guess OSX, nsIFile.equals could be a matter of checking st_dev and st_ino in a stat() result.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Created an attachment (id=431372)
Possible patch, but fixing the wrong issue IMHO

I verified this patch works, for both the components directory issue and bug 530196 (tested after reverting it, too).

So the problem is that the normalization is done on the nsIFile contained in the components array, and this breaks some other code using this array.

Now, as I said in comment #2, I think the real issue is that of nsIFile.equals and should be fixed there. Patches for bug 530196 and bug 491245 should be reverted.

I can provide a patch for Unix. I guess the same logic would work on OSX.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Created an attachment (id=431403)
Patch

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

(From update of attachment 431403)
I'd be interested to know if the test passes on OSX with this patch.
It should, however, break on Windows.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Note this would probably be more efficient if the strcmp was done first and stat()s only done when then doesn't match. But I'd first like to hear what you think before going further.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

http://msdn.microsoft.com/en-us/library/aa364952%28VS.85%29.aspx This could be used to implement the same test on Windows.

Revision history for this message
Micah Gersten (micahg) wrote : Re: Firefox does not start with certain addons installed

Is everyone with this issue on amd64?

summary: - Firefox does not start
+ Firefox does not start with certain addons installed
Revision history for this message
tekstr1der (tekstr1der) wrote :

x86 here. I just rm -f compatibility.ini from the firefox launch script as a workaround for now, but that gets wiped on updates.

Micah Gersten (micahg)
tags: added: regression-potential
Changed in firefox (Ubuntu):
milestone: none → ubuntu-10.04-beta-2
Revision history for this message
Alexander Sack (asac) wrote :

seems its happening for extensions reachable through a link. The xpti management seems to normalize some paths, but not all, so it always thinks that xpti.dat isnt up to date meaning that it will refuse to start.

attachning patch.

tags: added: patch
Revision history for this message
Dave Stroud (bigdavesr) wrote :

The culprit on mine was prism. on x86. Simply disable it and it works fine.

Bryce Harrington (bryce)
Changed in firefox (Ubuntu Lucid):
assignee: nobody → Canonical Desktop Team (canonical-desktop-team)
Changed in firefox (Ubuntu Lucid):
assignee: Canonical Desktop Team (canonical-desktop-team) → Chris Coulson (chrisccoulson)
Revision history for this message
In , Reed Loden (reed) wrote :

Is there a reason you requested feedback instead of review from bsmedberg?

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

(In reply to comment #8)
> Is there a reason you requested feedback instead of review from bsmedberg?

Firstly because I'd like to hear which approach would be considered the right one. Secondly because the second patch is not complete, since it doesn't implement the change on windows and other platforms.

Revision history for this message
LordPhoenix (lorphoenix) wrote : Re: Firefox does not start with certain addons installed

I've got same problem here with this message when launching from terminal :

Attempting to load the system libmoon
Segmentation fault (core dumped)

I've tried with a new firefox profile and got the problem only when I tried to use addons managment tools.

Hope this will help.

Revision history for this message
Chris Coulson (chrisccoulson) wrote :

LordPhoenix - it seems that you have an unrelated issue

Revision history for this message
Ben Romer (bromer) wrote :

I've just started having this problem after doing an update this morning. Removing the compatibility.ini works around the problem. I'm running the 64-bit Lucid beta.

Revision history for this message
Ben Romer (bromer) wrote :

Also happening on 32-bit system after the same update.

Revision history for this message
Cody Herriges (ody-cat) wrote :

Also affecting me after today's round of updates.

Revision history for this message
David Tester (david-g-tester) wrote :

This bug hit me after pulling in today's updates. I'd been using Lucid Alpha 3 (32-bit). As suggested in comment #18, disabling Prism fixed it.

Revision history for this message
dtr (dtr) wrote :

This bug is affecting me. I'm currently running Kubuntu 10.04 beta 64 bit.
Also with me Prism seems to be the culprit. After uninstalling Prism Firefox works again.

Revision history for this message
Mekk (marcin-kasperski) wrote :

I have the same problem. Ubuntu 32-bit, up-to-date firefox (3.6+nobinonly-0ubuntu5~mfs~karmic1). Removing compatibility.ini helps (alternative way to resolve the problem is to start firefox in safe mode and quit it from the prompter, then start normally).

Revision history for this message
Mekk (marcin-kasperski) wrote :

Looks like disabling prism helped.

Revision history for this message
Ben Romer (bromer) wrote :

Removing prism made this problem go away on both my 32-bit and 64-bit systems.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

*** Bug 533535 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

*** Bug 530793 has been marked as a duplicate of this bug. ***

Changed in firefox:
status: Unknown → Confirmed
summary: - Firefox does not start with certain addons installed
+ [MASTER] Firefox does not start with certain addons installed
Changed in firefox (Ubuntu Lucid):
importance: High → Medium
tags: added: apport-collected
Martin Pitt (pitti)
Changed in firefox (Ubuntu Lucid):
status: Triaged → Fix Committed
Changed in firefox (Ubuntu Lucid):
status: Fix Committed → Fix Released
36 comments hidden view all 116 comments
Revision history for this message
In , Tom-malfrere (tom-malfrere) wrote :

(In reply to comment #26)
> This now seems to work as expected on mozilla-central. I've got
> http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=33ff230a5b78&tochange=0d8bf91aa71e
> as the fix range, so maybe fixed by bug 570488 ?

OK, finally some positive news...
Is there a version (beta, rc, ...) available somewhere that we can test?

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Please note that even if the current issue with the components directory is fixed, the PoC for trunk should still be considered as it also decreases the number of stat() calls at startup (normalization does a stat() on every sub directory of the path starting from / to see if it is a symbolic link and possibly resolve it). With this PoC, any call to file.normalize for use with file.equals could be removed.

Revision history for this message
In , Patrick-mozilla-enigmail (patrick-mozilla-enigmail) wrote :

*** Bug 576233 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Mr-iopus (mr-iopus) wrote :

>At least i've seen a couple of problems here with GreaseMonkey, Downthemall and
Weave. So what do these plugins have in common?

Do they use a XPT component? At least, that is what triggers the issue with our iMacros addon: https://bugzilla.mozilla.org/show_bug.cgi?id=574334
Renaming the xpt "solves" the issue (i. e. Firefox starts again, but the extension is broken)

Revision history for this message
In , Madcap (madcap) wrote :

*** Bug 548927 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Benjamin Smedberg (Mozilla) [:bs] (benjamin-smedbergs) wrote :

This was fixed completely on trunk (for Firefox 4) with bug 568691, and I don't think there is a safe patch I'd take on branches, so let's call this WORKSFORME.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

(In reply to comment #32)
> This was fixed completely on trunk (for Firefox 4) with bug 568691, and I don't
> think there is a safe patch I'd take on branches, so let's call this
> WORKSFORME.

My patch for the 1.9.2 branch is pretty safe. Please consider it.

Other than that, what about comment 28 ? Need I file a new bug, now ?

Revision history for this message
In , Timeless-bemail (timeless-bemail) wrote :

*** Bug 574458 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Benjamin Smedberg (Mozilla) [:bs] (benjamin-smedbergs) wrote :

(From update of attachment 431372)
Yeah, that seems safe enough. r-d, this will help Linux (and mac) users whose application or profile is installed in a symlinked location, and is fairly low risk.

Revision history for this message
In , Benjamin Smedberg (Mozilla) [:bs] (benjamin-smedbergs) wrote :

re: comment 28 followup, I don't think so: I'm pretty sure we aren't normalizing files at all any more.

Changed in firefox:
status: Confirmed → Invalid
Revision history for this message
In , J-s-peatfield (j-s-peatfield) wrote :

(In reply to comment #36)
> re: comment 28 followup, I don't think so: I'm pretty sure we aren't
> normalizing files at all any more.

Maybe not in mainline but the bug affects all 3.6.x releases.

Some of the bugs marked as duplicates of this one are reports against 3.6.x versions not trunk.

If every bug reported about this gets marked as a duplicate of this one then it just won't get fixed for 3.6.x...

Revision history for this message
In , J-s-peatfield (j-s-peatfield) wrote :

(In reply to comment #37)
> (In reply to comment #36)
> > re: comment 28 followup, I don't think so: I'm pretty sure we aren't
> > normalizing files at all any more.
>
> Maybe not in mainline but the bug affects all 3.6.x releases.

Oops I can't read can I.

Revision history for this message
In , Timeless-bemail (timeless-bemail) wrote :

*** Bug 574458 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Dveditz (dveditz) wrote :

It probably makes the most sense to reopen this bug as a branch bug if we're going to try to land glandium's patch.

Revision history for this message
In , Dveditz (dveditz) wrote :

*** Bug 530793 has been marked as a duplicate of this bug. ***

Revision history for this message
In , Dveditz (dveditz) wrote :

Comment on attachment 431403
Different approach for trunk

The trunk patch is obsolete if I'm reading comment 32 correctly.

Revision history for this message
In , Julian Sikorski (belegdol) wrote :

This problem seems to be gone in Fedora Thunderbird 3.1.1 - I have both lightning and enigmail installed and enabled, and there are no problems launching. Is that expected?

Revision history for this message
In , Mozilla-bigwillystyle42 (mozilla-bigwillystyle42) wrote :

(In reply to comment #43)
> This problem seems to be gone in Fedora Thunderbird 3.1.1 - I have both
> lightning and enigmail installed and enabled, and there are no problems
> launching. Is that expected?

I can't speak for the Fedora package, but the Thunderbird 3.1.1 from Mozilla still breaks because of this with Lightning.

Changed in firefox:
status: Invalid → Confirmed
Revision history for this message
In , Antonin-roussel (antonin-roussel) wrote :

This quickly neutralizes the bug for me (Linux Firefox, Sync Addon, symlinked profile)

$ firefox # runs OK
$ firefox --safe-mode # just exit in the safe-mode options prompt
$ firefox # runs OK

This command line as well
$ firefox --safe-mode && firefox

Revision history for this message
In , Clegnitto (clegnitto) wrote :

Comment on attachment 431372
Possible patch for 1.9.2 branch

a=LegNeato for 1.9.2.9.

Revision history for this message
In , Bugzilla-standard8 (bugzilla-standard8) wrote :

This bug broke xpcshell-tests on Mac on the 1.9.2 branch, see bug 584156.

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

(In reply to comment #47)
> This bug broke xpcshell-tests on Mac on the 1.9.2 branch, see bug 584156.

This doesn't make sense, because the patch doesn't change how registration is done.

Revision history for this message
In , Bugzilla-standard8 (bugzilla-standard8) wrote :

(In reply to comment #48)
> (In reply to comment #47)
> > This bug broke xpcshell-tests on Mac on the 1.9.2 branch, see bug 584156.
>
> This doesn't make sense, because the patch doesn't change how registration is
> done.

Sorry, this could actually be bug 582012 - I missed checking the pushlog and didn't see it was pushed at the same time. I'm now building 1.9.2 and will confirm either way in a bit.

Revision history for this message
In , Bugzilla-standard8 (bugzilla-standard8) wrote :

(In reply to comment #49)
> (In reply to comment #48)
> > (In reply to comment #47)
> > > This bug broke xpcshell-tests on Mac on the 1.9.2 branch, see bug 584156.
> >
> > This doesn't make sense, because the patch doesn't change how registration is
> > done.
>
> Sorry, this could actually be bug 582012 - I missed checking the pushlog and
> didn't see it was pushed at the same time. I'm now building 1.9.2 and will
> confirm either way in a bit.

Yep, local backout is showing that bug 582012 does indeed appear to be the culprit.

Revision history for this message
In , Benjamin Smedberg (Mozilla) [:bs] (benjamin-smedbergs) wrote :

This landed and was backed out for the test failure.

Revision history for this message
In , Clegnitto (clegnitto) wrote :

Comment on attachment 431372
Possible patch for 1.9.2 branch

Removing .9 approval as this missed landing before freeze. Feel free to nominate again, though the bar for approval will be higher.

Revision history for this message
In , J-s-peatfield (j-s-peatfield) wrote :

Was the backout (of this patch) mentioned in comment 51 because the the "xpcshell-tests on Mac" problem which *seems* from the comments here to have been because of a different patch. Ie did this really break something despite what comments 48, 50 seem to imply?

The patch here doesn't seem to check if the Clone() succeeds so I suppose it might cause a problem on some systems assuming that Clone() needs to allocate memory.

Mind you I assume that Normalize() also might need to allocate memory if the resulting string is longer, I don't know if it can/will fail gracefully.

Apart from those the only thing which looks likely (IMHO) is just that it changes the memory layout slightly so maybe exposing a corruption problem somewhere else...

Does anyone have a simple test case showing a failure after applying the patch?

I wonder if changing the patch to call both current->Normalize() and normalized->Normalize() will show the same problem (not that such a patch would fix the problem that this bug was opened for, but it might be a test to see what is actually failing).

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

I don't know if Normalize() on mac can change things regarding case (since the fs is case insensitive), but if the failing test can vary depending on components directory case, that could be the source of the problem.

Revision history for this message
In , EricV (eric-valette) wrote :

May I just remind you that whithout this patch, most linux distribution break as componen are indeed symlinked. So if ou do not add it upstream, mots distribution will ship it meaning that not landing it will be a failure. And BTW this cleraly indicates that the test plan should include symlinked components!

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

So, this is what can be seen on OSX debug builds with the patch applied:

###!!! ASSERTION: This is not supposed to fail!: 'Error', file /builds/slave/tryserver-macosx-debug/build/js/src/xpconnect/src/nsXPConnect.cpp, line 1017
###!!! ASSERTION: Failed to initialize nsScriptSecurityManager: 'NS_SUCCEEDED(rv)', file /builds/slave/tryserver-macosx-debug/build/caps/src/nsScriptSecurityManager.cpp, line 3455

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

and what XPCOM_DEBUG_BREAK=stack-and-abort unveils:
DumpJSStack+0x00003B87 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0004EF7B]
std::vector<unsigned short, std::allocator<unsigned short> >::resize(unsigned long)+0x0000429C [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x000461B2]
DumpJSStack+0x00039233 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x00084627]
std::vector<unsigned short, std::allocator<unsigned short> >::resize(unsigned long)+0x00008046 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x00049F5C]
DumpJSStack+0x0024756A [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0029295E]
DumpJSStack+0x00251079 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0029C46D]
DumpJSStack+0x00251666 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0029CA5A]
DumpJSStack+0x002576DA [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x002A2ACE]
JNIEnv_::ThrowNew(_jclass*, char const*)+0x00063D7A [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x01185924]
NS_GetComponentRegistrar_P+0x00004046 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E67AE]
NS_GetComponentRegistrar_P+0x00005D09 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E8471]
JNIEnv_::ThrowNew(_jclass*, char const*)+0x00056CF9 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011788A3]
JNIEnv_::ThrowNew(_jclass*, char const*)+0x0005720C [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x01178DB6]
DumpJSStack+0x00004E3E [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x00050232]
DumpJSStack+0x00004E98 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0005028C]
DumpJSStack+0x000BCF53 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x00108347]
DumpJSStack+0x000C096C [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0010BD60]
NS_GetComponentRegistrar_P+0x00004C3A [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E73A2]
NS_GetComponentRegistrar_P+0x0000715B [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E98C3]
NS_GetComponentRegistrar_P+0x000072BF [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E9A27]
NS_GetComponentRegistrar_P+0x0000780E [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x011E9F76]
NS_InitXPCOM3_P+0x000008D7 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0118BEA7]
NS_InitXPCOM2_P+0x0000002F [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./XUL +0x0118BF41]
NS_InitXPCOM2+0x0000001F [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./libxpcom.dylib +0x000019DD]
start+0x00001601 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./TestRegistrationOrder +0x00001E31]
start+0x00000E7F [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./TestRegistrationOrder +0x000016AF]
start+0x000000FB [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./TestRegistrationOrder +0x0000092B]
start+0x00000029 [/Volumes/Namoroka/NamorokaDebug.app/Contents/MacOS/./TestRegistrationOrder +0x00000859]

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Created attachment 472256
workaround for mac

So, I haven't found out (yet) what and why exactly, but what happens is that something on mac doesn't like that the components directory isn't normalized on mac. It's most probably related to bug 530188. The simplest "fix" I found is to normalize in nsDirectoryService::GetCurrentProcessDir (interestingly, the unix codepath uses realpath against MOZILLA_FIVE_HOME, so the patch makes it somewhat more close to what the unix codepath does).
This also explains why the test fails in the harness, where it is started as $BUILD_DIR/xpcom/tests/../../dist/bin/TestRegistrationOrder, and not when run by hand with $BUILD_DIR/dist/bin/TestRegistrationOrder. (running ./TestRegistrationOrder naturally fails, too)

Changed in firefox:
importance: Unknown → Medium
Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :

Comment on attachment 472256
workaround for mac

We're too late for .11 but that could be considered for .12. The other patch attached to this bug was landed and led to bug 584156 on mac only, so it was backed out. This patch is an additional workaround for mac, which avoids bug 584156, according to my testing. This code is in a mac only part of the code so it doesn't affect anything but mac, and on mac, it may affect the value returned for the current process directory (depending on what exactly Normalize does on mac, and where Firefox is installed). This /shouldn't/ have an impact.

Revision history for this message
In , J-s-peatfield (j-s-peatfield) wrote :

(In reply to comment #54)
> I don't know if Normalize() on mac can change things regarding case (since the
> fs is case insensitive)
...

Yes the default hfs+ setup on a Mac is case-insensitive but it isn't always the case.

If any code assumes that all Mac fs are case insensitive then it will break for those who choose to turn on the case-sensitive feature of hfs+ or for example where the files are mounted from a server with a protocol which is, such as smb or nfs.

[ not that this should be (hopefully) relevant to the bug... ]

Revision history for this message
In , Clegnitto (clegnitto) wrote :

We're early in the development for .12 so I am willing to get this landed if it lands soon. If there are any issues we'll back it out, likely for good.

Revision history for this message
In , Clegnitto (clegnitto) wrote :

a=LegNeato for 1.9.2.12. Please land only on the mozilla-1.9.2 default branch, *not* the relbranch.

Also, please be sure to land both patches (preferably as one patch).

Revision history for this message
In , Mh+mozilla (mh+mozilla) wrote :
Changed in firefox:
status: Confirmed → Fix Released
Revision history for this message
In , Martin-vogt (martin-vogt) wrote :

Hello,

I had the same problem on SuSE Linux 11.1 with firefox 3.6.8.
After the second start with the add-ons "Firefox Sync",
downthemall or greasemonkey firefox directly terminates.

Here we use amd, not automount and the home directories are accessed
over a link.(The "bug" can be seen in the file xpti.dat.)

The two patches fixed the problems for me.

regards,

Martin

Revision history for this message
In , Vasilis Vasaitis (vvas) wrote :

I built the "default" head of mozilla-1.9.2 yesterday and I can confirm that it fixes the problem for me too. Thanks!

Displaying first 40 and last 40 comments. View all 116 comments or add a comment.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.