#1238 Windows installer fails to detect that uninstaller failed

v4.2.0
closed
installer (2)
complete
5
2014-04-15
2014-01-21
No

During install of REXX-ooRexx_4.2.0(MT)_32-bit 6.04 19 Jan 2014 the uninstall of previous version finished normally. The following Install started automatically; I entered all the details, editor file path, etc., but then the installation failed: "Unable to open rexx.dll for write". There was no Rexx or rxapi process in the task manager list. I had to abort the install (which lost the changes I had made) and reboot before I could install ooRexx [and of course my reboot process uses Rexx a lot, so it was a mess...].

OpSys = Windows 7, fully upto-date.

Discussion

1 2 > >> (Page 1 of 2)
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-21

    Hi Mike,

    Sorry you are having so much trouble with the release candidate. But, I don't have any idea why you would get the message.

    In general I think the message comes from the operating system and if the operating system says it can't open the file, then it can't.

    I don't suppose you looked in the installation directory to see if rexx.dll still existed at the point of the error message, you probably would have mentioned it. It seems possible to me that rexx.dll couldn't be deleted during the uninstall.

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-21
    • labels: rexx.dll --> rexx.dll, Installation
    • Group: 4.1.2 --> None
     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-21

    Hi Mark, no I didn't actually look in the directory to see if rexx.dll existed. Like you, I assumed it did and the uninstall failed to delete it.

    [I have a vague memory that this also happened last time I installed (4.1.x) but I didn't have time to report/investigate then.]

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-21

    [No idea why that one showed as 'Anonymous .. I was/am logged in. MFC]

    OK, I just did a re-install (4.2.0 over 4.2.0), taking notes.
    a) Uninstall was normal, clicked Next on all settings.
    b) Install needed no changes to settings (saved from earlier today), so again, just clicked Next on all.
    c) Again install failed (unable to write rexx.dll).
    d) I went to the \Program Files\oorexx directory (dir is below) and many files were there. I could not delete rexx.dll, even from an Administrator command line (access denied).
    e) Only way, it seems, was a reboot. After the reboot, installed fine.

    Mike

    Dir after the uninstall had finished and Install window was up:

    Directory of C:\Program Files\ooRexx

    21/01/2014 17:00 <DIR> .
    21/01/2014 17:00 <DIR> ..
    20/01/2014 03:32 55,296 ooDialog.com
    20/01/2014 03:32 460,800 ooDialog.exe
    20/01/2014 03:31 120,320 orexxole.dll
    20/01/2014 03:31 861,696 rexx.dll
    20/01/2014 03:31 54,784 rexx.exe
    20/01/2014 03:31 740,348 rexx.img
    20/01/2014 03:25 126,464 rexxapi.dll
    20/01/2014 03:31 53,248 rexxc.exe
    20/01/2014 03:31 53,760 rexxhide.exe
    20/01/2014 03:31 55,808 rexxpaws.exe
    20/01/2014 03:31 192,512 rexxutil.dll
    20/01/2014 03:26 95,232 rxapi.exe
    20/01/2014 03:31 52,736 rxqueue.exe
    20/01/2014 03:31 47,616 rxsubcom.exe
    21/01/2014 17:00 0 uninstall.log
    15 File(s) 2,970,620 bytes

     
    Last edit: Mike Cowlishaw 2014-01-21
  • Rick McGuire

    Rick McGuire - 2014-01-21

    You didn't by chance still have your ELAP shell active when you tried to install? Perhaps that's why the old files couldn't be removed.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-21

    No, very careful about that -- and as I mentioned, no Rexx-related process showed in task manager.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-21

    [sigh 'Edit' doesn't work in Chrome or IE, will try FF next ...]

     
  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-21

    FF let me edit the earlier post, but it still has spurious dates in the DIR. Anyway, the list of files is correct -- everything still there, despite the uninstall.

     
  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-21

    [Oh, with FF I am no longer anonymous. How nice.]

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-21

    Mike, the fact that you can't delete rexx.dll yourself with admin privileges seems to show that some process has rexx.dll opened.

    Not sure how much time you have to invest on this, but Process Explorer from Sysinternals can search for a DLL and list what process has it opened. Maybe that would give you some insight.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-21

    Mark, I'll look into that tomorrow .. but surely that doesn't explain why all the ooRexx files are still in the directory after the uninstall? The .exes were certainly not in use.

    Mike

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-21

    It depends on when you looked at the directory. If you looked when the error with rexx.dll popped up, the installer would have already placed the exes on your system.

    ; Distribution executables...
    ${File} "${BINDIR}\" "ooDialog.com"
    ${File} "${BINDIR}\" "ooDialog.exe"
    ${File} "${BINDIR}\" "rexx.exe"
    ${File} "${BINDIR}\" "rexx.img"
    ${File} "${BINDIR}\" "rexxc.exe"
    ${File} "${BINDIR}\" "rxsubcom.exe"
    ${File} "${BINDIR}\" "rxqueue.exe"
    ${File} "${BINDIR}\" "rxapi.exe"
    ${File} "${BINDIR}\" "rexxhide.exe"
    ${File} "${BINDIR}\" "rexxpaws.exe"
    ; Distribution DLLs...
    ${File} "${BINDIR}\" "rexx.dll"
    ${File} "${BINDIR}\" "rexxapi.dll"
    ${File} "${BINDIR}\" "rexxutil.dll"

    The uninstall portion of the installation program is actually a separate program. When you get to the page that actually is deleting the files, the best place to look at the directory would be when it gets to Completed, but before you push the Next button.

    You could also scroll up a ways in the Details pane and see if it list any problem for rexx.dll. On a install here I have:

    Delete file: C:\Rexx\ooRexx\rexxutil.dll
    Delete file: C:\Rexx\ooRexx\rexxapi.dll
    Delete file: C:\Rexx\ooRexx\rexx.dll
    Delete file: C:\Rexx\ooRexx\rexxpaws.exe
    Delete file: C:\Rexx\ooRexx\rexxhide.exe

    Of course, that would explain everything except, from your listing:

    20/01/2014 03:31 192,512 rexxutil.dll

    which shouldn't be installed until after rexx.dll

     
  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-21

    Sounds like processExplorer is the next step. I already had that, and have downloaded the latest. Cannot see how that will tell me what is using a DLL, however; and the help .. doesn't. A quick hint would be appreciated.

    Mike

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-21

    Hi Mike,

    I just launched procexp from the command line. In the menu at the top is a Find. Click on that and type in rexx.dll.

    If I don't have a rexx.exe process, the find returns nothing. If I start a Rexx program that doesn't quit (I just put a pull statement if a test script,) then Find shows rexx.exe.

    So, my assumption, (and some Google search,) is that it will work for you if their is some process with rexx.dll open.

    Maybe not of course. Maybe the OS isn't unloading rexx.dll for some other obscure reason. Maybe the loaded reference count is screwed up for some reason.

     
  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-22

    ProcExp did indeed identify the problem -- one of my web servers was still running; the program to close them had a bug and only closed 2 of the 3 :-(.

    This time I used 'delete all files in tree' in the uninstall while leaving the server running; the files that got left in the ooRexx folder were:

    20/01/2014 03:31 120,320 orexxole.dll
    20/01/2014 03:31 861,696 rexx.dll
    20/01/2014 03:25 126,464 rexxapi.dll
    20/01/2014 03:31 192,512 rexxutil.dll
    21/01/2014 17:12 78,449 uninstall.exe

    Surely the uninstall process should have reported that it was unable to delete rexx.dll, etc.?

    Minor separate observation: during the install I got a popup saying 'unable to start rxapi service because no device attached' (or something like that). A bit worrying, although everything seems to work.

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-22
    • labels: rexx.dll, Installation --> installer
    • summary: Installation fails trying to write rexx.dll --> Windows installer fails to detect that uninstaller failed
    • status: open --> accepted
    • assigned_to: Mark Miesfeld
    • Pending work items: none --> code+test
     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-22

    Mike, there are numerous checks for errors:

    ExecWait '$RegVal_uninstallString /U=$3 _?=$RegVal_uninstallLocation' $0

    IfErrors UninstallErrors
    ${if} $0 == 0
    ; No errors, do a sanity check and finish up.
    IfFileExists "$INSTDIR\${KEYFILE1}" UninstallErrors
    IfFileExists "$INSTDIR\${KEYFILE2}" UninstallErrors

    apparently they don't work.

    I'm going to change the title of the bug and see if I can fix that.

     
  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-22

    Sounds good; thanks ... Mike

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-24
    • status: accepted --> pending
    • Pending work items: code+test --> complete
    • Group: None --> v4.2.0
     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-24

    Committed revision 9869. [r9869] 4.2.0 branch
    Committed revision 9870. [r9870] trunk

    This change uses some new functionality for NSIS I found that checks for locked files. The installer now checks as soon as it starts if the important files, rexx.exe, rexx.dll, rxapi.exe and some others, are locked. If any of the files are locked, the installer puts up an explanatory message and aborts. Same thing for the uninstaller.

    This should prevent any partial uninstalls, or partial installs.

     

    Related

    Commit: [r9869]
    Commit: [r9870]

  • Comment has been marked as spam. 
    Undo

    You can see all pending comments posted by this user  here

    Anonymous - 2014-01-24

    Experimental build shows a dialogue which indicates rexx.dll is locked; many thanks!

    Would it be possible to add a Retry button? Reason: if the installer is started from a browser or from some environment that uses Rexx (about to be manually closed) the installation is aborted after this dialog, and after resolving the problem it can be really hard to locate the installer .exe to restart it. A retry option would be nice.

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-26

    Committed revision 9877. [r9877]

    Okay Mike, I added a retry option.

    It looks like the build machine has been pretty consistent in producing the Windows builds. So if you feel like trying it out, you could pick up a new build at:

    http://build.oorexx.org/builds/release-candidates/

    and look for a directory 9877 or larger.

     

    Related

    Commit: [r9877]

  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-26

    Hmm, I found (in win7-i386/) ooRexx420_0-x86_32.exe 2014-01-26 01:03 5.0M which is from this morning, but no sign of the Retry button. Also looked in the directory 9878/ but that only had Linux builds?

     
  • Mark Miesfeld

    Mark Miesfeld - 2014-01-26

    Sorry, I got confused on what I committed when, for what. The commit I listed was for the ooDialog installer. Looking at my source tree I see that the change for the ooRexx installer didn't get committed.

    Committed revision 9879. [r9879] Updates installer with Retry button.

     

    Related

    Commit: [r9879]

  • Mike Cowlishaw

    Mike Cowlishaw - 2014-01-26

    Just tested private link .. now works beautifully. Nice work!! And many thanks; that will surely help many people.

     
1 2 > >> (Page 1 of 2)


Anonymous

Cancel  Add attachments





Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.





No, thanks