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

Starting Jenkins with defined --webroot or JETTY_HOME not working.

    • Icon: Bug Bug
    • Resolution: Duplicate
    • Icon: Critical Critical
    • core
    • None
    • - 8Gb RAM
      - 8 CPUs
      - 300Gb disk
      - Ubuntu 12.04
      Jenkins installed via 'apt-get install -y jenkins'

      For our environment it is required to load webapp into /var/cache/jenkins.
      With previous version (1.509.3) setting /etc/default/jenkins with:
      JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

      has always loaded webroot/webapp to this location.
      Installing the latest jenkins with 'apt-get install -y jenkins' using our existing /etc/default/jenkins file not passing the --webroot parameter/location. Starting Jenkins with /etc/init.d/jenkins start

      Jenkins:IIRC suggestions to use (command-line or /etc/default/jenkins):
      $ export JETTY_HOME=/var/cache/jenkins/war
      $ export JENKINS_HOME=/home/username/jenkins
      $ /usr/bin/java -Xmx512m -jar /usr/share/jenkins/jenkins-1.540.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

      However, it still continuously loads into: /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war-any/webapp

      /var/log/jenkins/jenkins.log:
      INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.540.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war-any/webapp

      Using previous 1.509.3 jenkins.war (and prior) versions does not have this behavior.

      Is this change by design?
      Can you please provide a workaround so we can specify --webroot or jetty_home, etc.?

          [JENKINS-20682] Starting Jenkins with defined --webroot or JETTY_HOME not working.

          GMarquez created issue -
          GMarquez made changes -
          Description Original: For our environment it is required to load webapp into /var/cache/jenkins.
          With previous version (1.509.3) setting /etc/default/jenkins with:
          JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

          has always loaded webroot/webapp to this location.
          Installing the latest jenkins with 'apt-get install -y jenkins' using our existing /etc/default/jenkins file not passing the --webroot parameter/location. Starting Jenkins with /etc/init.d/jenkins start

          Jenkins:IIRC suggestions to use (command-line or /etc/default/jenkins):
            $ export JETTY_HOME=/var/cache/jenkins/war
            $ export JENKINS_HOME=/home/username/jenkins
            $ /usr/bin/java -Xmx512m -jar /usr/share/jenkins/jenkins-1.540.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

          However, it still continuously loads into: /tmp/jetty-0.0.0.0-8080-jenkins-1.540.2.war--any-/webapp

          /var/log/jenkins/jenkins.log:
          INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.540.2.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.540.2.war--any-/webapp

          Using previous 1.509.3 jenkins.war (and prior) versions does not have this behavior.

          Is this change by design?
          Can you please provide a workaround so we can specify --webroot or jetty_home, etc.?
          New: For our environment it is required to load webapp into /var/cache/jenkins.
          With previous version (1.509.3) setting /etc/default/jenkins with:
          JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

          has always loaded webroot/webapp to this location.
          Installing the latest jenkins with 'apt-get install -y jenkins' using our existing /etc/default/jenkins file not passing the --webroot parameter/location. Starting Jenkins with /etc/init.d/jenkins start

          Jenkins:IIRC suggestions to use (command-line or /etc/default/jenkins):
            $ export JETTY_HOME=/var/cache/jenkins/war
            $ export JENKINS_HOME=/home/username/jenkins
            $ /usr/bin/java -Xmx512m -jar /usr/share/jenkins/jenkins-1.540.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

          However, it still continuously loads into: /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          /var/log/jenkins/jenkins.log:
          INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.540.2.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          Using previous 1.509.3 jenkins.war (and prior) versions does not have this behavior.

          Is this change by design?
          Can you please provide a workaround so we can specify --webroot or jetty_home, etc.?
          GMarquez made changes -
          Description Original: For our environment it is required to load webapp into /var/cache/jenkins.
          With previous version (1.509.3) setting /etc/default/jenkins with:
          JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

          has always loaded webroot/webapp to this location.
          Installing the latest jenkins with 'apt-get install -y jenkins' using our existing /etc/default/jenkins file not passing the --webroot parameter/location. Starting Jenkins with /etc/init.d/jenkins start

          Jenkins:IIRC suggestions to use (command-line or /etc/default/jenkins):
            $ export JETTY_HOME=/var/cache/jenkins/war
            $ export JENKINS_HOME=/home/username/jenkins
            $ /usr/bin/java -Xmx512m -jar /usr/share/jenkins/jenkins-1.540.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

          However, it still continuously loads into: /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          /var/log/jenkins/jenkins.log:
          INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.540.2.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          Using previous 1.509.3 jenkins.war (and prior) versions does not have this behavior.

          Is this change by design?
          Can you please provide a workaround so we can specify --webroot or jetty_home, etc.?
          New: For our environment it is required to load webapp into /var/cache/jenkins.
          With previous version (1.509.3) setting /etc/default/jenkins with:
          JENKINS_ARGS="--webroot=/var/cache/jenkins/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT"

          has always loaded webroot/webapp to this location.
          Installing the latest jenkins with 'apt-get install -y jenkins' using our existing /etc/default/jenkins file not passing the --webroot parameter/location. Starting Jenkins with /etc/init.d/jenkins start

          Jenkins:IIRC suggestions to use (command-line or /etc/default/jenkins):
            $ export JETTY_HOME=/var/cache/jenkins/war
            $ export JENKINS_HOME=/home/username/jenkins
            $ /usr/bin/java -Xmx512m -jar /usr/share/jenkins/jenkins-1.540.war --webroot=/var/cache/jenkins/war --httpPort=8080 --ajp13Port=-1

          However, it still continuously loads into: /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          /var/log/jenkins/jenkins.log:
          INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.540.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.540.war--any-/webapp

          Using previous 1.509.3 jenkins.war (and prior) versions does not have this behavior.

          Is this change by design?
          Can you please provide a workaround so we can specify --webroot or jetty_home, etc.?

          GMarquez added a comment -

          I decided to do some additional tracking of last known working version of jenkins.war where --webroot parameter took effect.
          I downloaded previous versions and ran test to see which last known version set webroot to defined: /var/cache/jenkins folder.

          Last Version to allow --webroot option was: v 1.534
          jenkins-1.534.war - Pass!
          jenkins-1.535.war - Fail!

          INFO: Extract jar:file:/usr/share/jenkins/jenkins-1.535.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.535.war-any/webapp

          So it appears this change was implemented in v.1.535 - 1.540 (current). I ran several test on 1.537, 1.538, 1.539 and same results.

          GMarquez added a comment - I decided to do some additional tracking of last known working version of jenkins.war where --webroot parameter took effect. I downloaded previous versions and ran test to see which last known version set webroot to defined: /var/cache/jenkins folder. Last Version to allow --webroot option was: v 1.534 jenkins-1.534.war - Pass! jenkins-1.535.war - Fail! INFO: Extract jar: file:/usr/share/jenkins/jenkins-1.535.war!/ to /tmp/jetty-0.0.0.0-8080-jenkins-1.535.war- any /webapp So it appears this change was implemented in v.1.535 - 1.540 (current). I ran several test on 1.537, 1.538, 1.539 and same results.
          Michael Clarke made changes -
          Component/s Original: cvs [ 15486 ]

          sogabe added a comment -

          changed component.

          sogabe added a comment - changed component.
          sogabe made changes -
          Component/s New: core [ 15593 ]
          Component/s Original: bulk-builder [ 15774 ]
          Component/s Original: copyarchiver [ 15676 ]
          Component/s Original: credentials [ 16523 ]
          Component/s Original: dashboard-view [ 15679 ]
          Component/s Original: disk-usage [ 15537 ]
          Component/s Original: extended-read-permission [ 16109 ]
          Component/s Original: external-monitor-job [ 17123 ]
          Component/s Original: git [ 15543 ]
          Component/s Original: greenballs [ 15603 ]
          Component/s Original: join [ 15635 ]
          Component/s Original: ldap [ 17122 ]
          Component/s Original: leastload [ 17653 ]
          Component/s Original: mailer [ 17522 ]
          Component/s Original: matrix-auth [ 18131 ]
          Component/s Original: nested-view [ 15701 ]
          Component/s Original: pam-auth [ 17502 ]
          Component/s Original: parameterized-trigger [ 15592 ]
          Component/s Original: prescmbuildstep [ 15980 ]
          Component/s Original: project-inheritance [ 17666 ]
          Component/s Original: publish-over-ssh [ 15792 ]
          Component/s Original: rebuild [ 15744 ]
          Component/s Original: role-strategy [ 15758 ]
          Component/s Original: ssh [ 16049 ]
          Component/s Original: ssh-slaves [ 15578 ]
          Component/s Original: timestamper [ 15749 ]
          Component/s Original: view-job-filters [ 15736 ]

          Ben Dean added a comment -

          This is a big deal. If the operating system is set up to run tmpwatch with cron (our CentOS box is this way), files will start to get deleted from that /tmp/jetty-... folder and then Jenkins won't work correctly. Usually this is just icons and other images being broken in the UI, but sometimes it could be important jars missing.

          Ben Dean added a comment - This is a big deal. If the operating system is set up to run tmpwatch with cron (our CentOS box is this way), files will start to get deleted from that /tmp/jetty-... folder and then Jenkins won't work correctly. Usually this is just icons and other images being broken in the UI, but sometimes it could be important jars missing.
          Ben Dean made changes -
          Link New: This issue is related to JENKINS-18366 [ JENKINS-18366 ]
          Gaige Paulsen made changes -
          Link New: This issue is related to JENKINS-20858 [ JENKINS-20858 ]

            kohsuke Kohsuke Kawaguchi
            gmarquez GMarquez
            Votes:
            13 Vote for this issue
            Watchers:
            17 Start watching this issue

              Created:
              Updated:
              Resolved: