Pivotal Knowledge Base

Follow

Embedded Tomcat Causing CF Push failure

Environment

 Product  Version
 Pivotal Cloud Foundry  All Supported Versions
 Spring Boot + Embedded Tomcat  1.4.0 + 8.5.4

Symptom

When a customer tries cf push an app that is built with Spring Boot 1.4.0 + Embedded Tomcat 8.5.4, it fails.

cf logs APP_NAME --recent shows the following error message:

2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.081 INFO 14 --- [ main] o.apache.catalina.core.StandardService : Starting service Tomcat
2017-05-09T03:24:15.08-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.086 INFO 14 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.4
2017-05-09T03:24:15.18-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.180 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
2017-05-09T03:24:15.33-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.329 WARN 14 --- [ost-startStop-1] org.apache.catalina.webresources.Cache : Unable to add the resource at [/WEB-INF/lib/aws-java-sdk-kms-1.11.119.jar] to the cache because there was insufficient free space available after evicting expired cache entries - consider increasing the maximum size of the cache
2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT 2017-05-09 07:24:15.686 ERROR 14 --- [cat-startStop-1] org.apache.catalina.core.ContainerBase : A child container failed during start
2017-05-09T03:24:15.69-0400 [APP/PROC/WEB/0]OUT java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]

Cause

This is caused by a resource caching bug in Spring Boot 1.4.0 with Embedded Tomcat 8.5.4.

This bug would be triggered whenever there is a .class or .jar file under /WEB-INF/lib/.

More details of this bug can be found here.

Resolution

The bug was fixed in Tomcat 8.5.5 (which is included in Spring Boot 1.4.1), so use Spring Boot 1.4.1 to rebuilt the app and cf push again.

Comments

Powered by Zendesk