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

'Build Record Root Directory' is a UI option but is unsafe to change while Jenkins is running

    • Evergreen - Milestone 1

      How to reproduce

      • Start Jenkins
      • Create a job and run/create some builds
      • Change default "Build Record Root Directory" to ${JENKINS_HOME}/var/${ITEM_FULL_NAME}/builds/
      • Rename the job
      • Open a build created before the rename, it will show No such file: /var/jenkins_home/var/new_name/builds/2/log

      Stack trace

      There's the following stack trace when renaming:

      Mar 14, 2018 9:29:03 AM hudson.model.Job$SubItemBuildsLocationImpl onLocationChanged                                 
      SEVERE: Failed to move /var/jenkins_home/var/current_name/builds/ to /var/jenkins_home/var/new_name/builds           
      java.io.FileNotFoundException: /var/jenkins_home/var/current_name/builds/lastFailedBuild (No such file or directory) 
              at java.io.FileInputStream.open0(Native Method)                                                              
              at java.io.FileInputStream.open(FileInputStream.java:195)                                                    
              at java.io.FileInputStream.<init>(FileInputStream.java:138)                                                  
              at org.apache.commons.io.FileUtils.doCopyFile(FileUtils.java:1138)
              at org.apache.commons.io.FileUtils.doCopyDirectory(FileUtils.java:1428)
              at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1389)
              at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1261)
              at org.apache.commons.io.FileUtils.copyDirectory(FileUtils.java:1230)
              at org.apache.commons.io.FileUtils.moveDirectory(FileUtils.java:2755)
              at hudson.model.Job$SubItemBuildsLocationImpl.onLocationChanged(Job.java:701)
              at hudson.model.listeners.ItemListener$6.apply(ItemListener.java:272)
              at hudson.model.listeners.ItemListener$6.apply(ItemListener.java:270)
              at hudson.model.listeners.ItemListener.forAll(ItemListener.java:180)
              at hudson.model.listeners.ItemListener.fireLocationChange(ItemListener.java:270)
              at hudson.model.AbstractItem.renameTo(AbstractItem.java:438)
              at hudson.model.Job.renameTo(Job.java:653)
              at hudson.model.AbstractItem.doConfirmRename(AbstractItem.java:261)
              at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
              at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:343)
              at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
              at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
              at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:184)
              at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:117)
              at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:129)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
              at org.kohsuke.stapler.MetaClass$5.doDispatch(MetaClass.java:248)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:715)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:845)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
              at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1650)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
              at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
              at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:93)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
              at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:67)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:90)
              at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1637)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
              at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
              at org.eclipse.jetty.server.Server.handle(Server.java:564)
              at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317)
              at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
              at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
              at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110)
              at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
              at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128)
              at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294)
              at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199)
              at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
              at java.lang.Thread.run(Thread.java:748)
      

          [JENKINS-50164] 'Build Record Root Directory' is a UI option but is unsafe to change while Jenkins is running

          Daniel Beck added a comment -

          It was never a good idea to use the UI option while Jenkins was running. While the error could be new (which I doubt but whatever), just restarting Jenkins would have wiped all your previous build records.

          This should never have been a UI option, it's so insanely unsafe to use.

          Daniel Beck added a comment - It was never a good idea to use the UI option while Jenkins was running. While the error could be new (which I doubt but whatever), just restarting Jenkins would have wiped all your previous build records. This should never have been a UI option, it's so insanely unsafe to use.

          Daniel Beck added a comment - - edited

          Please try to confirm this actually worked in older releases before claiming regression, or mention that you did so (and which release). There's no indication here that this is new.

          Daniel Beck added a comment - - edited Please try to confirm this actually worked in older releases before claiming regression, or mention that you did so (and which release). There's no indication here that this is new.

          Good point. I (thought I) did, but wrongly it seems. Sigh. I can also reproduce this using 2.89.4... Lowering priority then.

          Baptiste Mathus added a comment - Good point. I (thought I) did, but wrongly it seems. Sigh. I can also reproduce this using 2.89.4... Lowering priority then.

          Devin Nusbaum added a comment -

          This should never have been a UI option, it's so insanely unsafe to use.

          danielbeck: Now that -JENKINS-22936- is done I guess we could split confirm-rename.jelly and RenameAction out to a separate plugin. Would require some awkward documentation for AbstractItem#isNameEditable, and the renaming itself (AbstractItem#renameTo) would have to stay in core, but it would get rid of the UI for new installations.

          Devin Nusbaum added a comment - This should never have been a UI option, it's so insanely unsafe to use. danielbeck : Now that - JENKINS-22936 - is done I guess we could split confirm-rename.jelly and RenameAction out to a separate plugin. Would require some awkward documentation for AbstractItem#isNameEditable , and the renaming itself ( AbstractItem#renameTo ) would have to stay in core, but it would get rid of the UI for new installations.

          Daniel Beck added a comment -

          dnusbaum Renaming jobs is fine, but

          Change default "Build Record Root Directory"

          is not. Insane option. Even working as intended it will nuke all your existing builds on restart.

          Daniel Beck added a comment - dnusbaum Renaming jobs is fine, but Change default "Build Record Root Directory" is not. Insane option. Even working as intended it will nuke all your existing builds on restart.

          Oleg Nenashev added a comment -

          It is a nice option if you want to configure an external storage for build records and do it properly. I'd guess it's what batmat wanted to do. Changing the value in runtime requires manual migration work for sure

          Oleg Nenashev added a comment - It is a nice option if you want to configure an external storage for build records and do it properly. I'd guess it's what batmat wanted to do. Changing the value in runtime requires manual migration work for sure

          Daniel Beck added a comment -

          Changing the value in runtime requires manual migration work for sure

          Hence

          It was never a good idea to use the UI option while Jenkins was running. … This should never have been a UI option, it's so insanely unsafe to use.

          I'm not saying the option shouldn't exist – I'm saying it's something that should need to be set while Jenkins is shut down.

          Daniel Beck added a comment - Changing the value in runtime requires manual migration work for sure Hence It was never a good idea to use the UI option while Jenkins was running. … This should never have been a UI option, it's so insanely unsafe to use. I'm not saying the option shouldn't exist – I'm saying it's something that should need to be set while Jenkins is shut down.

          For my purpose indeed, I don't need it to be changeable. It would be done once only.

          If this issue can simply help make drive/surface the fact this should be a sysprop, and never a UI thing, I'm totally fine with this and tend to agree.

          I guess at the very least, we need to double-check the current behaviour, and document it more in the help text (it's already said there that no migration is handled FWIW).
          Then in the mid term, see if we should remove it. I would vote yes.

          Baptiste Mathus added a comment - For my purpose indeed, I don't need it to be changeable. It would be done once only. If this issue can simply help make drive/surface the fact this should be a sysprop, and never a UI thing, I'm totally fine with this and tend to agree. I guess at the very least, we need to double-check the current behaviour, and document it more in the help text (it's already said there that no migration is handled FWIW). Then in the mid term, see if we should remove it. I would vote yes.

          Baptiste Mathus added a comment - In review on  https://github.com/jenkinsci/jenkins/pull/3360

          Baptiste Mathus added a comment - Superseded by  https://github.com/jenkinsci/jenkins/pull/3364

          Jesse Glick added a comment -

          Regardless of what you do with the UI, the FileNotFoundException from Job$SubItemBuildsLocationImpl.onLocationChanged is a bug which can and should be corrected.

          Jesse Glick added a comment - Regardless of what you do with the UI, the FileNotFoundException from Job$SubItemBuildsLocationImpl.onLocationChanged is a bug which can and should be corrected.

          Jesse Glick added a comment -

          Please check the interaction of your proposed change with JENKINS-21942.

          Jesse Glick added a comment - Please check the interaction of your proposed change with  JENKINS-21942 .

          Baptiste Mathus added a comment - - edited

          jglick I would agree iff the PR I filed did not make this issue disappear. I just checked, and as with this change this is not something changeable anymore when Jenkins is running, I cannot reproduce that error. I'm losing the build history before the value are changed, but I believe the warning in the logs and the the sentence in the help text about "no data migration" makes it "work as expected" .

          WDYT? 

          Baptiste Mathus added a comment - - edited jglick I would agree  iff the PR I filed did not make this issue disappear. I just checked, and as with this change this is not something changeable anymore when Jenkins is running, I cannot reproduce that error. I'm losing the build history before the value are changed, but I believe the warning in the logs and the the sentence in the help text about "no data migration" makes it "work as expected" . WDYT? 

          Jesse Glick added a comment -

          W.r.t. JENKINS-21942, so long as you check what happens with your patch given an installation using config-as-code (e.g., in Docker) where root config.xml is not saved during initial startup yet there is a jobs directory—we expect to be using the preferred $JENKINS_HOME/workspace/ location when the system property is undefined.

          Jesse Glick added a comment - W.r.t. JENKINS-21942 , so long as you check what happens with your patch given an installation using config-as-code (e.g., in Docker) where root config.xml is not saved during initial startup yet there is a jobs directory—we expect to be using the preferred $JENKINS_HOME/workspace/ location when the system property is undefined.

          Code changed in jenkins
          User: Baptiste Mathus
          Path:
          core/src/main/java/jenkins/model/Jenkins.java
          test/src/test/java/jenkins/model/JenkinsInitializationTest.java
          http://jenkins-ci.org/commit/jenkins/7961badd9af9aa15144e4c4442d2fb1f81545ed6
          Log:
          JENKINS-50164 Remove UI option to modify WS and builds locations

          Test (almost) only: checking the previous behaviour is preserved, and
          the system property is accounted for when set.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Baptiste Mathus Path: core/src/main/java/jenkins/model/Jenkins.java test/src/test/java/jenkins/model/JenkinsInitializationTest.java http://jenkins-ci.org/commit/jenkins/7961badd9af9aa15144e4c4442d2fb1f81545ed6 Log: JENKINS-50164 Remove UI option to modify WS and builds locations Test (almost) only: checking the previous behaviour is preserved, and the system property is accounted for when set.

          Code changed in jenkins
          User: Baptiste Mathus
          Path:
          core/src/main/java/jenkins/model/Jenkins.java
          core/src/main/resources/jenkins/model/Jenkins/configure.jelly
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir.html
          http://jenkins-ci.org/commit/jenkins/cce49e7b3cba50bd46e5b8d6c6d3182f398bc277
          Log:
          JENKINS-50164 Remove UI option to modify WS and builds locations

          Add necessary code to fix tests, and make the UI readonly.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Baptiste Mathus Path: core/src/main/java/jenkins/model/Jenkins.java core/src/main/resources/jenkins/model/Jenkins/configure.jelly core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir.html core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir.html http://jenkins-ci.org/commit/jenkins/cce49e7b3cba50bd46e5b8d6c6d3182f398bc277 Log: JENKINS-50164 Remove UI option to modify WS and builds locations Add necessary code to fix tests, and make the UI readonly.

          Code changed in jenkins
          User: Baptiste Mathus
          Path:
          core/src/main/java/jenkins/model/InvalidBuildsDir.java
          core/src/main/java/jenkins/model/Jenkins.java
          core/src/main/resources/jenkins/model/Jenkins/configure.jelly
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_it.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_ja.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_zh_TW.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_it.html
          core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_ja.html
          core/src/test/java/jenkins/model/JenkinsDescriptorTest.java
          test/pom.xml
          test/src/test/java/hudson/model/AbstractProjectTest.java
          test/src/test/java/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest.java
          test/src/test/java/jenkins/model/JenkinsTest.java
          test/src/test/resources/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest/fromPreviousCustomSetup/README.adoc
          test/src/test/resources/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest/fromPreviousCustomSetup/config.xml
          http://jenkins-ci.org/commit/jenkins/a363f2e33cfd7c35a812dca12566e537b3650750
          Log:
          Merge pull request #3364 from batmat/JENKINS-50164

          JENKINS-50164 Remove UI option to modify WS and builds locations

          Compare: https://github.com/jenkinsci/jenkins/compare/e511ff832a24...a363f2e33cfd

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Baptiste Mathus Path: core/src/main/java/jenkins/model/InvalidBuildsDir.java core/src/main/java/jenkins/model/Jenkins.java core/src/main/resources/jenkins/model/Jenkins/configure.jelly core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir.html core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_bg.html core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_it.html core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_ja.html core/src/main/resources/jenkins/model/Jenkins/help-rawBuildsDir_zh_TW.html core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir.html core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_bg.html core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_it.html core/src/main/resources/jenkins/model/Jenkins/help-rawWorkspaceDir_ja.html core/src/test/java/jenkins/model/JenkinsDescriptorTest.java test/pom.xml test/src/test/java/hudson/model/AbstractProjectTest.java test/src/test/java/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest.java test/src/test/java/jenkins/model/JenkinsTest.java test/src/test/resources/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest/fromPreviousCustomSetup/README.adoc test/src/test/resources/jenkins/model/JenkinsBuildsAndWorkspacesDirectoriesTest/fromPreviousCustomSetup/config.xml http://jenkins-ci.org/commit/jenkins/a363f2e33cfd7c35a812dca12566e537b3650750 Log: Merge pull request #3364 from batmat/ JENKINS-50164 JENKINS-50164 Remove UI option to modify WS and builds locations Compare: https://github.com/jenkinsci/jenkins/compare/e511ff832a24...a363f2e33cfd

          Fixed towards upcoming 2.119.

          Baptiste Mathus added a comment - Fixed towards upcoming 2.119.

          Baptiste Mathus added a comment - Refer to https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties for documentation.

          Code changed in jenkins
          User: Baptiste Mathus
          Path:
          content/doc/book/architecting-for-scale.adoc
          http://jenkins-ci.org/commit/jenkins.io/2da6c1addc4830acf28435bf691896dee0612b31
          Log:
          JENKINS-50164 Document builds location configuration

          NOT documentation the workspaces location customization on purpose:
          people should generally not have workspaces on `master` anyway since
          this would mean builds are run there.

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Baptiste Mathus Path: content/doc/book/architecting-for-scale.adoc http://jenkins-ci.org/commit/jenkins.io/2da6c1addc4830acf28435bf691896dee0612b31 Log: JENKINS-50164 Document builds location configuration NOT documentation the workspaces location customization on purpose: people should generally not have workspaces on `master` anyway since this would mean builds are run there.

          Code changed in jenkins
          User: R. Tyler Croy
          Path:
          content/doc/book/architecting-for-scale.adoc
          http://jenkins-ci.org/commit/jenkins.io/0338ee06238749f9f0cf4cc1a234308cce43d75c
          Log:
          Merge pull request #1510 from batmat/JENKINS-50164

          JENKINS-50164 Document builds location configuration

          Compare: https://github.com/jenkins-infra/jenkins.io/compare/0010f35371cc...0338ee062387

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: R. Tyler Croy Path: content/doc/book/architecting-for-scale.adoc http://jenkins-ci.org/commit/jenkins.io/0338ee06238749f9f0cf4cc1a234308cce43d75c Log: Merge pull request #1510 from batmat/ JENKINS-50164 JENKINS-50164 Document builds location configuration Compare: https://github.com/jenkins-infra/jenkins.io/compare/0010f35371cc...0338ee062387

          Using Jenkins v 2.121.3 I see that the help text in the Home directory section of the /admin page is still refleting that the workspace location can be set in the "Advanced" section".

          This almost lead me to file a bug as it was something that was possible earlier and this was still being reflected in the embedded documentation (hence my expectation of it should still be possible).

          Searching for the bug here let me see that it's a "feature" no longer being able to configure this in the UI )

           

          Suggestion:

          Make the UI help text reflect where to set this, EG by a link to this page https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties
          or by making a reference to the config.xml file in the Jenkins installation dir.

           

          ...Under the Advanced section, you can choose to store build workspaces and build records elsewhere.

          Thomas von Eyben added a comment - Using Jenkins v 2.121.3 I see that the help text in the Home directory section of the /admin page is still refleting that the workspace location can be set in the "Advanced" section". This almost lead me to file a bug as it was something that was possible earlier and this was still being reflected in the embedded documentation (hence my expectation of it should still be possible). Searching for the bug here let me see that it's a "feature" no longer being able to configure this in the UI  )   Suggestion: Make the UI help text reflect where to set this, EG by a link to this page  https://wiki.jenkins.io/display/JENKINS/Features+controlled+by+system+properties or by making a reference to the config.xml file in the Jenkins installation dir.   ...Under the  Advanced  section, you can choose to store build workspaces and build records elsewhere.

          tveyben we generally prefer to file new JIRAs for things that are not clearly regression. Here, IIUC, this looks like a small followup fix/enhancement more than a regression for this.

          Having smaller and more focused JIRAs generally helps everyone understand better the scope of an issue/change.

          Can you please open such an issue? Also, can you please add a screenshot and clarify a bit? I guess in "Home directory section of the /admin page" you meant "/configure".

          Thanks!

          Baptiste Mathus added a comment - tveyben we generally prefer to file new JIRAs for things that are not clearly regression. Here, IIUC, this looks like a small followup fix/enhancement more than a regression for this. Having smaller and more focused JIRAs generally helps everyone understand better the scope of an issue/change. Can you please open such an issue? Also, can you please add a screenshot and clarify a bit? I guess in "Home directory section of the /admin page" you meant "/configure". Thanks!

          Closing per my last comment. Thanks for your understanding.

          Baptiste Mathus added a comment - Closing per my last comment. Thanks for your understanding.

          BTW, hence:

          This almost lead me to file a bug

          Generally feel free to do it. Filing issues/bugs with a clear scope and reproduction steps is a very valuable contribution .

          Baptiste Mathus added a comment - BTW, hence: This almost lead me to file a bug Generally feel free to do it. Filing issues/bugs with a clear scope and reproduction steps is a very  valuable contribution .

          Baptiste Mathus added a comment - Filed fix as https://github.com/jenkinsci/jenkins/pull/3621  FWIW

          batmat As you suggested I have now filed JENKINS-53549

          NB.: I felt it related too much to this original issue, hence I choose not to create a new, (different projects have different logics I guess...).

           

          I have assigned it to you, I don't know if that's appropriate or not (I'm sure you'll change in that case

           

           

           

          Thomas von Eyben added a comment - batmat  As you suggested I have now filed JENKINS-53549 NB.: I felt it related too much to this original issue, hence I choose not to create a new, (different projects have different logics I guess...).   I have assigned it to you, I don't know if that's appropriate or not (I'm sure you'll change in that case      

          Thanks!

          Baptiste Mathus added a comment - Thanks!

            batmat Baptiste Mathus
            batmat Baptiste Mathus
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: