Uploaded image for project: 'Puppet'
  1. Puppet
  2. PUP-1802

Puppet should execute ruby.exe not cmd.exe when running as a windows service

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: PUP 3.8.0, PUP 4.1.0
    • Component/s: None
    • Labels:
    • Template:
    • Story Points:
      2
    • Sprint:
      Platform Client 2014-11-26, Platform Client 2014-12-17

      Description

      Currently, when puppet runs as a service on windows, it executes a batch script (in a cmd.exe process), which then invokes ruby.exe. The child process then calls back into the service control manager, and that causes the service control manager to issue a warning in the application event log that a different process registered as a service than the one it launched.

      Ideally, the service control manager should launch ruby.exe directly along with whatever arguments are necessary to do so.

      If the puppet service is running when a new version is installed, or existing version repaired, Windows Installer may issue the warning, "The setup must update files or services that cannot be updated while the system is running. If you choose to continue, a reboot will be required to complete the setup." I believe this occurs because ruby.exe is not the executable associated with the service, so the installer just thinks the file is in use. This issue can be triggered easily by setting runinterval=5, e.g. run puppet every 5 seconds, and then trying to upgrade/repair.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                josh Josh Cooper
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Zendesk Support