Uploaded image for project: 'Identity Provider'
  1. Identity Provider
  2. IDP-994

WindowsInstaller: Starting and Stopping the shibd_idp service

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reopened
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.2.1
    • Fix Version/s: Future
    • Component/s: Installer
    • Labels:
      None
    • Operating System:
      Multiple

      Description

      During testing of 3.2.1.1 I saw this a couple of times: The (virtual) machine was looking for updates in the background (which sucks one CPU at 100% on Win7) and additionally had just been brought back awake from a snapshot (so there was some load going on in the background).

      During the install I got a warning about an access conflict to one of the jetty or procmon logs but waiting allowed one to continue and after install the start.jar in the jetty installation was missing.

      Adding logging to the install is enough to disturb this and make it work but I suspect that the shibd_idp service hadn't complete stopped (as part of the shutdown) by the time that the upgrade started running and so we get some sort of weird behavior which allows start.jar to be deleted but not reinstalled.

      This is the stanza that starts/stops the service

                  <Component Id="ServiceParameters" Directory="PROCRUNROOT" Guid="{EC1EA760-0113-4CAD-9719-ADFF1885FC53}" KeyPath="yes">
                      <!-- Start component here - that way if the start fails the user will be prompted and things will continue with the service declared. -->
                      <RegistryKey ForceCreateOnInstall="yes" Key="SYSTEM\CurrentControlSet\services\$(var.ServiceName)\Parameters" Root="HKLM" />
                      <ServiceControl Id="controlService" Name="$(var.ServiceName)" Stop="both" Remove="uninstall" Start="install" Wait="no" />
                  </Component>
      
      

      Note the Wait="no which is needed because a freshly installed IdP won't start (and there may be good reasons why an update won't) and we really don't want this to cause the install/update fail and to back off.

      At some stage I need to try to replicate this and fix. The only way I can imagine doing it is to clone the standza but conditionalize the component on install/uninstall, then make the uninstall version wait (testing of course to ensure that the wait still works if the IdP isn't installed).

        Attachments

          Activity

            People

            Assignee:
            rdw@iay.org.uk Rod Widdowson
            Reporter:
            rdw@iay.org.uk Rod Widdowson
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:

                Time Tracking

                Estimated:
                Original Estimate - 6 hours
                6h
                Remaining:
                Remaining Estimate - 0 minutes
                0m
                Logged:
                Time Spent - 1 hour, 51 minutes Time Not Required
                1h 51m