Amazon Linux Tomcat Upgrade Issue

Amazon Linux Tomcat Upgrade Issue


Issue Overview

Matillion updates via yum and uses the standard Amazon repositories for all dependencies not distributed via the Matillion yum repository, including tomcat. Amazon recently took the decision to package tomcat-8.5 in place of tomcat-8.0. However, both versions are packaged under the same name: tomcat8. Upgrading from one to the other is not currently possible.

 

While this is not a major problem for new installations, upgrading an older instance using a full yum update gives the following:

$ sudo yum update
... 
Error: tomcat80-el-3.0-api conflicts with tomcat8-el-3.0-api-8.5.23-1.75.amzn1.noarch
Error: tomcat80-lib conflicts with tomcat8-lib-8.5.23-1.75.amzn1.noarch
Error: tomcat80-jsp-2.3-api conflicts with tomcat8-jsp-2.3-api-8.5.23-1.75.amzn1.noarch
Error: tomcat80 conflicts with tomcat8-8.5.23-1.75.amzn1.noarch
Error: tomcat80-servlet-3.1-api conflicts with tomcat8-servlet-3.1-api-8.5.23-1.75.amzn1.noarch
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

 

Matillion upgrades via the UI work as expected, since they only update packages matching matillion-*. So, this only affects you if you launched your copy of Matillion ETL prior to 1.29, and have upgraded in-place since, and want to update all of the system package.

 

 

Issue Fix

Follow these steps to get back to a working state - after taking a backup of the instance, of course.

 

Remove the existing Tomcat8 packages, but don’t remove any dependencies like Matillion - we’ll want those packages again in a moment and don’t want to remove and re-install Matillion:

$ sudo rpm -e --nodeps tomcat8 tomcat8-el-3.0-api tomcat8-jsp-2.3-api tomcat8-lib tomcat8-servlet-3.1-api

 

Reinstall the base package - this will pull all those packages back in, but with correct versions

$ sudo yum install tomcat8

 

The uninstall removed the server configuration, but backed up the important files. Restore them:

$ sudo sh -c 'for CONFFILE in tomcat8.conf tomcat-users.xml server.xml context.xml; do cp /etc/tomcat8/$CONFFILE.rpmsave /etc/tomcat8/$CONFFILE; done'

 

Ensure we restore access to key configuration files:

$ sudo /usr/local/bin/matillion_ensure.sh 

 

Ensure the Tomcat service starts correctly on reboot:

$ sudo chkconfig --level 234 tomcat8 on

 

And finally restart Tomcat:

$ sudo service tomcat8 restart

 

For further assistance with this issue, do not hesitate to Contact Matillion Support.