tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cesar Hernandez (JIRA)" <j...@apache.org>
Subject [jira] [Assigned] (TOMEE-2564) Classpath with :: on Linux is cause an infinite loop on War deploy
Date Mon, 29 Jul 2019 21:11:00 GMT

     [ https://issues.apache.org/jira/browse/TOMEE-2564?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Cesar Hernandez reassigned TOMEE-2564:
--------------------------------------

    Assignee: Cesar Hernandez

> 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: Cesar Hernandez
>            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)

Mime
View raw message