Closed Bug 40471 Opened 24 years ago Closed 24 years ago

Performance xpi unexpectedly returns -229 and installation ends

Categories

(Core Graveyard :: Installer: XPInstall Engine, defect, P3)

defect

Tracking

(Not tracked)

VERIFIED INVALID

People

(Reporter: jimmykenlee, Assigned: dveditz)

Details

Build: 2000-05-24-09-M16(WIN), 2000-05-24-08-M16(LINUX), Mac is blocked by Bug 
38989

1. From http://jimbob/trigger3.html, click into Trigger URL field
2. Make sure http://jimbob/jars/p_browser2.xpi appears
3. Click Trigger button
4. Click Ok button from confirmation dialog

RESULT:
Download and installation happen for awhile.  The installation is incomplete.  
The install.log reports -229.

EXPECTED RESULT:
Installation completes with performance times showing from install.log.  This 
used to work on Macintosh before it got blocked by Bug 38989.

INSTALL.LOG:
-------------------------------------------------------------------------------
http://jimbob/jars/p_browser2.xpi  --  05/24/2000 13:11:59
-------------------------------------------------------------------------------

     Netscape Seamonkey
     ------------------

     ** [47519] post initInstall
     ** initInstall: 0
     ** communicatorFolder: C:\Program Files\Netscape\Netscape 6\
     ** [47585] post addDirectory: 0
     ** addDirectory() returned: 0
     ** dirCreate() returned: 0

     Install **FAILED** with error -229

     Install **FAILED** with error -229
     Finished Installation  05/24/2000 13:13:06

INSTALL SCRIPT:
function logNow(msg)
{
  var now = new Date();

  secs = now.getSeconds();
  secs += (60 * now.getMinutes());
  secs += (60 * 60 * now.getHours());

  logComment("[" + secs + "] " + msg);

  return secs;
}

var err = initInstall("Netscape Seamonkey", "Seamonkey", "5.0.0.2000030113");
startTime = logNow("post initInstall");
logComment("initInstall: " + err);

var communicatorFolder = getFolder("Program");
logComment("communicatorFolder: " + communicatorFolder);

var subFolder = "Netscape Folder";
err = addDirectory("Program",
                   "5.0.0.2000030113",
                   "viewer",           // jar source folder
                   communicatorFolder, // target folder
                   subFolder,          // target subdir 
                   true );             // force flag

addTime = logNow("post addDirectory: " + err);
logComment("addDirectory() returned: " + err);

// create the plugins folder next to mozilla 
var pluginsParentFolder = getFolder(communicatorFolder, subFolder);
var pluginsFolder = getFolder(pluginsParentFolder, "Plugins");
var ignoreErr = File.dirCreate(pluginsFolder);
logComment("dirCreate() returned: " + ignoreErr);

// make an alias to the browser on the desktop 
var desktopFolder = getFolder("Mac Desktop");
var appFolder = getFolder("Communicator", subFolder);
ignoreErr = File.macAlias(appFolder,     "Netscape",   // source
                         desktopFolder, "Netscape");  // target
logComment("File.macAlias() returned: " + ignoreErr);

if (err==SUCCESS || err==REBOOT_NEEDED)
{
	err = performInstall();
        finalTime = logNow("post performInstall");
	logComment("performInstall() returned: " + err);
}
else
{
	cancelInstall();
	logComment("cancelInstall() due to error: " + err);
}

logComment("****************************************************");
logComment("Total time: "    + (finalTime - startTime) + " secs");
logComment("addDirectory time: "  + (addTime   - startTime) + " secs");
logComment("performInstall time: " + (finalTime - addTime)   + " secs");
Nominating for nsbeta2.  This fix will allow QA to resume measuring the 
performance of the XPInstall engine.  QA has observed some degradation and has 
yet to be able to take one measurement for all platforms since the change over 
to nsIFile post Beta 1.
Keywords: nsbeta2
Looks like you're trying to create a mac alias on a windows machine -- that's 
not going to work! what did it do before?
Status: NEW → ASSIGNED
The macAlias would not choke on Linux and Windows previously.  It was ignored.  
I think it is suppose to behave this way from a previous conversation with 
Samir unless I'm getting it confused with something else.

Ccing Samir to get his opinion.  Samir: Do we expect Linux and Windows to 
ignore macAlias, or should an error like -229 be returned?
It should ignore it.  Based on the code the only other error you may get back 
should be UNEXPECTED_ERROR (and if that's the case you can change your 
script to ignore the error).  Please test this with an isolated File.macAlias() 
script on Win32 and Linux to narrow down the problem.  I'm open to 
File.macAlias() behavior going either way: UNEXPECTED_ERROR or returning SUCCESS 
on platforms that don't support it.
The test case at http://jimbob/jars/a_filemacalias.xpi is also returning -229.  
It appears that we have issues with running platform specific APIs on other 
platforms.  I will write a separate bug about this matter.

As for this specific case, commenting out the macAlias and  getFolder("Mac 
Desktop") allows for Linux and Windows to run this modified script.  This is 
acceptable because the impact of commenting out these lines is negligible to the 
overall performance measurements.

Therefore, I am removing keyword nsbeta2, and recommending that this bug be 
resolved as INVALID.
Keywords: nsbeta2
OK, so one last case to isolate would be to test fileMacAlias without 
getFolder("Mac Desktop") in the same script.  We have seen that isolated 
getFolder("Mac Desktop") containing scripts return -229.  
Also, if getFolder("Mac Desktop") is the isolated problem we should leave this 
bug around and change the summary to reflect this problem.  Quite possibly 
introduced by the nsIFile landing.
I have verified that the culprit is not macAlias, but getFolder() using a Mac 
target folder.  The "real" problem should now be tracked from Bug 40518.
So can we resolve this as invalid?
Yes, I still say mark this INVALID.  This is no longer a performance xpi issue.
Dan, I'm taking the liberty of marking it invalid.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → INVALID
But this test is still broken, right? Unless you've fixed the performance test 
maybe it should be open but blocked on the other bug. Hm, but then it would 
sorta be a dupe.

In any case the platform-specific getFolders() are specified to return null on 
non-matching platforms, they definitely should NOT abort the script.
Jimmy has worked around this by removing the calls to getFolder("Mac Desktop") 
and fileMacAlias().  So the test is revived although not identical to past runs.  
However, we estimated the performance difference from these two otherwise noops 
should be negligible enough that rough performance values are still meaningful.

Other bugs are open to track other getFolder(<Mac specific>) targets, I believe.
Yeah...what they said.  Marking Verified.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.