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

pidFile switch should prevent launching of multiple copies

    Details

    • Type: New Feature
    • Status: Fixed but Unreleased (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Component/s: swarm-plugin
    • Labels:
      None
    • Environment:
      Jenkins 2.90
      Swarm (plugin and jar): 3.6
    • Similar Issues:
    • Released As:
      3.18

      Description

      It is currently not possible to prevent a second copy of the swarm client from being launched accidentally (through various automation errors, timing issues, etc).  I support a large swarm that handles cross-platform testing so I have automation on multiple linux and windows OS variants with different init systems.  Surprisingly, systemctl units are by far the worst offenders.

      Anyway, I feel that -pidFile switch is the place to create this type of locking.  Currently I can launch two clients and they will both run.  No combination of flags can prevent this.  For example:

      -name something  -master XXX -pidFile /tmp/jenkinspid -disableClientsUniqueId -deleteExistingClients

      This will cause the two copies to aggressively knock each other out every few seconds, forever, killing running jobs. Not a good option.

      -name something  -master XXX -pidFile /tmp/jenkinspid 

      This will cause the first copy to write a pidfile.  The second copy will delete the pidfile(!!) and then fail because that name (with or without -disableClientsUniqueId) is in use, so it will loop waiting to reconnect.   Terrible option.

       

      In my opinion, if -pidFile is specified, the second copy should not start (exit >0) when one is already running and matches the pid.  

        Attachments

          Activity

          Hide
          oleg_nenashev Oleg Nenashev added a comment -

          KK does not maintain this plugin anymore. Moving to unassigned to set the expectation

          Show
          oleg_nenashev Oleg Nenashev added a comment - KK does not maintain this plugin anymore. Moving to unassigned to set the expectation
          Hide
          basil Basil Crow added a comment -

          In my opinion, if -pidFile is specified, the second copy should not start (exit >0) when one is already running and matches the pid.

          Agreed. I welcome any PRs to implement this and would be happy to review them.

          Show
          basil Basil Crow added a comment - In my opinion, if -pidFile is specified, the second copy should not start  (exit >0) when one is already running and matches the pid. Agreed. I welcome any PRs to implement this and would be happy to review them.
          Show
          akom Alexander Komarov added a comment - https://github.com/jenkinsci/swarm-plugin/pull/114
          Hide
          basil Basil Crow added a comment -

          Thanks for the PR! This was merged in #114 and will be released in 3.18.

          Show
          basil Basil Crow added a comment - Thanks for the PR! This was merged in #114 and will be released in 3.18.

            People

            • Assignee:
              Unassigned
              Reporter:
              akom Alexander Komarov
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: