Uploaded image for project: 'Commons Daemon'
  1. Commons Daemon
  2. DAEMON-458

The changes in DAEMON-446 cause existing DependsOn values to be removed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3.2, 1.3.3
    • 1.3.4
    • Procrun
    • None

    Description

      As part of DAEMON-446 a regression was introduced that causes existing service DependsOn services to be removed when working with the //US option.

       

      Replication:

      Run:

      prunsrv.exe //IS/MyService --Startup=auto --Description=MyService --DisplayName=MyService
      sc config MyService depend=Tcpip/Afd/Dhcp 

      View the services and note that MyService depends on Dhcp (the sc config command is being used to represent a separate script call)

      Now run:

      prunsrv.exe //US/MyService --Startup=manual 

      View the services and note that MyService no longer depends on Dhcp

      The offending code appears to be the following in service.c:

          /* Add the mandatory dependencies */
          if (lpDependencies) {
              lpDependencies = apxMultiSzCombine(NULL, lpDependencies,
                                                 L"Tcpip\0Afd\0", NULL);
          } else {
              lpDependencies = L"Tcpip\0Afd\0";
          }

      Which means if DependsOn isn't defined we'll always pass down Tcpip and Afd, vs the NULL that happened before. Wiping existing custom dependancies out.

      I didn't test it but this code may not work properly with the – vs ++ logic defined under https://commons.apache.org/proper/commons-daemon/procrun.html The DAEMON-446 ticket talks about --DependsOn (full replace) although I only see ++Depends on documented, so maybe DAEMON-446 was actually invalid to begin with?

       

       

      Attachments

        Activity

          People

            Unassigned Unassigned
            brianandle Brian Andle
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: