Package hudson.util

Class DoubleLaunchChecker


  • public class DoubleLaunchChecker
    extends Object
    Makes sure that no other Hudson uses our JENKINS_HOME directory, to forestall the problem of running multiple instances of Hudson that point to the same data directory.

    This set up error occasionally happens especially when the user is trying to reassign the context path of the app, and it results in a hard-to-diagnose error, so we actively check this.

    The mechanism is simple. This class occasionally updates a known file inside the hudson home directory, and whenever it does so, it monitors the timestamp of the file to make sure no one else is updating this file. In this way, while we cannot detect the problem right away, within a reasonable time frame we can detect the collision.

    Since:
    1.178
    Author:
    Kohsuke Kawaguchi
    • Field Detail

      • home

        public final File home
    • Constructor Detail

      • DoubleLaunchChecker

        public DoubleLaunchChecker()
    • Method Detail

      • execute

        protected void execute()
      • getId

        public String getId()
        Figures out a string that identifies this instance of Hudson.
      • getCollidingId

        public String getCollidingId()
      • schedule

        public void schedule()
        Schedules the next execution.
      • doDynamic

        public void doDynamic​(org.kohsuke.stapler.StaplerRequest req,
                              org.kohsuke.stapler.StaplerResponse rsp)
                       throws IOException,
                              javax.servlet.ServletException
        Serve all URLs with the index view.
        Throws:
        IOException
        javax.servlet.ServletException
      • doIgnore

        public void doIgnore​(org.kohsuke.stapler.StaplerRequest req,
                             org.kohsuke.stapler.StaplerResponse rsp)
                      throws IOException
        Ignore the problem and go back to using Hudson.
        Throws:
        IOException