You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by tschuler <th...@opentext.com> on 2014/02/04 13:26:14 UTC
Blocked threads in URLClassLoaderFirst
Hi!
We use TomEE 1.6.0.
We are facing a serious problem in URLClassLoaderFirst as threads get
blocked:
Blocking thread:
---------------
"http-bio-28080-exec-3" - Thread t@795
java.lang.Thread.State: RUNNABLE
at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
at java.io.File.exists(File.java:733)
at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:999)
at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at
org.apache.openejb.util.classloader.URLClassLoaderFirst.loadInternal(URLClassLoaderFirst.java:164)
at
org.apache.openejb.util.classloader.URLClassLoaderFirst.loadClass(URLClassLoaderFirst.java:117)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at serp.util.Strings.toClass(Strings.java:162)
at serp.util.Strings.toClass(Strings.java:108)
at org.apache.openjpa.kernel.QueryImpl.toClass(QueryImpl.java:1691)
at org.apache.openjpa.kernel.QueryImpl.classForName(QueryImpl.java:1650)
[...]
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
- locked <a0759a6> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
JNI locked monitors:
- locked <3916386e> (a
org.apache.openejb.util.classloader.URLClassLoaderFirst)
One of the blocked threads:
---------------------------
"http-bio-28080-exec-21" - Thread t@4374
java.lang.Thread.State: BLOCKED
at java.lang.Class.forName0(Native Method)
- waiting to lock <3916386e> (a
org.apache.openejb.util.classloader.URLClassLoaderFirst) owned by
"http-bio-28080-exec-42" t@8262
at java.lang.Class.forName(Class.java:247)
at serp.util.Strings.toClass(Strings.java:162)
at serp.util.Strings.toClass(Strings.java:108)
at org.apache.openjpa.kernel.QueryImpl.toClass(QueryImpl.java:1691)
at org.apache.openjpa.kernel.QueryImpl.classForName(QueryImpl.java:1633)
at
org.apache.openjpa.kernel.ExpressionStoreQuery$1.classForName(ExpressionStoreQuery.java:113)
[...]
at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
- locked <5eb38f30> (a org.apache.tomcat.util.net.SocketWrapper)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
What can be done to avoid the blocking?
Best regards,
T
--
View this message in context: http://openejb.979440.n4.nabble.com/Blocked-threads-in-URLClassLoaderFirst-tp4667476.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: Blocked threads in URLClassLoaderFirst
Posted by Andy <ag...@tomitribe.com>.
Can you share a full thread dump - I think there may be an issue, but
would like to see the full picture.
Andy.
Re: Blocked threads in URLClassLoaderFirst
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi
I think both properties are for embedded mode only. The classloader is
well done but few classes are skipped from the webapp (jvm and
container...but sometimes some name(s) can conflict)
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau
2014-02-05 tschuler <th...@opentext.com>:
> Hi Romain!
>
> It is Microsoft Windows Server 2008 R2 Enterprise, 64 bit (Java 1.7.0_21).
>
> BTW: Which classpath is used for classloading if no changes there done to
> openejb.deployments.package settings?
>
> I think default is:
> openejb.deployments.package.include = .*
> openejb.deployments.package.exclude =
>
> Best regards,
> Thomas
>
>
>
> --
> View this message in context: http://openejb.979440.n4.nabble.com/Blocked-threads-in-URLClassLoaderFirst-tp4667476p4667499.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: Blocked threads in URLClassLoaderFirst
Posted by Andy <an...@orprovision.com>.
Thomas,
I've commited a potential fix in the TomEE trunk:
https://svn.apache.org/repos/asf/tomee/tomee/trunk
If you could test your app on it that would help.
Andy.
Re: Blocked threads in URLClassLoaderFirst
Posted by tschuler <th...@opentext.com>.
Hi Romain!
It is Microsoft Windows Server 2008 R2 Enterprise, 64 bit (Java 1.7.0_21).
BTW: Which classpath is used for classloading if no changes there done to
openejb.deployments.package settings?
I think default is:
openejb.deployments.package.include = .*
openejb.deployments.package.exclude =
Best regards,
Thomas
--
View this message in context: http://openejb.979440.n4.nabble.com/Blocked-threads-in-URLClassLoaderFirst-tp4667476p4667499.html
Sent from the OpenEJB User mailing list archive at Nabble.com.
Re: Blocked threads in URLClassLoaderFirst
Posted by Romain Manni-Bucau <rm...@gmail.com>.
Hi
this is a windows issue. You surely have something (IDE? Console? ...)
locking the file the classloader is trying to access. Tomcat has
antiJARLocking option btw, not sure it would help that much but was
originally intended for it (I can't recall if they removed it in last
version or not but was under discussion if I'm not mistaken).
BTW which windows do you use? XP?
Romain Manni-Bucau
Twitter: @rmannibucau
Blog: http://rmannibucau.wordpress.com/
LinkedIn: http://fr.linkedin.com/in/rmannibucau
Github: https://github.com/rmannibucau
2014-02-04 tschuler <th...@opentext.com>:
> Hi!
>
> We use TomEE 1.6.0.
> We are facing a serious problem in URLClassLoaderFirst as threads get
> blocked:
>
>
> Blocking thread:
> ---------------
>
> "http-bio-28080-exec-3" - Thread t@795
> java.lang.Thread.State: RUNNABLE
> at java.io.WinNTFileSystem.getBooleanAttributes(Native Method)
> at java.io.File.exists(File.java:733)
> at sun.misc.URLClassPath$FileLoader.getResource(URLClassPath.java:999)
> at sun.misc.URLClassPath.getResource(URLClassPath.java:169)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> at
> org.apache.openejb.util.classloader.URLClassLoaderFirst.loadInternal(URLClassLoaderFirst.java:164)
> at
> org.apache.openejb.util.classloader.URLClassLoaderFirst.loadClass(URLClassLoaderFirst.java:117)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> at java.lang.Class.forName0(Native Method)
> at java.lang.Class.forName(Class.java:247)
> at serp.util.Strings.toClass(Strings.java:162)
> at serp.util.Strings.toClass(Strings.java:108)
> at org.apache.openjpa.kernel.QueryImpl.toClass(QueryImpl.java:1691)
> at org.apache.openjpa.kernel.QueryImpl.classForName(QueryImpl.java:1650)
> [...]
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> - locked <a0759a6> (a org.apache.tomcat.util.net.SocketWrapper)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
> JNI locked monitors:
> - locked <3916386e> (a
> org.apache.openejb.util.classloader.URLClassLoaderFirst)
>
>
> One of the blocked threads:
> ---------------------------
>
> "http-bio-28080-exec-21" - Thread t@4374
> java.lang.Thread.State: BLOCKED
> at java.lang.Class.forName0(Native Method)
> - waiting to lock <3916386e> (a
> org.apache.openejb.util.classloader.URLClassLoaderFirst) owned by
> "http-bio-28080-exec-42" t@8262
> at java.lang.Class.forName(Class.java:247)
> at serp.util.Strings.toClass(Strings.java:162)
> at serp.util.Strings.toClass(Strings.java:108)
> at org.apache.openjpa.kernel.QueryImpl.toClass(QueryImpl.java:1691)
> at org.apache.openjpa.kernel.QueryImpl.classForName(QueryImpl.java:1633)
> at
> org.apache.openjpa.kernel.ExpressionStoreQuery$1.classForName(ExpressionStoreQuery.java:113)
> [...]
> at
> org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
> at
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
> at
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> - locked <5eb38f30> (a org.apache.tomcat.util.net.SocketWrapper)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> at java.lang.Thread.run(Thread.java:662)
>
>
> What can be done to avoid the blocking?
>
> Best regards,
> T
>
>
>
> --
> View this message in context: http://openejb.979440.n4.nabble.com/Blocked-threads-in-URLClassLoaderFirst-tp4667476.html
> Sent from the OpenEJB User mailing list archive at Nabble.com.