Moving our email discussion to the forum. Jesper, me and Emanuel were seeing a JVM crash when the application was hot-deployed in a tight loop. This issue (the JVM crash and neither the IOException) does not occur in AS-4.2.x (not yet sure why) but appears to be happening in AS-5. Here's some details:
"Jesper" wrote : | Jesper Pedersen wrote: | > Hey. | > | > Repository information: | > | > svn co https://svn.jboss.org/repos/jbossprofiler/branches/JBossProfiler2 | > ant clean web | > cp dist/jboss-profiler.war AS5/deploy | > | > and surf to: | > | > localhost:8080/jboss-profiler/index.xhtml | > | > Just keep deploying the .WAR file in tight loop | > | > Best regards, | > Jesper | > | "jaikiran" wrote : | I have managed to narrow this down to the VFS handling of ZipFile(entries). Having said that, i would not have expected the JVM to crash, but throw an IOException (as you first reported in the JIRA). Here's what's happening: | | 1) HDScanner picks up the archived deployment (.war) | 2) VFS starts temping this by extracting the contents of the .war (ZipEntryHandler class). Internally it opens a InputStream for the zip entries. | 3) When this processing is in progress, if we hot deploy the .war again, the InputStream that VFS is processing on, becomes stale (and ideally should throw IOException). | 4) Finally the error. | | Just to check whether i was guessing this right, i deployed the .war in exploded format and i could see that it moved past this and failed a bit later where VFS tried to work on the WEB-INF/lib/*.jar entries (the same zip entry processing logic with the InputStream). It failed with the same JVM crash here too. | | So finally just to test, i removed all the jars from the lib folder, updated the web.xml to just contain the welcome-file section and deployed the war in exploded format. All this to ensure that no zip file processing happens. After this, i can successfully deploy this application in a tight loop without any issues - but obviously, this application is now of no use without any of its functionalities :) | | Now that it's been tracked down to the zip file handling, i am going to see how JBossAS-4.x handles this, since we don't see this issue there. | | P.S: The java dump during the crash helped in narrowing down this issue: | | When deployed as archive : | | | Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) | | J java.nio.Bits.copyToByteArray(JLjava/lang/Object;JJ)V | | J java.nio.DirectByteBuffer.get([BII)Ljava/nio/ByteBuffer; | | J java.io.FilterInputStream.read([B)I | | J org.jboss.virtual.plugins.context.zip.ZipEntryInputStream.read([B)I | | v ~I2CAdapter | | j org.jboss.virtual.VFSUtils.copyStream(Ljava/io/InputStream;Ljava/io/OutputStream;)V+53 | | j org.jboss.virtual.VFSUtils.copyStreamAndClose(Ljava/io/InputStream;Ljava/io/OutputStream;)V+2 | | v ~C2IAdapter | | J org.jboss.virtual.plugins.context.zip.ZipEntryContext.initEntries()V | | v ~I2CAdapter | | j org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries()V+19 | | v ~C2IAdapter | | J org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified()V | | J org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChild(Lorg/jboss/virtual/plugins/context/zip/ZipEntryHandler;Ljava/lang/String;)Lorg/jboss/virtual/spi/VirtualFileHandler; | | J org.jboss.virtual.plugins.context.AbstractVirtualFileHandler.structuredFindChild(Ljava/lang/String;)Lorg/jboss/virtual/spi/VirtualFileHandler; | | J org.jboss.virtual.VirtualFile.getChild(Ljava/lang/String;)Lorg/jboss/virtual/VirtualFile; | | v ~I2CAdapter | | j org.jboss.deployers.vfs.plugins.structure.explicit.DeclaredStructure.determineStructure(Lorg/jboss/deployers/vfs/spi/structure/StructureContext;)Z+56 | | | | | | When deployed in exploded format (and internally processing *.jar in the lib of WEB-INF): | | | J java.util.zip.ZipFile.getEntry(JLjava/lang/String;Z)J | | J java.util.zip.ZipFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; | | J org.jboss.virtual.plugins.context.zip.ZipFileWrapper.openStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream; | | J org.jboss.virtual.plugins.context.zip.ZipEntryHandler.openStream()Ljava/io/InputStream; | | J org.jboss.classloading.plugins.vfs.VFSResourceContext.getInputStream()Ljava/io/InputStream; | | J org.jboss.deployers.plugins.annotations.GenericAnnotationResourceVisitor.visit(Lorg/jboss/classloading/spi/visitor/ResourceContext;)V | | J org.jboss.classloading.plugins.vfs.VFSResourceVisitor.visit(Lorg/jboss/virtual/VirtualFile;)V | | J org.jboss.virtual.plugins.vfs.helpers.WrappingVirtualFileHandlerVisitor.visit(Lorg/jboss/virtual/spi/VirtualFileHandler;)V | | J org.jboss.virtual.plugins.context.AbstractVFSContext.visit(Lorg/jboss/virtual/spi/VirtualFileHandler;Lorg/jboss/virtual/spi/VirtualFileHandlerVisitor;ZZZZLorg/jboss/virtual/VirtualFileFilter;)V | | J org.jboss.virtual.plugins.context.AbstractVFSContext.visit(Lorg/jboss/virtual/spi/VirtualFileHandler;Lorg/jboss/virtual/spi/VirtualFileHandlerVisitor;ZZZZLorg/jboss/virtual/VirtualFileFilter;)V | | J org.jboss.virtual.plugins.context.AbstractVFSContext.visit(Lorg/jboss/virtual/spi/VirtualFileHandler;Lorg/jboss/virtual/spi/VirtualFileHandlerVisitor;ZZZZLorg/jboss/virtual/VirtualFileFilter;)V | | | View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4230795#4230795 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4230795 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
