Closed Bug 173597 Opened 23 years ago Closed 23 years ago

Running GREUninstall from C:\winnt corrupts installation

Categories

(Core Graveyard :: Installer: GRE, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: carosendahl, Assigned: curt)

References

Details

(Keywords: topembed+)

Attachments

(1 file)

20021009 Build: Since WINNT is usually on all system paths, running GREUninstall from the command line (in any directory) will call the version residing in the WINNT directory. If the GRE is installed by any other apps other than GREUser, running GREUninstall in this manner does not delete the Applist entries in the registry or the binaries (as should be the case). However, the contents of the GRE\<version>\uninstall directory are deleted. This makes any subsequent calls fail with the error that the uninstall log can not be found. Example: 1. Install GRE using /app "foo" /app_path "x.txt" params where x.txt exists 2. Open a dos prompt. Type greuninstall and hit return 3. Notice that contents of the uninstall directory in the GRE directory are now missing.
Keywords: topembed
Keywords: topembedtopembed+
Attached patch Patch 1Splinter Review
I could not reproduce quite the same behavior, but I did determine that we were not handling the absence of a User Agent (ie. /ua parameter) correctly. For shared installs, the User Agent must be a requirement because shared installs don't have the concept of a CurrentVersion to leverage. So, I added the "Shared Install=" keyword to uninstall.ini. Also no-op'ed the AppList cleanup and set RemoveFiles=FALSE if a shared install does not get a User Agent on the command-line. While I was at it I simplified the code a bit in ProcessAppItem() since I noticed that the calling function already knows where the AppList was so ProcessAppItem() doesn't need to figure that out a second time. In the future we need to do a bit more error handling. I added a comment to bug #171269 so this gets picked up when we do other improvements to the error handling. Also opened a new bug #175329 to add a dialog when the uninstaller is launch without silent mode turned on (which isn't the norm, so it can be postponed until we get the core functionality nailed down better).
Comment on attachment 103346 [details] [diff] [review] Patch 1 looks good, r=jbetak My apologies for the delay - I've had some trouble following this ;-) The only nit I'd have is the if condition where ugUninstall.bUninstallFiles is being set. I don't feel very strongly about it though. ugUninstall.bUninstallFiles = CleanupAppList() == 0 && ugUninstall.szUserAgent[0] != '\0';
Attachment #103346 - Flags: review+
I have merged this patch into the patch for bug #173893, which turned into a clean up of the general logic, including the logic this bug is trying to resolve. So, I'll fix your nit in the mega-patch attached to that bug.
I have merged this patch into the patch for bug #173893, which turned into a clean up of the general logic, including the logic this bug is trying to resolve. So, I'll fix your nit in the mega-patch attached to that bug.
Depends on: 175422
Checked in last night with patch for 173893.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Verified - all seems well in the 20021025 build
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: