cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
weelyn
Level 5

Multiple installs OK, but uninstall doesn't uninstall

I have a weird phenomenon. I install a product several times, in different directories, it works well. The "product registry", /var/.com.zerog.registry.xml, is correctly updated. (I work on Unix, I'm going to try on Windows later.)

Now when I want to uninstall, it looks it's working (the Uninstaller says "Uninstall complete"...), but in fact it does almost nothing: the only files removed are the Uninstaller files, and no other files are removed, no other action takes place (in particular the Uninstaller should stop a certain program, but once the uninstall is complete the program is still running).

I've managed to capture with some Java code the stdout/stderr of the Uninstaller, but it's not very interesting:

RepositoryManager: repository successfully written to stable storage
RepositoryManager: repository successfully written to stable storage
SHUTDOWN REQUESTED
(X) commiting registry

REGISTRY ALREADY STORED!

(X) shutting down service manager
(X) cleaning up temporary directories
next deferred action
Paths: [Ljava.lang.String;@1d9e279
cleanUp()
calling cleanUpUNIX()



If I remove all the installs, the last one is properly uninstalled. But all the others are not uninstalled. It looks like the Uninstaller is confused by those multiple installs.

The strange thing is that I was sure it was working, because I tested this more than a month ago. Maybe I wasn't careful in my tests. Or maybe there's a real issue.

Note that if I remove the /var/.com.zerog.registry.xml, then install a new instance of the product, the Uninstaller works, which makes sense.

Has anyone encountered such a problem? Do you know about specification precautions to take when installing a product multiple times? Maybe some toggle to click on in the InstallAnywhere wizard...?

Thanks a lot for any help or idea!

EDIT: I tested on Windows, and it works correctly, so it's Unix specific (or rather Linux specific, I didn't try on other Unix brands). Maybe it's something that I do, especially in my Java code, only on Unix... Very hard to debug though.
Labels (1)
0 Kudos
(14) Replies
pv7721
Level 20

It is a known old issue that when you install and uninstall at the same time or like in your case you have multiple installs in several places the ZeroG registry might become corrupted, thus confusing the Uninstaller(s). I'm afraid this is the only workaround, to delete the global registry in order to make the Uninstallers work again.
0 Kudos
weelyn
Level 5

Thank you very much for your answer.

The thing which is surprising me, is that it happens everytime on Linux, and never on Windows. That's weird.

But if there is no solution... I guess we're just going to remove the "product registry" file at the end of each install. This doesn't prevent the product to be uninstalled, so it's ok.
0 Kudos
pv7721
Level 20

weelyn wrote:
Thank you very much for your answer.

The thing which is surprising me, is that it happens everytime on Linux, and never on Windows. That's weird.

But if there is no solution... I guess we're just going to remove the "product registry" file at the end of each install. This doesn't prevent the product to be uninstalled, so it's ok.


Doing this might affect other IA based setups that might rely more on the Global registry.
0 Kudos
weelyn
Level 5

My colleague found the bug yesterday. Damn, he's good.

The problem was the key file for the component. For each component, you have a UUID and other informations, in particular a "key file". I'm not sure why InstallAnywhere needs it (maybe to see if the component is already uninstalled?), so we weren't paying much attention to that parameter.

This key file was the shortcut to the uninstaller; but that shortcut only exists on Windows. On Linux we don't have shortcuts, so the key file was non-existent.

The result was that InstallAnywhere thought we were installing only once (it thought the key file was unique, rather than specific to each install, or something like that). So, when uninstalling, it wasn't removing anything, because it knew other installations needed the component.

The last uninstall worked because it was the last install which needed the component, so this time it knew it had to actually remove it, no other things were dependant upon the component.

To work around this, we changed the key file to point to a dummy file we create in our install, that file exists on both Windows and Linux, it's not dependant on the platform anymore. We could have used a real file, but as it is it's simpler for us to make a dummy file.

Maybe this could help other people 🙂
At least it provides some insight about how IA works.
0 Kudos
darrenma
Level 3

I'm having a similar problem with uninstall not removing several files when multiple installations are present. However, for me, the problem occurs on Windows.

The problem seems somehow related to the Windows shortcuts because the shortcuts and the components that use those shortcuts are the files which are not be removed by the uninstall.

Has anyone encountered this problem before or have any suggestions about the cause?

For Windows, is the IA registry settings in the file ".com.zerog.registry.xml" located under the product uninstall directory? If so, then it seems like the other installations should not interfere with each other since the registry file for each install is in a separate directory. Or is there a global IA registry somewhere else on the machine?

Any help would be greatly appreciated! Thanks!
0 Kudos
weelyn
Level 5

The global product registry is in C:\program files\Zero G Registry\.com.zerog.registry.xml

(On my machine, this is a hidden directory!)

Somplest way for you to see if it's the same problem as we got, is to check that file, and see if two products share the same path.

For instance:

[CODE]
...

This installs the application feature.





This installs the application feature.




[/CODE]

here we have two identical locations: "C:\xxx"
check if you have this problem of identical locations

Hope this helps.

NB: the problem is not OS-specific indeed. It just depends on the key file (which in our case was different on Windows for each install, but identical on Unix)
0 Kudos
pv7721
Level 20

weelyn wrote:
The global product registry is in C:\program files\Zero G Registry\.com.zerog.registry.xml

(On my machine, this is a hidden directory!)



It is set as hidden by design (i.e. you're not supposed to touch it directly). I believe IS has a similar folder.
0 Kudos
peteypablo
Level 2

i am having the same problem on windows when trying multiple installs and then an uninstall later of any of them. i would like more information on the key file problem to see if that is my problem as well.

i am using 2008 version , but it seems the problems in 2009 are identical.

here is a snip of code from my zero g xml registry file. i am totally new to this, does anything jump out as being obviously wrong?

[CODE]
This is MYTEST.


WARNING! The chosen directory already exists! Continuing may create potential data loss and software issues.<BR /><BR />Please verify your path does not contain an installation of MYTEST, check the box above, and click "Next" to continue with the installation. Otherwise click 'Previous' to change your directory.





This is MYTEST.


WARNING! The chosen directory already exists! Continuing may create potential data loss and software issues.<BR /><BR />Please verify your path does not contain an installation of MYTEST, check the box above, and click "Next" to continue with the installation. Otherwise click 'Previous' to change your directory.



[/CODE]
0 Kudos
pv7721
Level 20

0 Kudos
peteypablo
Level 2

i actually did read that thread before, but dont know where to change the setting of $PRODUCT_NAME$, nor do I know how to create a custom variable called $MY_VERSION$

do i not just need to somehow create a uniqueId (UUID) for each install?

instead of hardcoding:
25594333-1ee8-11b2-b81c-dbecbd83eaf3

today is only my 2nd day working with this stuff, so I have a lot of learning to do.
0 Kudos
pv7721
Level 20

Well, in my case $MY_VERSION$ is set to something I patch before building, thus insuring that for each build the version is correct. For setting variables you've got a built-in action called Set Install Anywhere - Single Variable
0 Kudos
jramsland
Level 3

Vlad,

You wouldn't happen to have a current link to this thread, would you?

http://community.acresso.com/showthread.php?t=181593

Thanks,
Justin
0 Kudos
jramsland
Level 3

Never mind. I see that I just need to be looking at flexerasoftware.com
0 Kudos
pv7721
Level 20

jramsland wrote:
Vlad,

You wouldn't happen to have a current link to this thread, would you?

http://community.acresso.com/showthread.php?t=181593

Thanks,
Justin


Yeah, the link should have read: http://community.flexerasoftware.com/showthread.php?t=181593

Which makes me think, I'm gonna post a request to the forums admins, there might be a an easy way (search & replace) in order to replace all acresso occurences in links with flexerasoftware.
0 Kudos