Known issues

Known issues

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


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

Fixed in 2019.2.19

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.

Workaround:

  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):

    wget http://mirror.mirantis.com/update/2019.2.19/salt-formulas/xenial/pool/main/s/salt-formula-jenkins/salt-formula-jenkins_2017.8%2B202204261034.22b4455~xenial1_all.deb
    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
    

[36817] MySQL upgrade failure

Fixed in 2019.2.19

During the Galera upgrade to v5.7, the mysql-common package should be upgraded to version 5.7.35. If mysql-common 5.7.36 was already installed, the Deploy - upgrade Galera cluster Jenkins pipeline job may fail.

As a workaround, set the OS_DIST_UPGRADE flag in the parameters of the Deploy - upgrade Galera cluster Jenkins pipeline job.


[36733] Broken plugin dependencies after offline update

Fixed in 2019.2.19

Performing an offline update of DriveTrain to MCP maintenance update 2019.2.18 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.

Workaround:

  1. Download all required 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.

    Note

    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.

    Note

    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.