Closed
Bug 77443
Opened 24 years ago
Closed 22 years ago
compareVersion returns false info when file removed on Mac only
Categories
(Core Graveyard :: Installer: XPInstall Engine, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla1.0
People
(Reporter: jimmykenlee, Assigned: dprice)
References
Details
(Keywords: platform-parity, Whiteboard: [ADT2 rtm])
Attachments
(3 files)
(deleted),
text/plain
|
Details | |
(deleted),
text/plain
|
Details | |
(deleted),
patch
|
dveditz
:
superreview+
jud
:
approval+
|
Details | Diff | Splinter Review |
Build: 2001-04-24-09-trunk(MAC)
1. From http://jimbob/trigger3.html, enter in Trigger URL
"f_compareversion_addfile.xpi" and click Trigger button
2. Click OK button from Items to Install dialog to add a file
3. From http://jimbob/trigger3.html, enter in Trigger URL
"f_compareversion.xpi" and click Trigger button
4. Click OK button from Items to Install dialog to compareversion
5. The install.log should show the expected results
6. Remove "f_compareversion.txt" from the "Program" folder
7. From http://jimbob/trigger3.html, enter in Trigger URL
"f_compareversion.xpi" and click Trigger button
8. Click OK button from Items to Install dialog to compareversion
RESULT:
The install.log shows the same results from step #5 above. compareVersion is
returning values as if the installed file is still present in the installed
location.
EXPECTED RESULT:
Compareversion should fail (return -4) because the file is deleted. Linux and
Windows behave this way.
EXAMPLE of install.log from Windows where the last installation occurs with
f_compareversion.txt deleted:
-------------------------------------------------------------------------------
http://jimbob/jars/f_compareversion_addfile.xpi -- 04/24/2001 12:26:56
-------------------------------------------------------------------------------
Functional: f_compareversion_addfile
------------------------------------
** addFile returns = 0
[1/1] Installing: C:\Program Files\Netscape\Netscape
6\f_compareversion.txt
Install completed successfully
Finished Installation 04/24/2001 12:26:57
-------------------------------------------------------------------------------
http://jimbob/jars/f_compareversion.xpi -- 04/24/2001 12:27:15
-------------------------------------------------------------------------------
** **** Need to install f_compareversion_addfile.xpi before running this
test. ****
Functional: f_compareversion
----------------------------
** CompVers should return -4 = -4
** CompVers should return -3 = -3
** CompVers should return -2 = -2
** CompVers should return -1 = -1
** CompVers should return 0 = 0
** CompVers should return 1 = 1
** CompVers should return 2 = 2
** CompVers should return 3 = 3
** CompVers should return 4 = 4
Install completed successfully
Finished Installation 04/24/2001 12:27:15
-------------------------------------------------------------------------------
http://jimbob/jars/f_compareversion.xpi -- 04/24/2001 12:27:34
-------------------------------------------------------------------------------
** **** Need to install f_compareversion_addfile.xpi before running this
test. ****
Functional: f_compareversion
----------------------------
** CompVers should return -4 = -4
** CompVers should return -3 = -4
** CompVers should return -2 = -4
** CompVers should return -1 = -4
** CompVers should return 0 = -4
** CompVers should return 1 = -4
** CompVers should return 2 = -4
** CompVers should return 3 = -4
** CompVers should return 4 = -4
Install completed successfully
Finished Installation 04/24/2001 12:27:34
EXAMPLE of install.log from Mac where the last installation occurs with
f_compareversion.txt deleted:
-------------------------------------------------------------------------------
http://jimbob/jars/f_compareversion_addfile.xpi -- 04/24/2001 12:26:56
-------------------------------------------------------------------------------
Functional: f_compareversion_addfile
------------------------------------
** addFile returns = 0
[1/1] Installing: C:\Program Files\Netscape\Netscape
6\f_compareversion.txt
Install completed successfully
Finished Installation 04/24/2001 12:26:57
-------------------------------------------------------------------------------
http://jimbob/jars/f_compareversion.xpi -- 04/24/2001 12:27:15
-------------------------------------------------------------------------------
** **** Need to install f_compareversion_addfile.xpi before running this
test. ****
Functional: f_compareversion
----------------------------
** CompVers should return -4 = -4
** CompVers should return -3 = -3
** CompVers should return -2 = -2
** CompVers should return -1 = -1
** CompVers should return 0 = 0
** CompVers should return 1 = 1
** CompVers should return 2 = 2
** CompVers should return 3 = 3
** CompVers should return 4 = 4
Install completed successfully
Finished Installation 04/24/2001 12:27:15
-------------------------------------------------------------------------------
http://jimbob/Jimmylee/jars/f_compareversion.xpi -- 04/24/2001 12:27:34
-------------------------------------------------------------------------------
** **** Need to install f_compareversion_addfile.xpi before running this
test. ****
Functional: f_compareversion
----------------------------
** CompVers should return -4 = -4
** CompVers should return -3 = -3
** CompVers should return -2 = -2
** CompVers should return -1 = -1
** CompVers should return 0 = 0
** CompVers should return 1 = 1
** CompVers should return 2 = 2
** CompVers should return 3 = 3
** CompVers should return 4 = 4
Install completed successfully
Finished Installation 04/24/2001 12:27:34
Nominating for Beta. I can use Dan's opinion and/or others as to how important
this bug is for everybody. I think the risk is low because I do not envision
files being deleted in a non-controlled manner. However, there may be other
scenarios that I may not have considered. So I'm really nominating this bug to
solicit insight as to whether this should be nsbeta1+ or nsbeta1-. Thanks!
Comment 6•23 years ago
|
||
Actually we *will* want this one if Samir is to implement Update Notification
for the Mac.
Comment 7•23 years ago
|
||
ADT2 per ADT/XPInstall triage.
Samir - Can you add the update notification bug as a dependency.
Whiteboard: [ADT2]
Assignee | ||
Comment 9•23 years ago
|
||
InstallTrigger::CompareVersion is not doing the right thing. This code is
checking the return value of VR_ValidateComponent. But it is only comparing
against REGERR_NOFILE. On the mac we're getting REGERR_NOPATH. The function
returns REGERR_OK on success and REGERR_NOFILE, REGERR_NOPATH, and
REGERR_BADCHECK on error. I'm inclined to go with checking for REGERR_OK. But
the REGERR_BADCHECK is making me second guess. If the CRC check fails, do we
want CompareVersion to continue?
Assignee | ||
Comment 10•23 years ago
|
||
It looks like I was chasing after the symptom here. REGERR_NOPATH should not
cause failure. It simply indicates that entry in the registry doesn't refer to
a file. The problem we're seeing in this bug is when the file was added, no
path was saved in the registry. So CompareVersion is doing the right thing, but
nsInstallFile::Complete or nsInstall::FinalizeInstall are doing the wrong thing.
Assignee | ||
Comment 11•23 years ago
|
||
This is maddening. When the file exists, VR_ValidateComponent is able to get
the path out of the registry and stat the file. When the file does not exist,
VR_ValidateComponent is not able to get the path out of the registry and it
returns REGERR_NOPATH. It is like some evil gremlin is pulling something out of
the registry when we delete the file.
Comment 12•23 years ago
|
||
When a file doesn't exist the Mac cannot resolve an alias, but when I look
through VR_GetPath and vr_GetPathname it looks like that would return a
REGERR_NOFILE -- the same thing VR_Validate should return if we got a real path
but the later stat() failed.
Oh, I see the problem. That code path only applies if the filetype is
REGTYPE_ENTRY_BYTES. If it's REGTYPE_ENTRY_FILE it uses the newer stuff built-in
to NR_RegGetEntry(). This *should* be a copy of what the _BYTES stuff did, but
there's one crucial difference. Instead of the correct REGERR_NOFILE it returns
REGERR_NOFIND -- the worst possible choice because VR_Validate specifically
looks for that one. Looking at blame it's my fault. Argh! Don't know what I was
thinking, but next time I won't name two errors so much alike.
So the fix looks like changing REGERR_NOFIND to REGERR_NOFILE in NR_RegGetEntry
in reg.c. Add a comment that this must match nr_GetPathname() in VerReg.c
Assignee | ||
Comment 13•22 years ago
|
||
That's the point in the right direction. Thanks Dan
Comment 14•22 years ago
|
||
Comment on attachment 85385 [details] [diff] [review]
patch
r=ssu once you've made the appropriate tests (before and after the patch)
Comment 15•22 years ago
|
||
Comment on attachment 85385 [details] [diff] [review]
patch
diff -u next time, please.
sr=dveditz
Attachment #85385 -
Flags: superreview+
Assignee | ||
Comment 16•22 years ago
|
||
on the trunk
Comment 17•22 years ago
|
||
Have we added update notification on the Mac, and if so is this still required?
Comment 18•22 years ago
|
||
update notification is cross platform, and this two-character fix of my bonehead
mistake is safe enough in any case.
Comment 19•22 years ago
|
||
please checkin to the 1.0.1 branch. once there, remove the "mozilla1.0.1"
keyword and add the "fixed1.0.1" keyword.
Keywords: mozilla1.0.1 → mozilla1.0.1+
Updated•22 years ago
|
Attachment #85385 -
Flags: approval+
Comment 20•22 years ago
|
||
adt1.0.1 (on ADT's behalf) approval for checkin to the 1.0 branch. please
checkin to the branch asap, then remove the add the "fixed1.0.1" keyword.
Reporter | ||
Comment 21•22 years ago
|
||
Build: 2002-06-04-08-trunk(MAC)
Works like a charm now! Marking Verified for TRUNK. Compareversion now
correctly returns -5. Will check BRANCH tomorrow.
Status: RESOLVED → VERIFIED
Reporter | ||
Comment 22•22 years ago
|
||
Build: 2002-06-05-05-1.0.0(MAC)
Fix has not yet been checked into the 1.0.1BRANCH according to
http://bonsai.mozilla.org/. And my test does indeed fail. Then again, there is
no fixed1.0.1 keyword. Help David :-)
Assignee | ||
Updated•22 years ago
|
Keywords: mozilla1.0.1+ → fixed1.0.1
Reporter | ||
Comment 23•22 years ago
|
||
Build: 2002-06-10-05-1.0.0(MAC)
Landed on the BRANCH. Behaves as expected now. Adding keyword verified1.0.1.
Keywords: fixed1.0.1 → verified1.0.1
Updated•9 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•