Closed Bug 421861 Opened 16 years ago Closed 16 years ago

Mozilla build of NSS doesn't rebuild for dependencies (on pkixt.h at least)

Categories

(Firefox Build System :: General, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.9beta5

People

(Reporter: dbaron, Assigned: dbaron)

References

()

Details

Attachments

(1 file)

In my self-built depend build, I crash when loading any site with an EV cert (such as https://signin.ebay.com/ ), due to a fatal NSS assertion:

(gdb) bt 12
#0  0x00110402 in __kernel_vsyscall ()
#1  0x00944e46 in nanosleep () from /lib/libc.so.6
#2  0x00944c6f in __sleep (seconds=0) at ../sysdeps/unix/sysv/linux/sleep.c:138
#3  0x0012c938 in ah_crap_handler (signum=6) at nsSigHandlers.cpp:149
#4  0x00143575 in nsProfileLock::FatalSignalHandler (signo=6)
    at nsProfileLock.cpp:216
#5  <signal handler called>
#6  0x00110402 in __kernel_vsyscall ()
#7  0x008db690 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#8  0x008dcf91 in abort () at abort.c:88
#9  0x006be0c8 in PR_Assert (s=0x16af4e0 "size == ctEntry->typeObjectSize", 
    file=0x16af38d "pkix_pl_object.c", ln=589)
    at /builds/trunk/mozilla/nsprpub/pr/src/io/prlog.c:577
#10 0x01641776 in PKIX_PL_Object_Alloc (objType=PKIX_FORWARDBUILDERSTATE_TYPE, 
    size=216, pObject=0xbfe2350c, plContext=0x93e4468) at pkix_pl_object.c:589
#11 0x015c6621 in pkix_ForwardBuilderState_Create (traversedCACerts=0, 
    numFanout=0, numDepth=0, dsaParamsNeeded=0, revCheckDelayed=0, 
    canBeCached=1, validityDate=0x0, prevCert=0x93e9cac, 
    traversedSubjNames=0x93e5a4c, trustChain=0x93f667c, parentState=0x0, 
    pState=0xbfe235ac, plContext=0x93e4468) at pkix_build.c:215
(More stack frames follow...)
(gdb) f 10
#10 0x01641776 in PKIX_PL_Object_Alloc (objType=PKIX_FORWARDBUILDERSTATE_TYPE, 
    size=216, pObject=0xbfe2350c, plContext=0x93e4468) at pkix_pl_object.c:589
589             PORT_Assert(size == ctEntry->typeObjectSize);
Current language:  auto; currently c
(gdb) p *ctEntry
$1 = {description = 0x16aefe0 "OcspCertID", objCounter = 0, 
  typeObjectSize = 8, destructor = 0x163a088 <pkix_pl_OcspCertID_Destroy>, 
  equalsFunction = 0, hashcodeFunction = 0, toStringFunction = 0, 
  comparator = 0, duplicateFunction = 0x15d91ad <pkix_duplicateImmutable>}
(gdb) q

This crash is occurring because of a build dependency problem.  In particular, the enum values that are defined in:

-rwxrwxr-x 1 dbaron dbaron 17559 2008-02-25 10:29:35 security/nss/lib/libpkix/include/pkixt.h*

did not cause some of the object files using those enum values to be updated:

-rw-rw-r-- 1 dbaron dbaron  69876 2008-02-25 11:20:31 nss/pkixpki/pkix_pl_ocspcertid.o
-rw-rw-r-- 1 dbaron dbaron 170540 2008-01-18 20:31:11 nss/pkixtop/pkix_build.o

Since pkix_build.o hasn't been rebuilt, it's using the wrong ID and causing my build to crash.


I'm not sure if this is a bug in the Mozilla-NSS build system glue or in the NSS build system, so filing on Core initial although I don't know whether it's a Core::Build Config bug or an NSS::Build bug.
my build failed because $objdir/dist/public/nss wasn't clobbered (i had tried killing $objdir/nss and $objdir/dist/private/nss but my build continued to fail until i clobbered private/nss...)
(In reply to comment #1)
>my build failed because $objdir/dist/public/nss wasn't clobbered (i had tried
>killing $objdir/nss and $objdir/dist/private/nss but my build continued to fail
>until i clobbered private/nss...)
(I assume you mean public/nss) That's bug 419340.
yeah, thanks, sorry
Ah, so in my case, I think this is because of how I'm mirroring the trunk into my own hg repository.  The code in client.mk simply touches /security/manager/.nss.checkout ; it doesn't change its contents.  If it put something in it (e.g., the output of date), it would reflect into other version control systems better.
This makes .nss.checkout have the date in it so that it reflects into other VCSes.
Attachment #310071 - Flags: review?(benjamin)
Attachment #310071 - Flags: review?(benjamin) → review+
Comment on attachment 310071 [details] [diff] [review]
make .nss.checkout have the date in it

This would help me and other people who mirror cvs into hg or git not have busted or crashy builds every time we take an NSS update.
Attachment #310071 - Flags: approval1.9b5?
Comment on attachment 310071 [details] [diff] [review]
make .nss.checkout have the date in it

a+ schrep
Attachment #310071 - Flags: approval1.9b5? → approval1.9b5+
Comment on attachment 310071 [details] [diff] [review]
make .nss.checkout have the date in it


>-		touch $(TOPSRCDIR)/security/manager/.nss.checkout; \
>+		echo `date` > $(TOPSRCDIR)/security/manager/.nss.checkout; \
why not just ?
                date > $(TOPSRCDIR)/security/manager/.nss.checkout; \
Assignee: nobody → dbaron
Checked in to trunk (with Nelson's suggestion; not sure why I didn't do that in the first place).
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.9beta5
Though one potentially important difference is that echo `date` suppresses errors if the date command isn't found, whereas just date will fail.  So maybe I should go back to what I had.
I went back to the original patch.
Product: Core → Firefox Build System
You need to log in before you can comment on or make changes to this bug.