Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-16733

msiexec hangs due to wrong command line syntax

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Critical Critical
    • slave-setup-plugin
    • None
    • Win XP Pro SP 3 (32 Bit)

      When Jenkins tries to install the JDK on a Win XP Pro SP 3 (32 Bit) slave, it wants to run this command line:

      [Java_1.7.0] $ C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\jdk.exe /s /v /qn /L \"C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\jdk.exe.install.log\" REBOOT=ReallySuppress INSTALLDIR=\"C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\"

      The problem is that this leads to msiexec hanging forever and a day, hence the job hangs forever and a day.

      The cause is the backslashes before the quotes. They must get removed (at least on Win XP Pro SP3, maybe on ALL versions of Windows?).

      Proof of cause: Type in the command line as it is, but remove the "/qn" to see the actual output of msiexec. You will immediately see that msiexec prompts you with the help screen and then waits for OK to be pressed, as this is the usual way msiexec tells you about syntax errors!

      Proof of solution: Type in the same command line as it is, but remove the backslashes prefixing the double quotes. The installation runs to the end without any hangs of msiexec in the task manager. You will end up with Java 7 installed in the target folder.

      I have not found any workaround so far. Even manually executing the corrected command line does not convince Jenkins to not try to run the same command line again. So this is a blocker and should get fixed ASAP.

      UPDATE: It seems there is another bug which prevents installation of JDK 7:

      Action start 14:44:56: InstallFinalize.
      MSI (s) (88:98) [14:46:47:649]: Product: Java SE Development Kit 7 Update 11 – Error 1722.There is a problem with this Windows Installer package. A program run as part of the setu
      p did not finish as expected. Contact your support personnel or package vendor. Action charsets, location: C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\jre\lib\, command: "C:\.je
      nkins\tools\hudson.model.JDK\Java_1.7.0\jre\lib
      launcher.exe" "C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\bin
      unpack200.exe" -r -v -l "" "C:\.jenkins\tools\hudson.model.JDK\Ja
      va_1.7.0\\jre\lib\charsets.pack" "C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\\jre\lib\charsets.jar"

      Error 1722.There is a problem with this Windows Installer package. A program run as part of the setup did not finish as expected. Contact your support personnel or package vendor.
      Action charsets, location: C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\jre\lib\, command: "C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\jre\lib
      launcher.exe" "C:\.jenkins\tool
      s\hudson.model.JDK\Java_1.7.0\bin
      unpack200.exe" -r -v -l "" "C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\\jre\lib\charsets.pack" "C:\.jenkins\tools\hudson.model.JDK\Java_1.7.0\
      \jre\lib\charsets.jar"
      Action ended 14:46:47: InstallFinalize. Return value 3.
      Action ended 14:46:47: INSTALL. Return value 3.
      MSI (s) (88:98) [14:46:47:883]: Product: Java SE Development Kit 7 Update 11 – Configuration failed.

      UPDATE: It seems, the problem is not the backslashes. These seem to be printed only on the Jenkins GUI. Proof: I told Jenkins to use JDK 1.6.0_38 instead of JDK 1.7.0_11, and everything installed rather well – while the GUI still says it uses the same (wrong) backslashes before the quotes. So at least, this is a workaround for projects not needing JDK 7. Hence, reducing from BLOCKER to CRITICAL.

            kohsuke Kohsuke Kawaguchi
            mkarg Markus KARG
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: