JDK-7189731 : UnregisterDeploy needs to wait for jqs.exe to be deleted
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 7,8
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: windows,windows_xp
  • CPU: generic,x86
  • Submitted: 2012-08-07
  • Updated: 2013-12-05
  • Resolved: 2012-08-22
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7 JDK 8
7u10Fixed 8 b53Fixed
Description
CR 7178553 added a call to RegisterDeploy(FALSE, szJavaHome)

The evaluation of CR 7185202 showed that jqs.exe was still running when trying to patch files.

Actual: jqs.exe running after RegisterDeploy(FALSE, szJavaHome) returns
Expected: jqs.exe is no longer running and "Java Quick Starter" service has been deleted

Comments
jqs.exe is no longer part of jre 8
05-12-2013

EVALUATION Problem: jqs still running after UnregisterDeploy, for the case of patch-in-place Fix: 1. Restore execCmd timeout to 30s for the JQS case. 2. Root problem is when UnregisterDeploy is called with JRE registry still there, we fail to unregister cleanly, but try to re-register with the existing JRE. Added check to shouldDeleteDeployKeys - if deploy.dll is coming from the latest javahome, it's a legit uninstall case and allow to proceed. Test: manual test to invoke registerdeploy and unregisterdeploy using fxreg.exe with jre installed
17-08-2012

EVALUATION It looks like in RegFX.cpp we use generic ExecCmd() with default 3s timeout. JQS_TIMEOUT in RegCommon.cpp is 30s as JQS may indeed take longer. IMHO, we need: a) bump timeout to 30s as a short term solution to possible take into 7u7 if install team will push for it b) cleanup old unused JQS code from RegCommon.cpp c) Do not start/stop JQS internally. Introduce new commands and let callee deal with execution/timeouts.
07-08-2012