[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [virgo-dev] Issues upgrading Tomcat in Virgo v3.7.2

Hi,

This is fixed in the current Gemini Web 3.0.4 snapshot [1] which currently is based on Tomcat 8.5.24.
We (Tomcat community) currently are voting Tomcat 8.5.28. Once it is released I'll release Gemini Web 3.0.4 with that version.
Then it will be updated in Virgo.

Regards,
Violeta

[1]Âhttps://github.com/eclipse/gemini.web.gemini-web-container/commits/master

2018-02-08 18:45 GMT+02:00 Aleksandar Kanchev <kancheva@xxxxxxxxxx>:

Hi Virgo devs,

Â

As you might remember, I have contacted you previously with issues and queries around Virgo. My name is Aleksandar and my team is using the Virgo server extensively for one of our projects.

Â

We are currently using latest Virgo (3.7.2), but we have identified a few security flaws in the embedded Tomcat (v8.5.16), so weâve been trying to upgrade to latest Tomcat. The change is trivial â we have just changed the Tomcat version in the main gradle.properties file and rebuilt the project to produce an updated Virgo (diff is attached).

Â

However, after this change our application wonât start. We are seeing the following error:

Â

[2018-02-08T14:31:56.043+02:00] [ERROR] start-signalling-1ÂÂÂÂÂÂÂÂÂÂÂ org.apache.catalina.core.ContainerBaseÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ContainerBase.addChild: start:Â org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].ExtendedStandardContext[/ui]]

ÂÂÂ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:167)

ÂÂÂ at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)

ÂÂÂ at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)

ÂÂÂ at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)

ÂÂÂ at org.eclipse.gemini.web.tomcat.internal.TomcatServletContainer.startWebApplication(TomcatServletContainer.java:125)

ÂÂÂ at org.eclipse.gemini.web.internal.StandardWebApplication.start(StandardWebApplication.java:109)

ÂÂÂ at org.eclipse.virgo.web.core.internal.WebBundleLifecycleListener.onStarted(WebBundleLifecycleListener.java:122)

ÂÂÂ at org.eclipse.virgo.kernel.install.artifact.internal.StandardArtifactStateMonitor.onStarted(StandardArtifactStateMonitor.java:271)

ÂÂÂ at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.asyncStartSucceeded(AbstractInstallArtifact.java:319)

ÂÂÂ at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact.access$0(AbstractInstallArtifact.java:316)

ÂÂÂ at org.eclipse.virgo.kernel.install.artifact.internal.AbstractInstallArtifact$StateMonitorSignal.signalSuccessfulCompletion(AbstractInstallArtifact.java:252)

ÂÂÂ at org.eclipse.virgo.nano.core.internal.BundleStartTracker$1.run(BundleStartTracker.java:140)

ÂÂÂ at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

ÂÂÂ at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

ÂÂÂ at java.lang.Thread.run(Thread.java:745)

Caused by: java.lang.IllegalStateException: java.io.FileNotFoundException: bundleentry:\265.fwk1301352406\WEB-INF\lib\jstl-1.2.jar (The filename, directory name, or volume label syntax is incorrect)

ÂÂÂ at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.isMultiRelease(AbstractSingleArchiveResourceSet.java:121)

ÂÂÂ at org.apache.catalina.webresources.AbstractArchiveResourceSet.getResource(AbstractArchiveResourceSet.java:258)

ÂÂÂ at org.apache.catalina.webresources.StandardRoot.getResourcesInternal(StandardRoot.java:327)

 ÂÂat org.apache.catalina.webresources.CachedResource.validateResources(CachedResource.java:127)

ÂÂÂ at org.apache.catalina.webresources.Cache.getResources(Cache.java:147)

ÂÂÂ at org.apache.catalina.webresources.StandardRoot.getResources(StandardRoot.java:315)

ÂÂÂ at org.apache.catalina.webresources.StandardRoot.getClassLoaderResources(StandardRoot.java:231)

ÂÂÂ at org.apache.catalina.util.ExtensionValidator.validateApplication(ExtensionValidator.java:147)

ÂÂÂ at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5015)

ÂÂÂ at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

ÂÂÂ ... 14 common frames omitted

Caused by: java.io.FileNotFoundException: bundleentry:\265.fwk1301352406\WEB-INF\lib\jstl-1.2.jar (The filename, directory name, or volume label syntax is incorrect)

ÂÂÂ at java.util.zip.ZipFile.open(Native Method)

ÂÂÂ at java.util.zip.ZipFile.<init>(ZipFile.java:219)

ÂÂÂ at java.util.zip.ZipFile.<init>(ZipFile.java:149)

ÂÂÂ at java.util.jar.JarFile.<init>(JarFile.java:166)

ÂÂÂ at java.util.jar.JarFile.<init>(JarFile.java:130)

ÂÂÂ at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:188)

ÂÂÂ at org.apache.tomcat.util.compat.JreCompat.jarFileNewInstance(JreCompat.java:173)

ÂÂÂ at org.apache.catalina.webresources.AbstractArchiveResourceSet.openJarFile(AbstractArchiveResourceSet.java:316)

ÂÂÂ at org.apache.catalina.webresources.AbstractSingleArchiveResourceSet.isMultiRelease(AbstractSingleArchiveResourceSet.java:116)

ÂÂÂ ... 23 common frames omitted

Â

This happens even though the above jar exists and both the name and the path are the same as the ones mentioned above. Furthermore, this error occurs only for bundles, that have their dependencies (other jars) packaged inside them (e.g inside the WEB-INF/lib folder).

Â

After spending a considerable amount of time debugging this issue, it seems that Tomcat is now executing some extra code that it wasnât executing before. As part of a so-called âmulti-releaseâ check it is trying to open the above jar and check if it is a multi-release jar (a Java 9 notion). This is where things fail. I have tried running the nested jar scenario on a vanilla Tomcat and it seems to work. The reason is that in a vanilla Tomcat the path to the nested jar is passed in as an absolute path (e.g. C:\<tomcat-install-dir>\webapps\<my-app>\WEB-INF\lib\<jar-file>), while as you can see in the case of Virgo it is being passed in as a bundle entry URI (e.g. bundleentry:\265.fwk1301352406\WEB-INF\lib\jstl-1.2.jar).

Â

For reference see:

Â

So, I have a couple of questions:

  1. Have you guys tried upgrading to latest Tomcat? Have you hit similar issues? Do you plan on releasing a new version with newer Tomcat anytime soon?
  2. Could I get some help with this issue? Seems like the latest changes in Tomcat have caused a regression in Virgo.

Â

Thanks,

Aleksandar Kanchev