You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by "Cesar Hernandez (JIRA)" <ji...@apache.org> on 2019/07/29 21:16:00 UTC

[jira] [Comment Edited] (TOMEE-2564) Classpath with :: on Linux is cause an infinite loop on War deploy

    [ https://issues.apache.org/jira/browse/TOMEE-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16895588#comment-16895588 ] 

Cesar Hernandez edited comment on TOMEE-2564 at 7/29/19 9:15 PM:
-----------------------------------------------------------------

Hi [~cbos],

Thank you for reporting and providing the patch or this issue!

I see [https://github.com/apache/tomee/pull/506] was merged. The end of the ticket has a conversation around a test case, if the test case is viable, my opinion is that another ticket can be created  for further follow ups.

I assigned the ticket to you, let us know if this ticket can be marked as solved.

 

 


was (Author: cesarhernandezgt):
Hi [~cbos],

I see [https://github.com/apache/tomee/pull/506] was merged. The end of the ticket has a conversation around a test case, if the test case is viable, my opinion is that another ticket can be created  for further follow ups.

I assigned the ticket to you, let us know if this ticket can be marked as solved.

 

 

> Classpath with :: on Linux is cause an infinite loop on War deploy
> ------------------------------------------------------------------
>
>                 Key: TOMEE-2564
>                 URL: https://issues.apache.org/jira/browse/TOMEE-2564
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Core Server
>    Affects Versions: 8.0.0-M3
>            Reporter: Cees Bos
>            Assignee: Cees Bos
>            Priority: Critical
>              Labels: pull-request-available
>         Attachments: TomEE_classpath_split.png, TomEE_classpath_split2.png
>
>
> We faced an infinite loop on deploying a war. 
> I was able to debug the issue and found the cause.
> This is the bottom of the stacktrace:
> {code:java}
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsFile(ContextConfig.java:2059)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsFile(OpenEJBContextConfig.java:634)
> at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:2002)
> at org.apache.catalina.startup.OpenEJBContextConfig.processAnnotationsUrl(OpenEJBContextConfig.java:650)
> at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1952)
> at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1156)
> at org.apache.catalina.startup.OpenEJBContextConfig.webConfig(OpenEJBContextConfig.java:411)
> at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:765)
> - locked <0x0000000749921aa8> (a org.apache.catalina.startup.OpenEJBContextConfig)
> at org.apache.catalina.startup.OpenEJBContextConfig.configureStart(OpenEJBContextConfig.java:124)
> at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
> at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5007)
> - locked <0x00000007499211b0> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
> - locked <0x00000007499211b0> (a org.apache.catalina.core.StandardContext)
> at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)
> at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)
> at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)
> at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:986)
> at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1858)
> at java.util.concurrent.Executors$RunnableAdapter.call(java.base@11/Executors.java:515)
> at java.util.concurrent.FutureTask.run(java.base@11/FutureTask.java:264)
> at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
> at java.util.concurrent.AbstractExecutorService.submit(java.base@11/AbstractExecutorService.java:118)
> at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:772)
> at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)
> at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1629)
> at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:304)
> at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
> at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1176)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1398)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1402)
> at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1370)
> at java.lang.Thread.run(java.base@11/Thread.java:834){code}
> The problem is the place were the fragments are determined to scan.
> That is done in org.apache.tomee.loader.TomEEJarScanner#scan.
> In our case the classpath contains ::
> In setenv.sh we had a line like this:
> export CLASSPATH=/opt/tomee-8mp/lib/ojdbc8.jar:${CLASSPATH}
> But if CLASSPATH originally resolves to null, then it is empty.
> In attachment TomEE_classpath_split.png you can see that due to the split the 'jar' variable resolves to "".
> With the conversion to URL is results in file:/
>  !TomEE_classpath_split.png! 
> That you can see in TomEE_classpath_split2.png
>  !TomEE_classpath_split2.png! 
> During War deployment is scans the complete file system (that is a security risk, it can include whatever stuff now).
> Somehow on our server there was at some place a symlink to root, so it comes an a infinite loop.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)