Closed Bug 130095 Opened 22 years ago Closed 22 years ago

Crash in Linux installer for static builds

Categories

(SeaMonkey :: Installer, defect)

x86
Linux
defect
Not set
critical

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.0

People

(Reporter: slogan, Assigned: alecf)

References

Details

(Keywords: crash)

Attachments

(1 file)

 
Keywords: nsbeta1+
   aCount=6, aIgnoreCase=1) at bufferRoutines.h:738
#1  0x405cdd54 in nsStrPrivate::StrCompare2To1 (aDest=@0xbfffc154,
    aSource=@0xbfffbdb0, aCount=-1, aIgnoreCase=1) at nsStr.cpp:1043
#2  0x405d2634 in nsString::CompareWithConversion (this=0xbfffc150,
    aCString=0x4079c8e0 "Plugins", aIgnoreCase=1, aCount=-1)
    at nsString2.cpp:1059
#3  0x405d27b9 in nsString::EqualsWithConversion (this=0xbfffc150,
    aString=0x4079c8e0 "Plugins", aIgnoreCase=1, aCount=-1)
    at nsString2.cpp:1104
#4  0x405d2788 in nsString::EqualsIgnoreCase (this=0xbfffc150,
    aString=0x4079c8e0 "Plugins", aLength=-1) at nsString2.cpp:1092
#5  0x406e4547 in nsInstallFolder::MapNameToEnum (this=0x81488f0,
    name=@0xbfffc150) at nsInstallFolder.cpp:603
#6  0x406e3269 in nsInstallFolder::SetDirectoryPath (this=0x81488f0,
    aFolderID=@0xbfffc150, aRelativePath=@0xbfffc000)
    at nsInstallFolder.cpp:172
#7  0x406e2f75 in nsInstallFolder::Init (this=0x81488f0,
    aFolderID=@0xbfffc150, aRelativePath=@0xbfffc000)
    at nsInstallFolder.cpp:108
#8  0x406dc199 in nsInstall::GetFolder (this=0x81314a8,
    targetFolder=@0xbfffc150, aSubdirectory=@0xbfffc000, aNewFolder=0xbfffc0bc)
    at nsInstall.cpp:1020
#9  0x406dc227 in nsInstall::GetFolder (this=0x81314a8,
    targetFolder=@0xbfffc150, aNewFolder=0xbfffc0bc) at nsInstall.cpp:1035
#10 0x406e7245 in InstallGetFolder (cx=0x8127c70, obj=0x8129350, argc=1,
    argv=0x814de60, rval=0xbfffc300) at nsJSInstall.cpp:1043
#11 0x4073ab04 in js_Invoke (cx=0x8127c70, argc=1, flags=0) at jsinterp.c:788
#12 0x40748ab8 in js_Interpret (cx=0x8127c70, result=0xbfffc99c)
    at jsinterp.c:2745
#13 0x4073b2a2 in js_Execute (cx=0x8127c70, chain=0x8129350, script=0x814dc68,
    down=0x0, special=0, result=0xbfffc99c) at jsinterp.c:968
#14 0x4070d2c8 in JS_EvaluateUCScriptForPrincipals (cx=0x8127c70,
    obj=0x8129350, principals=0x0, chars=0x81464c8, length=3588, filename=0x0,
    lineno=0, rval=0xbfffc99c) at jsapi.c:3339
#15 0x4070d26e in JS_EvaluateUCScript (cx=0x8127c70, obj=0x8129350,
    chars=0x81464c8, length=3588, filename=0x0, lineno=0, rval=0xbfffc99c)
    at jsapi.c:3321
#16 0x4070d1bd in JS_EvaluateScript (cx=0x8127c70, obj=0x8129350,
    bytes=0x81236f8 "// this function verifies disk space in kilobytes\nfunction
verifyDiskSpace(dirPath, spaceRequired)\n{\n  var spaceAvailable;\n\n  // Get
the available disk space on the given path\n  spaceAvailable = fileG"...,
    length=3588, filename=0x0, lineno=0, rval=0xbfffc99c) at jsapi.c:3288
#17 0x406f1125 in RunInstallOnThread (data=0x810a078)
    at nsSoftwareUpdateRun.cpp:434
#18 0x406f0b6b in RunInstall (installInfo=0x810a078)
    at nsSoftwareUpdateRun.cpp:320
  if (aIgnoreCase && NS_FAILED(NS_InitCaseConversion()))
      aIgnoreCase=PR_FALSE;
 
  if (aStr1 && aStr2) {
    if (aCount != 0) {
      do {
        PRUnichar c1 = *s1++;
        PRUnichar c2 = kIsoLatin1ToUCS2_2[*(const unsigned char*)s2++];

        if (c1 != c2) {
          if (aIgnoreCase) {

            // case insensitive comparison
            gCaseConv->ToLower(c1, &c1);  <---- gCaseConv is NULL in gdb
            gCaseConv->ToLower(c2, &c2);
            if (c1 == c2) continue;
          }
Status: NEW → ASSIGNED
Target Milestone: --- → mozilla1.0
The crash implies to me that we are not packaging up unicharutils in a way that
is necessary for the static install to complete. 
Blocks: 128507
QA Contact: bugzilla → ktrina
Severity: normal → critical
Keywords: crash
I was surprised to see that we don't link xpcom against unicharutils by default.
 I know that alecf is working to break the compile time dependency but I thought
that we still need it for strings.  Or are we making the consumers of xpcom add
MOZ_UNICHARUTIL_LIBS to their link lines?  
I find this crash very strange, because if NS_InitCaseConversion fails, then
aIgnoreCase should be set to PR_FALSE which means gCaseConv shouldn't be failing.

That said, we should not be packaging unicharutils with the installer. Instead,
xpinstall should do an ascii conversion so we aren't comparing 2to1, but instead
1to1, which wont require unicharutils.

Patch forthcoming.
(I've fixed the indentation of those lines in my tree)
Tthe "lossy" part scares me a bit. While this works for me in a en-US locale,
are we potentially going to cause problems in some other locale?
Comment on attachment 73582 [details] [diff] [review]
use ASCII name rather than unicode

The "directory" table we're comparing against here is a set of English
keywords, there is no danger of data loss as indicated by the comment.

sr=dveditz
Attachment #73582 - Flags: superreview+
what dveditz said. someone want to review? syd?
Comment on attachment 73582 [details] [diff] [review]
use ASCII name rather than unicode

r=cathleen 
i have an up-to-date static build and installer works.	thanks!!!
Attachment #73582 - Flags: review+
reassinging to myself, I just sent out a request to drivers.
Assignee: syd → alecf
Status: ASSIGNED → NEW
Comment on attachment 73582 [details] [diff] [review]
use ASCII name rather than unicode

a=asa (on behalf of drivers) for checkin to the 1.0 trunk
Attachment #73582 - Flags: approval+
fix is in
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
Verified code fix
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: