Known issues

Known issues

This section contains the MCP 2019.2.17 known issues and workarounds. For other MCP known issues also applicable to MCP 2019.2.17, see Known issues and corresponding sections in the previous maintenance updates.

[36857] A ‘pipeline-library’ error after applying maintenance update

Due to a community issue causing incompatibility of several plugins with the current Jenkins version, a pipeline-library error occurs after applying MCP maintenance updates.


  1. Log in to the Salt Master node.

  2. Update the salt-formula-jenkins package to the version from the MCP maintenance update 2019.2.19 (or newer, if any):

    dpkg -i salt-formula-jenkins*.deb
  3. Refresh pillars and synchronize Salt modules:

    salt '*' saltutil.refresh_pillar
    salt '*' saltutil.sync_all
  4. Apply the jenkins.client.plugin state:

    salt -C "I@jenkins:client and not I@salt:master" state.sls jenkins.client.plugin
  5. Execute the following script to manually trigger Jenkins restart:

    JENKINS_USERNAME=$(salt --out newline_values_only -C 'I@jenkins:client and not I@salt:master' config.get jenkins:client:master:username)
    JENKINS_PASSWORD=$(salt --out newline_values_only -C 'I@jenkins:client and not I@salt:master' config.get jenkins:client:master:password)
    JENKINS_HOST=$(salt --out newline_values_only -C 'I@jenkins:client and not I@salt:master' config.get jenkins:client:master:host)
    JENKINS_PORT=$(salt --out newline_values_only -C 'I@jenkins:client and not I@salt:master' config.get jenkins:client:master:port)
    JENKINS_PROTO=$(salt --out newline_values_only -C 'I@jenkins:client and not I@salt:master' config.get jenkins:client:master:proto)
    cd $(mktemp -d)
    wget "${JENKINS_PROTO}://${JENKINS_HOST}:${JENKINS_PORT}/jnlpJars/jenkins-cli.jar"
    java -jar jenkins-cli.jar -s "${JENKINS_PROTO}://${JENKINS_HOST}:${JENKINS_PORT}" -auth "${JENKINS_USERNAME}:${JENKINS_PASSWORD}"  safe-restart
  6. Verify that Jenkins has successfully rebooted. The following command should return a list of plugins instead of a 50* error:

    java -jar jenkins-cli.jar -s "${JENKINS_PROTO}://${JENKINS_HOST}:${JENKINS_PORT}" -auth "${JENKINS_USERNAME}:${JENKINS_PASSWORD}" list-plugins
  7. Apply the changes:

    salt -C "I@jenkins:client and not I@salt:master" state.sls jenkins.client

[36736] Deprecated HAProxy user in MySQL database

Fixed in 2019.2.18

The MySQL database contains a deprecated HAProxy user without a password. Remove the user as described below.


  1. Log in to the Salt Master node.

  2. Remove the deprecated HAProxy user:

    salt -C "I@galera:master" "mysql --defaults-file=/etc/mysql/debian.cnf -D mysql -e "delete from user where user = 'haproxy'""

[36733] Broken plugin dependencies after offline update

Fixed in 2019.2.19

Performing an offline update of DriveTrain to MCP maintenance update 2019.2.17 using local mirrors leads to broken plugin dependencies. In this case, Jenkins jobs fail to load Git-based repositories that include pipeline-library, the entry point to all Jenkins pipeline jobs.


  1. Download the following plugins from a host with Internet access:

  2. Using any available tools and data channels, move all .hpi files to /root/temp_plugins/ of the DriveTrain LCM engine node (cid01).

  3. Log in to the cid01 node as root.

  4. Obtain the DriveTrain Jenkins endpoint and credentials:

    salt-call pillar.get jenkins:client:master

    Copy these elements to use in the commands that follow: Jenkins IP, port, login, password.

  5. Download the jenkins-cli client from the DriveTrain Jenkins to the /root folder:

    wget https://%JENKINS_IP%:%JENKINS_PORT%/jnlpJars/jenkins-cli.jar
  6. Verify that the jenkins-cli client is operating properly:

    java -jar jenkins-cli.jar -s https://%JENKINS_IP%:%JENKINS_PORT%/ -auth %JENKINS_LOGIN%:%JENKINS_PASSWORD% list-plugins

    The command output should include a list of all installed plugins and versions.


    In the steps that follow, assume that the .hpi files are located in the /root/temp_plugins directory.

  7. Copy the .hpi plugin files to the Docker volume.


    The CLI tool requires an accessible URI to install the plugin, file:// in the example below.

    rm -rf /srv/volumes/jenkins/fresh_plugins
    mkdir /srv/volumes/jenkins/fresh_plugins
    chmod 755 /srv/volumes/jenkins/fresh_plugins
    cd /root/temp_plugins
    cp *.hpi /srv/volumes/jenkins/fresh_plugins/
    chmod 644 /srv/volumes/jenkins/fresh_plugins/*.hpi
  8. Install the plugins:

    ls *.hpi | xargs -tI{} java -jar ../jenkins-cli.jar -s https://%JENKINS_IP%:%JENKINS_PORT%/ -auth %JENKINS_LOGIN%:%JENKINS_PASSWORD% install-plugin file:///var/jenkins_home/fresh_plugins/{}
  9. Remove the temporary folder from the Docker volume:

    rm -rf /srv/volumes/jenkins/fresh_plugins
  10. Reboot Jenkins:

    cd /root/
    java -jar jenkins-cli.jar -s https://%JENKINS_IP%:%JENKINS_PORT%/ -auth %JENKINS_LOGIN%:%JENKINS_PASSWORD% safe-restart

    Rebooting requires some time. During this time, Jenkins responds with 503 errors.

  11. Verify the successful rebooting of Jenkins:

    java -jar jenkins-cli.jar -s https://%JENKINS_IP%:%JENKINS_PORT%/ -auth %JENKINS_LOGIN%:%JENKINS_PASSWORD% list-plugins

    If Jenkins is up and running, the output will include plugins in the place of Java tracebacks.