View Issue Details

IDProjectCategoryView StatusLast Update
0003080Ham Radio DeluxeBugpublic2019-02-24 15:13
ReporterKB3NPHAssigned ToK7ZCZ 
PriorityhighSeverityminorReproducibilityalways
Status closedResolutionfixed 
Product Version 
Target VersionFixed in Version6.5.0.196 
Summary0003080: V6.5.0.183 No automatic restart of install after C++ 2017 runtime is installed.
DescriptionWhen installing on a system where the VS C++ 2017 runtime is installed. our installer comes to the point where the runtime is installed. The system properly installs the runtime software and indicates that a reboot is needed. Once the computer is rebooted, the installation does NOT automatically continue the installation of HRD.

The computer comes up in the desktop as it would or a normal reboot. In order to continue installing HRD you must locate the setup.exe file and re-run it.
Steps To ReproduceSetup a machine which does not have VS C++ 2017 runtime installed.
Run the HRD installer (Setup.exe)
Follow the installation and after the install script installs the C++ 2017 runtime kit, the dialog will display indicating a restart of the computer is required.
Click the [Restart] button and a reboot will begin.
Upon completion of reboot the computer will come up in the desktop view

In order to continue installing HRD V6.5.0.183 you must locate and re-run the HRD "setup.exe" again.
TagsNo tags attached.
ModuleAll
Sub-ModuleVarious
Testing Beta Successful

Activities

K7ZCZ

2019-01-20 13:21

manager   ~0007040

I'm not able to reproduce this problem. I've spent about five hours trying various combinations. In each scenario, I started with a fresh Windows 10 x64 installation.


  1. Clean install with no previous HRD or VC++ runtime installation, which seems to be the processed described in the repro steps here. This install completed without a reboot.

  2. Manually install VC++ 14.11.25325 x86 runtimes, then install HRD. Install completed without a reboot.

  3. Install HRD 6.4.907. Install HRD 6.5.184 over it. Install completed without a reboot.

  4. Install HRD 6.4.907. Remove HRD 6.4.907. Install HRD 6.5.184. Install completed without a reboot.

  5. Manually install VC++ 14.15.26706 x86 rutimes, then install HRD. Install completed without a reboot.

  6. Install HRD 6.4.907. Manually install VC++ 14.11.25325 x86 runtimes, then install HRD. Install completed without a reboot.

  7. Install HRD 6.4.907. Manually install VC++ 14.15.26706 x86 runtimes, then install HRD. Install completed without a reboot.



In the cases where the existing runtimes kit is present and of the same version as the kit the product wants to install, I can verify that the product doesn't attempt a re-installation of the kit.

With little to go on in the report and without seeing the problem first-hand, I'm forced to guess at what might be happening. Of particular interest is the cause of the restart. I can't tell if the VC++ Redistributables paackge is itself causing the restart, or if the HRD Setup script is executing the restart.

If the redistributable package installer is causing the reboot, then there's not much we can do. It doesn't signal the restart to the HRD setup script, which would need to know to restart at the point where it left off. There's no mechanism for this communication, and no bookmarking exposed to the script language in InstallAware.

If it's our own script that's performing the reboot, then we've got a more serious problem. It's readily verified that any explicit reboot in the InstallAware script uses the "Reboot and REsume Setup" command, which InstallAware advertises as rebooting then resuming setup. (See https://www.installaware.com/mhtml5/desktop/rebootandresume.htm) While it's concerning that the setup resumes before the user logs in, the documentation for this command does indicate that it performs the overall action we desire. I have no facility for diagnosing why the InstalAware package, itself, would be failing to complete this operation.

Two more possibilities are that the script (or the installer) tell the user to reboot manually (and they do) and the script terminates. That path would have symptoms consistent with what has been reported, but the reported symptoms have multiple causes.

Further, it's possible that the runtime distribution kit isn't involved; other component management may require a reboot. Just because the restart is invited after the install of the runtime kit doesn't necessarily mean the runtime kit is initiating the requirement for the restart; and it doesn't necessarily mean the runtime kit is alone in requiring a restart.

Adding to the challenge is that the VC_REDIST.EXE package is scarcely documented. If I assume that it is a self-contained MSI package, then we can work with the assumption that it returns on of several common error codes (see https://docs.microsoft.com/en-us/windows/desktop/Msi/error-codes) to indicate its disposition. The HRD setup script doesn't exhaustively test for these.

Until more information is available, I think my only move is to augment the tests for restart returns from the Visual C++ runtime package and assure that the we end up at the "Reboot and Resume Setup" instruction that we intend.

Because I am unable to demonstrate this issue myself, I have no way to test that my fix is impactful. The changed code is checked in with the changeset below. It seems likely that the problem is stateful; removing or installing something means changing state. Users who've continued with setup past the reboot probalby won't be able to reproduce the issue because the preconditions that cause the issue (unidentified so far) don't exist anymore. As such, we can't directly interpret success on an install of the first changed build as demonstration that the underlying issue is solved ... all the more reason to pursue enough details to form a test case.


https://hrdsoftware.visualstudio.com/HRD/_versionControl/changeset/4745

K7ZCZ

2019-01-20 21:01

manager   ~0007042

I'm never too sure what to do with issues in this state. I can't repro the issue, and I've made a speculative fix ... as far as I know, the only way to expose it to testing is to mark it resolved, so I'm doing that.

WA9PIE

2019-01-21 02:33

administrator   ~0007051

The only way we're going to know if this resolves the issue is to send it out as an open beta and allow a large number of customers to provide us feedback.

PD9FER

2019-01-21 04:45

viewer   ~0007054

Simplified: (on Windows 7 64 Bit)

When there is no MS Visual C++ 2017 present on the system, it calls for a reboot
When there is an older build of MS Visual C++ 20017 present It will run thru the setup and let our installer continue
When the same Build of MS Visual C++ 2017 is already on the system, the Visual C++ installer prompts with a Fail, after that
you can press cancel and our installer will continue.

It can be that this will be different on Win 10 (did you tested on Win 7?)

K7ZCZ

2019-01-22 15:53

manager   ~0007058

This issue makes no mention of a specific version of Windows, so I tested with Windows 10.

When I install Build 187 on Windows 7 (32-bit) without the VC 2017 runtimes previously installed, I'm not prompted for a reboot.

WA9PIE

2019-02-08 09:30

administrator   ~0007315

Validated on both trade show machines

Issue History

Date Modified Username Field Change
2019-01-19 23:02 KB3NPH New Issue
2019-01-19 23:02 KB3NPH Status new => assigned
2019-01-19 23:02 KB3NPH Assigned To => K7ZCZ
2019-01-20 13:21 K7ZCZ Note Added: 0007040
2019-01-20 21:01 K7ZCZ Note Added: 0007042
2019-01-20 21:01 K7ZCZ Project 1 - Backlog => 3 - Current Dev List
2019-01-20 21:02 K7ZCZ Status assigned => resolved
2019-01-20 21:02 K7ZCZ Resolution open => fixed
2019-01-20 21:02 K7ZCZ Fixed in Version => 6.5.0.186
2019-01-21 02:33 WA9PIE Note Added: 0007051
2019-01-21 04:45 PD9FER Note Added: 0007054
2019-01-22 15:53 K7ZCZ Note Added: 0007058
2019-02-08 09:30 WA9PIE Status resolved => closed
2019-02-08 09:30 WA9PIE Testing Not Started => Beta Successful
2019-02-08 09:30 WA9PIE Note Added: 0007315
2019-02-24 14:36 WA9PIE Fixed in Version 6.5.0.186 => 6.5.0.196
2019-02-24 15:13 WA9PIE Project 3 - Current Dev List => Ham Radio Deluxe