ow2-proactive / programming

ProActive Programming library
http://proactive.activeeon.com/
GNU Affero General Public License v3.0
7 stars 19 forks source link

When using pnp protocol a ProActive Runtime can enter in an inconsistent state and prevent the jvm to terminate due to an issue with netty #1073

Closed activeeon-bot closed 9 years ago

activeeon-bot commented 12 years ago

Original issue created by Vladimir Bodnartchouk on 27, Apr 2012 at 11:02 AM - PROACTIVE-1198


A ProActive Runtime that references an unc classapath, and uses pnp, if the classpath becomes inaccessible the netty non-daemon Hashed Wheel Timer thread does not terminate and keeps printing this output on stdout then even if the classapth becomes accessible, the incoherent state remains.

2012-04-27 10:44:40,437 - 27 avr. 2012 10:44:40 org.jboss.netty.util.HashedWheelTimer 2012-04-27 10:44:40,437 - ATTENTION: An exception was thrown by TimerTask. 2012-04-27 10:44:40,437 - java.util.zip.ZipError: jzentry == 0, 2012-04-27 10:44:40,437 - jzfile = 50769000, 2012-04-27 10:44:40,437 - total = 589, 2012-04-27 10:44:40,437 - name =
Optimus\ProActiveScheduling-3.1.2_server\dist\lib\netty-3.2.0.ALPHA2.jar, 2012-04-27 10:44:40,437 - i = 1, 2012-04-27 10:44:40,437 - message = null 2012-04-27 10:44:40,437 - at java.util.zip.ZipFile$2.nextElement(ZipFile.java:334) 2012-04-27 10:44:40,437 - at java.util.zip.ZipFile$2.nextElement(ZipFile.java:312) 2012-04-27 10:44:40,437 - at java.util.jar.JarFile$1.nextElement(JarFile.java:225) 2012-04-27 10:44:40,437 - at java.util.jar.JarFile$1.nextElement(JarFile.java:220) 2012-04-27 10:44:40,437 - at sun.misc.URLClassPath$JarLoader.validIndex(URLClassPath.java:720) 2012-04-27 10:44:40,437 - at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:856) 2012-04-27 10:44:40,437 - at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:765) 2012-04-27 10:44:40,437 - at sun.misc.URLClassPath.getResource(URLClassPath.java:169) 2012-04-27 10:44:40,437 - at java.net.URLClassLoader$1.run(URLClassLoader.java:194) 2012-04-27 10:44:40,437 - at java.security.AccessController.doPrivileged(Native Method) 2012-04-27 10:44:40,437 - at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 2012-04-27 10:44:40,453 - at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 2012-04-27 10:44:40,453 - at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 2012-04-27 10:44:40,453 - at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 2012-04-27 10:44:40,453 - at org.jboss.netty.channel.Channels.write(Channels.java:611) 2012-04-27 10:44:40,453 - at org.jboss.netty.channel.Channels.write(Channels.java:578) 2012-04-27 10:44:40,453 - at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:251) 2012-04-27 10:44:40,453 - at org.objectweb.proactive.extensions.pnp.PNPServerHandler$Heartbeater.run(PNPServerHandler.java:212) 2012-04-27 10:44:40,453 - at org.jboss.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:521) 2012-04-27 10:44:40,453 - at org.jboss.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:440) 2012-04-27 10:44:40,453 - at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:379) 2012-04-27 10:44:40,453 - at java.lang.Thread.run(Thread.java:662)

activeeon-bot commented 12 years ago

Original comment posted by Arnaud Contes on 20, Jul 2012 at 10:38 AM


while I understand this is problematic, this kind of issue is not really related to pnp. This behavior occurs for any classloader trying to load a class from a vanished or invalid jar file. I do not think there is something we can do about that. I do not know any application that behaves correctly if you remove a part of it at runtime.