-
Bug
-
Resolution: Fixed
-
Blocker
-
Jenkins 2.277.1, Windows 10, Perforce 1.3.36
-
Powered by SuggestiMate
I upgraded from Jenkins 2.263.4 to 2.277.1 on 03/24/2021.
After this upgrade I could no longer save my matrix configuration jobs, and the tabs at the to of the page where incorrect.
Selecting Save or Apply does nothing.
The following image illustrates the problems. Notice that that the tabs are incorrect, and it's missing tabs for the Build section and the Post build operations. Moreover, there is some stuff squashed to the side of the screen under Build Triggers.
[JENKINS-65223] Legacy perforce-plugin (not p4-plugin) does not work with tables-to-divs
Hello basil.
I identified the matrix plugin version in the environment section. Are you saying you want a list of all of the plugins?
Assuming you want the entire list, this is the the plugin list (reverted back to the 2.363.4 stage. This is a highly used system and I couldn't leave it in a broken state. The only differrence between this list now and when the problem occurred was that I fell back to plugin versions that work with 2.363.4
Jenkins: 2.263.4
OS: Windows 8.1 - 6.3
—
- ace-editor:1.1
- ant:1.11
- antisamy-markup-formatter:2.1
- apache-httpcomponents-client-4-api:4.5.13-1.0
- authentication-tokens:1.4
- bootstrap4-api:4.6.0-2
- bouncycastle-api:2.20
- branch-api:2.6.2
- build-blocker-plugin:1.7.7
- build-pipeline-plugin:1.5.8
- build-publisher:1.22
- build-timeout:1.20
- build-with-parameters:1.5
- buildresult-trigger:0.17
- built-on-column:1.1
- call-remote-job-plugin:1.0.21
- checks-api:1.6.1
- cloudbees-folder:6.15
- command-launcher:1.5
- conditional-buildstep:1.4.1
- credentials-binding:1.24
- credentials:2.3.15
- cvs:2.18
- description-setter:1.10
- display-url-api:2.3.4
- docker-commons:1.17
- docker-workflow:1.26
- doclinks:0.6.1
- doxygen:0.18
- durable-task:1.35
- echarts-api:5.0.1-1
- email-ext:2.82
- envfile:1.2
- envinject-api:1.7
- envinject:2.3.0
- extended-choice-parameter:0.82
- extended-read-permission:3.2
- external-monitor-job:1.7
- folder-properties:1.2.1
- font-awesome-api:5.15.2-2
- git-client:3.7.0
- git-server:1.9
- git:4.7.0
- greenballs:1.15.1
- handlebars:3.0.8
- icon-shim:2.0.3
- jackson2-api:2.12.1
- javadoc:1.6
- jdk-tool:1.5
- jenkins-multijob-plugin:1.36
- job-import-plugin:3.4
- job-restrictions:0.8
- jquery-detached:1.2.1
- jquery:1.12.4-1
- jquery3-api:3.5.1-3
- jsch:0.1.55.2
- junit:1.49
- ldap:1.26
- mailer:1.34
- mapdb-api:1.0.9.0
- matrix-auth:2.6.6
- matrix-combinations-parameter:1.3.1
- matrix-project:1.18
- maven-plugin:3.8
- momentjs:1.1.1
- nodelabelparameter:1.7.2
- p4:1.11.3
- pam-auth:1.6
- Parameterized-Remote-Trigger:3.1.5.1
- parameterized-trigger:2.39
- perforce:1.3.36
- pipeline-input-step:2.12
- pipeline-model-api:1.8.4
- pipeline-model-definition:1.8.4
- pipeline-model-extensions:1.8.4
- pipeline-stage-step:2.5
- pipeline-stage-tags-metadata:1.8.4
- plain-credentials:1.7
- plugin-usage-plugin:1.2
- plugin-util-api:2.1.0
- popper-api:1.16.1-2
- rebuild:1.32
- remote-jobs-view-plugin:0.0.3
- resource-disposer:0.15
- role-strategy:3.1.1
- run-condition:1.5
- scm-api:2.6.4
- script-security:1.76
- shelve-project-plugin:3.1
- snakeyaml-api:1.27.0
- ssh-credentials:1.18.1
- ssh-slaves:1.31.5
- ssh:2.6.1
- statusmonitor:1.3
- strawboss:1.3
- structs:1.22
- subversion:2.14.0
- text-finder:1.15
- timestamper:1.12
- token-macro:2.13
- translation:1.16
- trilead-api:1.0.13
- variant:1.4
- windows-slaves:1.7
- workflow-api:2.42
- workflow-basic-steps:2.23
- workflow-cps-global-lib:2.18
- workflow-cps:2.90
- workflow-durable-task-step:2.38
- workflow-job:2.40
- workflow-multibranch:2.22
- workflow-scm-step:2.12
- workflow-step-api:2.23
- workflow-support:3.8
- ws-cleanup:0.39
The upgrade steps I followed where:
- upgrade Jenkins from 2.363.4 to 2.277.1
- upgraded all compatible plugins
After that I attempted to edit a Matrix Configuration job and observed the problem that was reported.
I looked at the issues reported in the list of known broken tables-to-divs plugins dashboard. I don't use any of these reported plugins.
I will look into the detailed debugging steps that you've recommended.
I tried the minimal Jenkins steps from "Some plugins are known to be broken"
I have the problems on a Windows server, and those instructions are only relevant to a Linux server. Regardless, I did the actions on a Linux server but the problem doesn't reproduce.
Is there a similar method that can be done for a minimal windows server?
I figured out a way to do it for windows.
- mkdir <desktop>\JenkinsIssue
- Copy the .war files downloaded for Linux to Windows::<desktop>\JenkinsIssue
- start command prompt in <desktop>\JenkinsIssue
- set JENKINS_HOME=%CD%\HOME
- java -jar jenkins-plugin-manager-2.2.0.jar -f plugins.txt -d %JENKINS_HOME%/plugins --war jenkins.war
- java -jar jenkins.war
Unfortunately the problem does not occur when I do this on Windows either. Is there some other way to debug/drill deeper into this issue?
Hi rocha_stratovan, I'm glad you were able to figure out how to create a minimal Jenkins installation on Windows. In order to solve this problem, we're going to first have to figure out a way to reproduce the issue from scratch on a minimal Jenkins installation. So let's make sure your minimal Jenkins installation is running exactly the same version of Jenkins and plugins as the broken production instance was. Make sure you're using the 2.277.1 WAR from https://get.jenkins.io/war-stable/2.277.1/jenkins.war and that you've upgraded all plugins to the latest version within your minimal Jenkins install.
At that point, try to come up with a series of steps that reproduce the problem. This is key. Start by creating a simple job and then start adding configuration from your production installation until the minimal installation reproduces the problem. At that point please report the steps to reproduce and then begin the exercise of disabling/enabling plugins until the problematic one is discovered.
Thank you for you patience/guidance/tutelage.
I found the failing plugin: Perforce plugin
I reproduced my problem with a copy of the production. The steps for this as well as the method for zeroing in on the failing plugin are described below.
- Copy production Jenkins to temporary machine
We have a master/slave scenario, but the slaves are started with SSH and so the temporary setup won't actually connect to the slave machine because it doesn't have the SH keys.
- Start git bash on windows machine
- navigate to my jenkins root
- $ tar -cvf /c/temp/jenkins.tar --exclude="/builds/" --exclude="/.git/" --exclude="/workspace/" --exclude="-Doc/" --exclude="shelvedProjects/" *
- Copy tarball to test machine
- Detar
- Start git bash on windows machine
- Start jenkins 2.277.1
java -jar jenkins.war
- Upgrade all available/compatible plugins
- Attempt to create freestyle project – FAILS
- Disable all plugins by touching <plugin>,jpi.disabled
- Attempt to create freestyle project – SUCCESS
- Enable plugins that begin with "t-z" – SUCCESS
- Enable plugins that begin with "p-s" – FAIL
- Disable plugins that begin with "p" – SUCCESS
./p4.jpi.disabled ./pam-auth.jpi.disabled ./Parameterized-Remote-Trigger.jpi.disabled ./parameterized-trigger.jpi.disabled ./perforce.jpi.disabled ./pipeline-input-step.jpi.disabled ./pipeline-model-api.jpi.disabled ./pipeline-model-definition.jpi.disabled ./pipeline-model-extensions.jpi.disabled ./pipeline-stage-step.jpi.disabled ./pipeline-stage-tags-metadata.jpi.disabled ./plain-credentials.jpi.disabled ./plugin-usage-plugin.jpi.disabled ./plugin-util-api.jpi.disabled ./popper-api.jpi.disabled
- Enable plugins that begin with "pipeline" – SUCCESS
./p4.jpi.disabled ./pam-auth.jpi.disabled ./Parameterized-Remote-Trigger.jpi.disabled ./parameterized-trigger.jpi.disabled ./perforce.jpi.disabled ./plain-credentials.jpi.disabled ./plugin-usage-plugin.jpi.disabled ./plugin-util-api.jpi.disabled ./popper-api.jpi.disabled
- Enable plugins that begin with "pl" – SUCCESS
./p4.jpi.disabled ./pam-auth.jpi.disabled ./Parameterized-Remote-Trigger.jpi.disabled ./parameterized-trigger.jpi.disabled ./perforce.jpi.disabled ./popper-api.jpi.disabled
- Enable plugins that begin with "param" – SUCCESS
./p4.jpi.disabled ./pam-auth.jpi.disabled ./perforce.jpi.disabled ./popper-api.jpi.disabled
- Enable plugins that begin with "p4" – SUCCESS
./pam-auth.jpi.disabled ./perforce.jpi.disabled ./popper-api.jpi.disabled
- Enable plugins that begin with "perforce" – fail FOUND ONE
./pam-auth.jpi.disabled ./popper-api.jpi.disabled
- Disable plugins that begin with "perforce"
Enable the other plugins that start with "p" – SUCCESS
- Enable all plugins except for "perforce.jpi" – SUCCESS
Great result! So we know that perforce-plugin is broken with tables-to-divs. The GitHub page says
Note: This has been deprecated in favor of the pure-java p4-plugin
so I would recommend simply disabling/uninstalling this plugin from your Jenkins installation. I can't find a component for perforce-plugin but I have moved this issue to the p4-plugin component as it is the closest component I can think of and added the tables-to-divs-regression label in the hope that this will help other users in the future.
Thank you basil.
After investigation I found that we no longer use the Perforce plugin. We had switched to p4 plugin awhile back – but the legacy plugin hadn't been deleted.
We are now able to proceed with the upgrade.
Cheers!
Hi rocha_stratovan, please provide the list of plugins installed on your system as suggested at "How to report a bug".
Please confirm that you followed the instructions in the Jenkins 2.277.1 upgrade guide, especially that you updated your plugins after installing Jenkins 2.277.1. If you did not upgrade your plugins, please do so, then report if the issue remains.
Please check the list of known broken tables-to-divs plugins dashboard. If you're using any of these plugins, please disable them (or wait to upgrade) and upvote the issue.
If you are not using any of the known broken plugins from that list, you can minimize your Jenkins installation to identify which plugin is the problem following the instructions here to disable plugins in groups of 10 until you determine which plugin is at fault. Then, file a new Jira issue, including steps to reproduce and screenshots and label it with 'tables-to-divs-regression'.