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

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

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • PUP 3.8.0, PUP 4.1.0
    • None
    • 2
    • 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

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

              Dates

                Created:
                Updated:
                Resolved:

                Zendesk Support