-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
Operating Systems:
Master - CentOS Linux release 7.2.1511
Windows slave node - Windows Server 2012 RS Standard 64-bit
Logs - var/log/jenkins/jenkins.log
Jenkins version: ver.2.164.1
Installed Plugins:
Active Directory plugin - 2.12
Analysis Model API Plug-in - 4.0.0
AnsiColor - 0.6.2
Ant Plugin - 1.9
Any Build Step Plugin - 0.1
Apache HttpComponents Client 4.x API Plugin - 4.5.5-3.0
Artifactory Plugin - 3.2.1
Authentication Tokens API Plugin - 1.3
Autofavorite for Blue Ocean - 1.2.3
Bitbucket Branch Source Plugin - 2.4.2
Bitbucket Build Status Notifier Plugin - 1.4.1
Bitbucket Pipeline for Blue Ocean - 1.13.2
Stash Notifier - 1.17
Black Duck Hub Plugin - 4.0.0
Blue Ocean - 1.13.2
Blue Ocean Core JS - 1.13.2
Blue Ocean Executor Info - 1.13.2
Blue Ocean Pipeline Editor - 1.13.2
bouncycastle API Plugin - 2.17
Branch API Plugin - 2.2.0
Build Blocker Plugin - 1.7.3
Build Timeout - 1.19
built-on-column - 1.1
Command Agent Launcher Plugin - 1.3
Common API for Blue Ocean - 1.13.2
Conditional BuildStep - 1.3.6
Config API for Blue Ocean - 1.13.2
Config File Provider Plugin - 3.6
Copy Artifact Plugin - 1.42
Credentials Binding Plugin - 1.18
Credentials Plugin - 2.1.18
Cucumber json test reporting. - 0.10.1
Cucumber reports - 4.5.0
CVS Plug-in - 2.14
Dashboard for Blue Ocean - 1.13.2
description setter plugin - 1.10
Design Language - 1.13.2
Display URL API - 2.3.1
Display URL for Blue Ocean - 2.2.0
Docker Commons Plugin - 1.13
Docker Pipeline - 1.17
Durable Task Plugin - 1.29
elastic-axis - 1.2
Email Extension Plugin - 2.66
EnvInject API Plugin - 1.5
Environment Injector Plugin - 2.1.6
Events API for Blue Ocean - 1.13.2
Extended Read Permission Plugin - 2.0
External Monitor Job Type Plugin - 1.7
EZ Templates - 1.3.2
Favorite - 2.3.2
FindBugs Plug-in - 5.0.0
Flexible Publish Plugin - 0.15.2
Folders Plugin - 6.7
Git plugin - 3.9.3
Git client plugin - 2.7.6
Git Pipeline for Blue Ocean - 1.13.2
GIT server Plugin - 1.7
GitHub API Plugin - 1.95
GitHub Branch Source Plugin - 2.4.5
GitHub Organization Folder Plugin - 1.6
GitHub Pipeline for Blue Ocean - 1.13.2
GitHub plugin - 1.29.4
Gradle Plugin - 1.31
Green Balls - 1.15
Groovy - 2.2
Handy Uri Templates 2.x API Plugin - 2.1.7-1.0
HTML Publisher plugin - 1.18
i18n for Blue Ocean - 1.13.2
Icon Shim Plugin - 2.0.3
InfluxDB Plugin - 1.20.4
Ivy Plugin - 2.0
Jackson 2 API Plugin - 2.9.8
JaCoCo plugin - 3.0.4
Javadoc Plugin - 1.5
JavaScript GUI Lib: ACE Editor bundle plugin - 1.1
JavaScript GUI Lib: Handlebars bundle plugin - 1.1.1
JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin - 1.2.1
JavaScript GUI Lib: Moment.js bundle plugin - 1.1.1
JAXB plugin - 2.3.0.1
JDK Tool Plugin - 1.2
JIRA plugin - 3.0.5
JIRA Integration for Blue Ocean - 1.13.2
JSch dependency plugin - 0.1.55
JUnit Plugin - 1.27
JWT for Blue Ocean - 1.13.2
LDAP Plugin - 1.20
Lockable Resources plugin - 2.5
Logstash - 2.3.0
Mailer Plugin - 1.23
MapDB API Plugin - 1.0.9.0
Mask Passwords Plugin - 2.12.0
Matrix Authorization Strategy Plugin - 2.3
Matrix Project Plugin - 1.14
Maven Integration plugin - 3.2
Mercurial plugin - 2.5
Metrics Plugin - 4.0.2.3
Monitoring - 1.76.0
MSBuild Plugin - 1.29
Multijob plugin - 1.32
Multiple SCMs plugin - 0.6
Next Build Number Plugin - 1.5
Nomad Plugin - 0.4
OWASP Markup Formatter Plugin - 1.5
PAM Authentication plugin - 1.4
Parallel Test Executor Plugin - 1.12
Parameterized Trigger plugin - 2.35.2
Personalization for Blue Ocean - 1.13.2
Pipeline - 2.6
Pipeline Graph Analysis Plugin - 1.9
Pipeline implementation for Blue Ocean - 1.13.2
Pipeline SCM API for Blue Ocean - 1.13.2
Pipeline Utility Steps - 2.3.0
Pipeline: API - 2.33
Pipeline: Basic Steps - 2.15
Pipeline: Build Step - 2.8
Pipeline: Declarative - 1.3.7
Pipeline: Declarative Agent API - 1.1.1
Pipeline: Declarative Extension Points API - 1.3.7
Pipeline: GitHub Groovy Libraries - 1.0
Pipeline: Groovy - 2.65
Pipeline: Input Step - 2.10
Pipeline: Job - 2.32
Pipeline: Milestone Step - 1.3.1
Pipeline: Model API - 1.3.7
Pipeline: Multibranch - 2.21
Pipeline: Nodes and Processes - 2.29
Pipeline: REST API Plugin - 2.10
Pipeline: SCM Step - 2.7
Pipeline: Shared Groovy Libraries - 2.13
Pipeline: Stage Step - 2.3
Pipeline: Stage Tags Metadata - 1.3.7
Pipeline: Stage View Plugin - 2.10
Pipeline: Step API - 2.19
Pipeline: Supporting APIs - 3.2
Plain Credentials Plugin - 1.5
Priority Sorter Plugin - 3.6.0
Prometheus metrics plugin - 2.0.0
promoted builds plugin - 3.2
Pub-Sub "light" Bus - 1.12
Rebuilder - 1.30
Resource Disposer Plugin - 0.12
REST API for Blue Ocean - 1.13.2
REST Implementation for Blue Ocean - 1.13.2
ruby-runtime - 0.13
Run Condition Plugin - 1.2
Rvm - 0.6
Safe Restart Plugin - 0.3
SCM API Plugin - 2.4.0
Script Security Plugin - 1.56
Server Sent Events (SSE) Gateway Plugin - 1.17
Splunk Plugin - 1.7.1
SSH Agent Plugin - 1.17
SSH Credentials Plugin - 1.15
SSH plugin - 2.6.1
SSH Slaves plugin - 1.29.4
Static Analysis Utilities - 1.95
Structs Plugin - 1.17
Subversion Plug-in - 2.12.1
TextFinder plugin - 1.10
Timestamper - 1.9
Token Macro Plugin - 2.7
Translation Assistance plugin - 1.16
UpdateSites Manager plugin - 2.0.0
user build vars plugin - 1.5
Variant Plugin - 1.2
View Job Filters - 2.1.1
Warnings Next Generation Plugin - 4.0.0
Web for Blue Ocean - 1.13.2
WMI Windows Agents Plugin - 1.4
Workspace Cleanup Plugin - 0.37Operating Systems: Master - CentOS Linux release 7.2.1511 Windows slave node - Windows Server 2012 RS Standard 64-bit Logs - var/log/jenkins/jenkins.log Jenkins version: ver.2.164.1 Installed Plugins: Active Directory plugin - 2.12 Analysis Model API Plug-in - 4.0.0 AnsiColor - 0.6.2 Ant Plugin - 1.9 Any Build Step Plugin - 0.1 Apache HttpComponents Client 4.x API Plugin - 4.5.5-3.0 Artifactory Plugin - 3.2.1 Authentication Tokens API Plugin - 1.3 Autofavorite for Blue Ocean - 1.2.3 Bitbucket Branch Source Plugin - 2.4.2 Bitbucket Build Status Notifier Plugin - 1.4.1 Bitbucket Pipeline for Blue Ocean - 1.13.2 Stash Notifier - 1.17 Black Duck Hub Plugin - 4.0.0 Blue Ocean - 1.13.2 Blue Ocean Core JS - 1.13.2 Blue Ocean Executor Info - 1.13.2 Blue Ocean Pipeline Editor - 1.13.2 bouncycastle API Plugin - 2.17 Branch API Plugin - 2.2.0 Build Blocker Plugin - 1.7.3 Build Timeout - 1.19 built-on-column - 1.1 Command Agent Launcher Plugin - 1.3 Common API for Blue Ocean - 1.13.2 Conditional BuildStep - 1.3.6 Config API for Blue Ocean - 1.13.2 Config File Provider Plugin - 3.6 Copy Artifact Plugin - 1.42 Credentials Binding Plugin - 1.18 Credentials Plugin - 2.1.18 Cucumber json test reporting. - 0.10.1 Cucumber reports - 4.5.0 CVS Plug-in - 2.14 Dashboard for Blue Ocean - 1.13.2 description setter plugin - 1.10 Design Language - 1.13.2 Display URL API - 2.3.1 Display URL for Blue Ocean - 2.2.0 Docker Commons Plugin - 1.13 Docker Pipeline - 1.17 Durable Task Plugin - 1.29 elastic-axis - 1.2 Email Extension Plugin - 2.66 EnvInject API Plugin - 1.5 Environment Injector Plugin - 2.1.6 Events API for Blue Ocean - 1.13.2 Extended Read Permission Plugin - 2.0 External Monitor Job Type Plugin - 1.7 EZ Templates - 1.3.2 Favorite - 2.3.2 FindBugs Plug-in - 5.0.0 Flexible Publish Plugin - 0.15.2 Folders Plugin - 6.7 Git plugin - 3.9.3 Git client plugin - 2.7.6 Git Pipeline for Blue Ocean - 1.13.2 GIT server Plugin - 1.7 GitHub API Plugin - 1.95 GitHub Branch Source Plugin - 2.4.5 GitHub Organization Folder Plugin - 1.6 GitHub Pipeline for Blue Ocean - 1.13.2 GitHub plugin - 1.29.4 Gradle Plugin - 1.31 Green Balls - 1.15 Groovy - 2.2 Handy Uri Templates 2.x API Plugin - 2.1.7-1.0 HTML Publisher plugin - 1.18 i18n for Blue Ocean - 1.13.2 Icon Shim Plugin - 2.0.3 InfluxDB Plugin - 1.20.4 Ivy Plugin - 2.0 Jackson 2 API Plugin - 2.9.8 JaCoCo plugin - 3.0.4 Javadoc Plugin - 1.5 JavaScript GUI Lib: ACE Editor bundle plugin - 1.1 JavaScript GUI Lib: Handlebars bundle plugin - 1.1.1 JavaScript GUI Lib: jQuery bundles (jQuery and jQuery UI) plugin - 1.2.1 JavaScript GUI Lib: Moment.js bundle plugin - 1.1.1 JAXB plugin - 2.3.0.1 JDK Tool Plugin - 1.2 JIRA plugin - 3.0.5 JIRA Integration for Blue Ocean - 1.13.2 JSch dependency plugin - 0.1.55 JUnit Plugin - 1.27 JWT for Blue Ocean - 1.13.2 LDAP Plugin - 1.20 Lockable Resources plugin - 2.5 Logstash - 2.3.0 Mailer Plugin - 1.23 MapDB API Plugin - 1.0.9.0 Mask Passwords Plugin - 2.12.0 Matrix Authorization Strategy Plugin - 2.3 Matrix Project Plugin - 1.14 Maven Integration plugin - 3.2 Mercurial plugin - 2.5 Metrics Plugin - 4.0.2.3 Monitoring - 1.76.0 MSBuild Plugin - 1.29 Multijob plugin - 1.32 Multiple SCMs plugin - 0.6 Next Build Number Plugin - 1.5 Nomad Plugin - 0.4 OWASP Markup Formatter Plugin - 1.5 PAM Authentication plugin - 1.4 Parallel Test Executor Plugin - 1.12 Parameterized Trigger plugin - 2.35.2 Personalization for Blue Ocean - 1.13.2 Pipeline - 2.6 Pipeline Graph Analysis Plugin - 1.9 Pipeline implementation for Blue Ocean - 1.13.2 Pipeline SCM API for Blue Ocean - 1.13.2 Pipeline Utility Steps - 2.3.0 Pipeline: API - 2.33 Pipeline: Basic Steps - 2.15 Pipeline: Build Step - 2.8 Pipeline: Declarative - 1.3.7 Pipeline: Declarative Agent API - 1.1.1 Pipeline: Declarative Extension Points API - 1.3.7 Pipeline: GitHub Groovy Libraries - 1.0 Pipeline: Groovy - 2.65 Pipeline: Input Step - 2.10 Pipeline: Job - 2.32 Pipeline: Milestone Step - 1.3.1 Pipeline: Model API - 1.3.7 Pipeline: Multibranch - 2.21 Pipeline: Nodes and Processes - 2.29 Pipeline: REST API Plugin - 2.10 Pipeline: SCM Step - 2.7 Pipeline: Shared Groovy Libraries - 2.13 Pipeline: Stage Step - 2.3 Pipeline: Stage Tags Metadata - 1.3.7 Pipeline: Stage View Plugin - 2.10 Pipeline: Step API - 2.19 Pipeline: Supporting APIs - 3.2 Plain Credentials Plugin - 1.5 Priority Sorter Plugin - 3.6.0 Prometheus metrics plugin - 2.0.0 promoted builds plugin - 3.2 Pub-Sub "light" Bus - 1.12 Rebuilder - 1.30 Resource Disposer Plugin - 0.12 REST API for Blue Ocean - 1.13.2 REST Implementation for Blue Ocean - 1.13.2 ruby-runtime - 0.13 Run Condition Plugin - 1.2 Rvm - 0.6 Safe Restart Plugin - 0.3 SCM API Plugin - 2.4.0 Script Security Plugin - 1.56 Server Sent Events (SSE) Gateway Plugin - 1.17 Splunk Plugin - 1.7.1 SSH Agent Plugin - 1.17 SSH Credentials Plugin - 1.15 SSH plugin - 2.6.1 SSH Slaves plugin - 1.29.4 Static Analysis Utilities - 1.95 Structs Plugin - 1.17 Subversion Plug-in - 2.12.1 TextFinder plugin - 1.10 Timestamper - 1.9 Token Macro Plugin - 2.7 Translation Assistance plugin - 1.16 UpdateSites Manager plugin - 2.0.0 user build vars plugin - 1.5 Variant Plugin - 1.2 View Job Filters - 2.1.1 Warnings Next Generation Plugin - 4.0.0 Web for Blue Ocean - 1.13.2 WMI Windows Agents Plugin - 1.4 Workspace Cleanup Plugin - 0.37
A description of the problem:
I have installed the MSBuild plugin (version 1.29). When configuring a MSBuild installation, if I try to configure an installer (using the "Install automatically" option and selecting "Extract .zip/.tar.gz"), the configuration doesn't get saved.
If I try from the "Global Tool Configuration" UI, after I hit the Save or Apply buttons and navigate away from the page (not just pressing the back button) and return to the Global Tool Configuration page, the Installer configuration for the MSBuild installation is no longer there. Additionally, checking the config file - hudson.plugins.msbuild.MsBuildBuilder.xml - inside Jenkins Master, the configuration doesn't get saved (or updated) at any point. This is how the xml appears:
<?xml version='1.1' encoding='UTF-8'?> <hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl plugin="msbuild@1.29"> <installations> <hudson.plugins.msbuild.MsBuildInstallation> <name>MSBuild</name> <home></home> <properties/> </hudson.plugins.msbuild.MsBuildInstallation> </installations> </hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl>
Alternatively, I also tried configuring the installer manually by editing the aforementioned xml file with the following configuration:
<?xml version='1.1' encoding='UTF-8'?><hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl plugin="msbuild@1.29"> <installations> <hudson.plugins.msbuild.MsBuildInstallation> <name>MSBuild</name> <home></home> <properties> <hudson.tools.InstallSourceProperty> <installers> <hudson.tools.ZipExtractionInstaller> <label>windows</label> <url>https://artifactoryurl/path/to/msbuild.zip</url> <subdir>msbuild</subdir> </hudson.tools.ZipExtractionInstaller> </installers> </hudson.tools.InstallSourceProperty> </properties> </hudson.plugins.msbuild.MsBuildInstallation> </installations> </hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl>
After saving the configuration file and restarting Jenkins, if I navigate to the "Global Tool Configuration" page and view my MSBuild Installation configuration, I am able to see the configurations for the Installer reflected on the page. However, if I navigate away from the page and come back, the Installer configuration disappears from the UI. Additionally, when checking the configuration file, I now see that the configurations that I had added manually is no longer there.
I should note that I couldn't capture any activity in the logs. However, I repeated the above steps and ran the following command: "$ find . -cmin -1" in the Jenkins HOME directory (where the config files live). I confirmed that no configurations were being written to any other files.
Additionally, I have tried the same steps above for my JDK installations. The configurations I set for the "Install automatically > "Extract .zip/.tar.gz" option does get saved and works properly.
Steps to reproduce from UI:
1. On Jenkins ver.2.164.1, install the MSBuild Plugin (version 1.29)
2. Navigate to Global Tool Configuration Jenkins -> Global Tool Configuration -> MSBuild
3. In the MSBuild section, click "Add MSBuild" and add a name to the "Name" field
4. Check the "Install automatically" option
5. Select "Extract .zip/.tar.gz"
6. In the Label field add "windows"
7. In the "Download URL for binary archive" add a proper url containing a zip file of the msbuild.exe
8. In the "Subdirectory of extracted archive" field add "msbuild"
9. Click the "Save" or "Apply" button. If you click "Apply", navigate away from the Global Tool Configuration page without using the back button.
10. Navigate back into the Global Tool Configuration page
Steps to reproduce from Master box:
- SSH into master
- cd to the HOME directory for Jenkins (the path for the Environment Variable: HOME)
- Edit and save the hudson.plugins.msbuild.MsBuildBuilder.xml with
<?xml version='1.1' encoding='UTF-8'?><hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl plugin="msbuild@1.29"> <installations> <hudson.plugins.msbuild.MsBuildInstallation> <name>MSBuild</name> <home></home> <properties> <hudson.tools.InstallSourceProperty> <installers> <hudson.tools.ZipExtractionInstaller> <label>windows</label> <url>https://artifactoryurl/path/to/msbuild.zip</url> <subdir>msbuild</subdir> </hudson.tools.ZipExtractionInstaller> </installers> </hudson.tools.InstallSourceProperty> </properties> </hudson.plugins.msbuild.MsBuildInstallation> </installations> </hudson.plugins.msbuild.MsBuildBuilder_-DescriptorImpl>
- Restart Jenkins
- In the UI, navigate to the Global Tool Configuration page
- Scroll down to the "MSBuild" section and click "MSBuild Installations..."
- The manual configurations should be reflected for the MSBuild installer
- Navigate out of "Global Tool Configuration" without pressing the back button
- Navigate back into "Global Tool Configuration".
- The configuration will no longer be there
- In Jenkins master, open the hudson.plugins.msbuild.MsBuildBuilder.xml file. The manual configurations saved earlier will no longer be there.