Closed Bug 243151 Opened 21 years ago Closed 21 years ago

Bogus assertion: nsThread::kIThreadSelfIndex != 0

Categories

(Core :: XPCOM, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla1.8alpha1

People

(Reporter: darin.moz, Assigned: darin.moz)

Details

Attachments

(1 file)

The assertions here: http://lxr.mozilla.org/mozilla/source/xpcom/threads/nsThread.cpp#343 and here: http://lxr.mozilla.org/mozilla/source/xpcom/threads/nsThread.cpp#343 are completely bogus. PR_NewThreadPrivateIndex may indeed return an index that is 0. in fact, the implementation of PR_NewThreadPrivateIndex confirms this: http://lxr.mozilla.org/mozilla/source/nsprpub/pr/src/threads/prtpd.c#85 http://lxr.mozilla.org/mozilla/source/nsprpub/pr/src/threads/prtpd.c#85 the code in nsThread.cpp is already checking that PR_NewThreadPrivateIndex returns PR_SUCCESS, so i think we should just remove the assertions. if you want to see these assertions get hit, just run this program: int main() { NS_InitXPCOM2(); NS_ShutdownXPCOM(); return 0; }
Attachment #148082 - Flags: review?(timeless)
Comment on attachment 148082 [details] [diff] [review] v1 patch : remove bogus assertions I confirm that these two assertions are incorrect and should be removed. I checked the NSPR Reference and found that we do not document the valid range of NSPR thread private data indices, so one cannot assume that 0 is an invalid NSPR thread private data index.
Comment on attachment 148082 [details] [diff] [review] v1 patch : remove bogus assertions ooh that sounds familiar, thanks. one note: http://lxr.mozilla.org/seamonkey/source/xpcom/threads/nsAutoLock.cpp#157 doesn't check. it makes an assertion in a comment, but it should at least assert in code.
Attachment #148082 - Flags: review?(timeless) → review+
fixed-on-trunk
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.8alpha
Regretfully, this bogus assertion is still in the firefox-1.0.6 -- the latest and greatest release of the browser... Too many source branches?
(In reply to comment #5) > Regretfully, this bogus assertion is still in the firefox-1.0.6 -- the latest > and greatest release of the browser... > > Too many source branches? No, as comment 4 says it is fixed on trunk. Therfore the fix will be in the next major release i.e. Firefox 1.5
I hate to sound negative, bitter, and abrasive, but comment 4 is well over a year old. There have been several releases of Firefox since then -- all of them containing this trivial to fix bug. The fact, that such patches take so long to travel from a branch to a branch, tells me, something is wrong. :-) On a more serious note, one is left to wonder, how many _other_ problems are already fixed on this never seen "trunk" over the past years, while the software that we, the users, deal with remains broken in some respect or the other. Perhaps, Mozilla would be wise to adopt FreeBSD's practice. There too, changes are first committed into the head branch (a.k.a. -current), but the CVS Template contains an "MFC After" field, which the committer is expected to fill out like: MFC After: two weeks (MFC stands for "Merge From Current"). Scripts on the CVS server then see to it, that the committer (and whoever else) are reminded, when this selected "shake down" period elapses, so they can merge the change into the -stable branch(s) of the OS. Back to this particular problem, it may seem trivial (and ignorable) to you, but I'm trying to build a reliably working firefox on FreeBSD/amd64 and being distracted by bogus assertions and easily fixed compiler warnings is impeding my progress quite a bit -- _real_ bugs are much harder to spot...
(In reply to comment #7) > I hate to sound negative, bitter, and abrasive, but comment 4 is well over a > year old. There have been several releases of Firefox since then -- all of them > containing this trivial to fix bug. All of these releases were made from a branch which only contains security updates. > The fact, that such patches take so long to travel from a branch to a branch, > tells me, something is wrong. :-) Only security patches travel from trunk to branch. > On a more serious note, one is left to wonder, how many _other_ problems are > already fixed on this never seen "trunk" FWIW, the Deer Park releases are made from trunk.
> All of these releases were made from a branch which only > contains security updates. Seems like an overly conservative policy, which leads to bugs remaining unfixed and improvements remaining unseen and untested by the wider audience. I think, FreeBSD's approach provides for a better balance between stability and progress. Please, give it more thought. > FWIW, the Deer Park releases are made from trunk. But it is still considered "alpha", is not it?
(In reply to comment #7) > I hate to sound negative, bitter, and abrasive, but comment 4 is well over a > year old. There have been several releases of Firefox since then -- all of them > containing this trivial to fix bug. So what if the comment is a year old? This is the fault of the stupid Firefox developers who branched early [1] and then spent *months* working on branch-only stuff for Firefox 0.9 and 1.0. All Firefox 1.0.x releases are from this branch, and until the next full version finally comes out (as comment 6 says) there is no official, final release of Firefox with it in. Please make sure you know what is going on before making such comments in the future. [1] At 2004-05-15 according to the branch tag, though it seems that they used source from a couple of weeks before that, as it did not have the 2004-05-15 version of nsThread.cpp in.
Mikhail: you may want to raise this issue in a better forum such as a mozilla.org newsgroup that its project management team reads. The mozilla.org project management team has their reasons to be so conservative with maintenance branches. This bug was most likely discovered by code inspection and didn't affect anybody. The assertions are compiled away in release builds. I think this is why it's not necessary to port the fix back to the Firefox 1.0 maintenance branch.
Alright. Is there an easy way to find amd64-specific commits, that went into the main branch, but not into firefox? I've fixed quite a few warnings here locally, but firefox still hangs and crashes on occasion. For example, trying to restart after installing the Forecastfox extension (5th most popular) hangs the process reliably...
(In reply to comment #9) > Seems like an overly conservative policy, which leads to bugs remaining unfixed > and improvements remaining unseen and untested by the wider audience. that that up with drivers@mozilla.org, I guess. > > FWIW, the Deer Park releases are made from trunk. > > But it is still considered "alpha", is not it? Yes, indeed. (In reply to comment #10) > [1] At 2004-05-15 according to the branch tag, though it seems that they used > source from a couple of weeks before that, as it did not have the 2004-05-15 > version of nsThread.cpp in. it branched off the 1.7 branch afaik (In reply to comment #12) > Alright. Is there an easy way to find amd64-specific commits, that went into > the main branch, but not into firefox? The patch did go into firefox, just not into the 1.0.x versions. I guess your best bet is to query for resolved bugs containing amd64 in the summary or something like that.
(and this patch, of course, wasn't an AMD64-specific patch)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: