Bamboo fails to start with "More than one fragment with the name [spring_web] was found" after upgrade with Windows installer

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

    

Summary

After attempting to upgrade Bamboo using the Windows installer, the process tops and nothing is written to the $BAMBOO_HOME\logs\atlassian-bamboo.log file. An error: "More than one fragment with the name [spring_web] was found."  is logged to the  $BAMBOO_INSTALL\logs\catalina* files

Environment

  • Windows using the installer MSI

Diagnosis

Inspecting the $BAMBOO_INSTALL\logs\catalina*  files show the below error:

03-Jan-2022 15:13:48.761 SEVERE [Catalina-startStop-1] org.apache.catalina.core.ContainerBase.startInternal A child container failed during start
	java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
		at java.util.concurrent.FutureTask.report(FutureTask.java:122)
...
	Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
		at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
		... 6 more
	Caused by: java.lang.IllegalArgumentException: More than one fragment with the name [spring_web] was found. This is not legal with relative ordering. See section 8.2.2 2c of the Servlet specification for details. Consider using absolute ordering.
		at org.apache.tomcat.util.descriptor.web.WebXml.orderWebFragments(WebXml.java:2203)
..
		at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
		... 6 more

Cause

When executing a rolling upgrade of Bamboo using the windows installer to the same installation folder as the previous installation, old files can fail to be cleaned up causing duplicate libraries of different versions to be present on the classpath.

Solution

This method involves removing all Bamboo installation files related files from $BAMBOO_INSTALL and starting from a fresh directory. If you are unclear on the difference between your Bamboo install and Bamboo home directory, it may be beneficial to read the documentation as it's very important that the Bamboo home directory is not removed:

  1. Please ensure you backup any configuration files within the installation folder such as $BAMBOO_INSTALL\conf\server.xml or $BAMBOO_INSTALL\bin\setenv.bat that may have customizations applied.
  2. Uninstall the Bamboo installation files/binaries.
    • (warning) Be sure to keep your $BAMBOO_HOME directory as it contains state / your data which is needed for an upgrade.
  3. Ensure there are no binary files left within $BAMBOO_INSTALL 
  4. Reinstall Bamboo binaries using the installer.

Alternatively, you could reinstall to a completely separate directory rather than re-using the old one.

Last modified on Feb 10, 2022

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.