[JBoss JIRA] (WFCORE-547) Unable to overlay resource in subunit/zip/jar file
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/WFCORE-547?page=com.atlassian.jira.plugin... ]
RH Bugzilla Integration commented on WFCORE-547:
------------------------------------------------
Mike McCune <mmccune(a)redhat.com> changed the Status of [bug 1147352|https://bugzilla.redhat.com/show_bug.cgi?id=1147352] from MODIFIED to POST
> Unable to overlay resource in subunit/zip/jar file
> --------------------------------------------------
>
> Key: WFCORE-547
> URL: https://issues.jboss.org/browse/WFCORE-547
> Project: WildFly Core
> Issue Type: Bug
> Components: Server
> Affects Versions: 1.0.0.Alpha18
> Reporter: Bartosz Baranowski
> Assignee: Stuart Douglas
> Fix For: 1.0.0.Beta1
>
>
> It is possible to overlay resource directly in deployed jar, however, same resource can not be properly overlayed if said jar is deployed as part of ear ( possibly war as well ).
> Example:
> jar (xxx.jar):
> /org/test/ejb/EJBImpl.class
> /org/test/ejb/resourceToOverlya.txt
> ear(yyy.ear) - war seems to be the subject of this as well
> /xxx.jar
> Overlay #1( over jar)
> overlay target: xxx.jar/org/test/ejb/resourceToOverlya.txt
> Result: proper deployment(EJB is deployed), resource has been overlayed
> Overlay #2( over jar inside ear )
> overlay target: org/test/ejb/resourceToOverlya.txt
> Result: bad deployment, no EJB deployed, overlay target has been overlayed
> Reason of such outcome is that VFS.exists() does not recognize JavaZipFileSystem$ZipNode/Entry as zipped archive and does not dive into children.
> So what happens in here is as follows. When EAR is deployed OverlayProcessor kicks in at:
> https://github.com/wildfly/wildfly-core/blob/master/server/src/main/java/...
> For this example ear/jar pair, first pair of values:
> mountPoint: /content/yyy.ear/xxx.jar/org/test/ejb/resourceToOverlya.txt
> parent: /content/yyy.ear/xxx.jar/org/test/ejb
> Outcome of exists() call == false, should be true.
> this will iterate up to parent == /content/yyy.ear/xxx.jar
> At this point, 'createParents' contain some entries and
> https://github.com/wildfly/wildfly-core/blob/master/server/src/main/java/...
> will create tmp/virtual mounts for:
> - /content/yyy.ear/xxx.jar/org/test/ejb
> - /content/yyy.ear/xxx.jar/org/test
> - /content/yyy.ear/xxx.jar/org
> What it will essentially do is create overlay for whole 'org' package! The VirtualFile.getChildren() will return tmp mounted VirtualFile for 'org' entry: https://github.com/jbossas/jboss-vfs/blob/master/src/main/java/org/jboss/...
> There is part of code which should remove 'submount' if there is directory entry: https://github.com/jbossas/jboss-vfs/blob/master/src/main/java/org/jboss/... however ( if I remember correctly) 'org' tmp mount ends up twice in 'submounts'
> When VirtualFile.getChildren is called for 'this' == /content/yyy.ear/xxx.jar ( in this case it is properly removed) and when 'this' == /content/yyy.ear/xxx.jar/org - in which case it derails getChildren and diverts into tmp mount.
> Now about https://github.com/jbossas/jboss-vfs/blob/master/src/main/java/org/jboss/...
> What happens here, for ear deployment - it dives recursively into 'find' until 'target' is equal to '/content/yyy.ear/xxx.jar' at this target.getParent() == 'mountPoint' == '/content/yyy.ear'.
> At this point 'find' will get result ZipNode == /content/yyy.ear and fetch child 'xxx.jar' and pop back up one notch in the call stack. However the 'xxx.jar' entry does not have any children, hence there is no way to fetch next child in line 'org'.
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (WFCORE-761) Not possible to overlay non existing file in WAR
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/WFCORE-761?page=com.atlassian.jira.plugin... ]
RH Bugzilla Integration commented on WFCORE-761:
------------------------------------------------
Mike McCune <mmccune(a)redhat.com> changed the Status of [bug 1147352|https://bugzilla.redhat.com/show_bug.cgi?id=1147352] from MODIFIED to POST
> Not possible to overlay non existing file in WAR
> ------------------------------------------------
>
> Key: WFCORE-761
> URL: https://issues.jboss.org/browse/WFCORE-761
> Project: WildFly Core
> Issue Type: Bug
> Components: Server
> Reporter: Bartosz Baranowski
> Assignee: Dimitris Andreadis
> Priority: Critical
>
> It is either bug in how deployments are treated or how overlay/vfs work.
> Steps to reproduce:
> 1. deploy undexploded war with jar inside
> 2. add overlay that will add non existing file in jar
> Result: exception:
> Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018776: Failed to get content for deployment overlay WEB-INF/lib/overlayed.jar//META-INF/x/file.txt at WEB-INF/lib/overlayed.jar//META-INF/x/file.txt
> Caused by: java.io.FileNotFoundException: /content/shell.war/WEB-INF/lib/overlayed.jar/META-INF/x/file.txt"}}
> at org.jboss.as.test.integration.management.ManagementOperations.executeOperation(ManagementOperations.java:67)
> at org.jboss.as.test.integration.management.ManagementOperations.executeOperation(ManagementOperations.java:37)
> at org.jboss.as.test.integration.deployment.deploymentoverlay.jar.OverlayUtils.setupOverlay(OverlayUtils.java:76)
> at org.jboss.as.test.integration.deployment.deploymentoverlay.war.OverlayNonExistingResourceTestCase.testOverlay(OverlayNonExistingResourceTestCase.java:67)
> Expectation:
> should work. It actually does work, if war is really exploded or
> 'if(exploded)' part in overlay is removed from overlay processor and everything is handled via: https://github.com/stuartwdouglas/wildfly-core/blob/a75af9118c4062fafb899...
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years
[JBoss JIRA] (WFLY-6294) Session draining always takes maximum configured timeout
by RH Bugzilla Integration (JIRA)
[ https://issues.jboss.org/browse/WFLY-6294?page=com.atlassian.jira.plugin.... ]
RH Bugzilla Integration commented on WFLY-6294:
-----------------------------------------------
Sat6QE Jenkins <sat6-jenkins(a)redhat.com> changed the Status of [bug 1314792|https://bugzilla.redhat.com/show_bug.cgi?id=1314792] from POST to MODIFIED
> Session draining always takes maximum configured timeout
> --------------------------------------------------------
>
> Key: WFLY-6294
> URL: https://issues.jboss.org/browse/WFLY-6294
> Project: WildFly
> Issue Type: Bug
> Components: Clustering
> Affects Versions: 10.0.0.Final
> Reporter: Aaron Ogburn
> Assignee: Radoslav Husar
> Priority: Minor
>
> The mod_cluster session drain wait is not ending as expected. mod_cluster adds a session listener to be notified of session destruction. That is fired appropriately, but when the listener is invoked, the infinispan session manager still reports the session as active. Thus, this drain loop doesn't end after the notify because it still sees the active session:
> {code}
> while ((remainingSessions > 0) && (noTimeout || (timeout > 0))) {
> ModClusterLogger.LOGGER.drainSessions(remainingSessions, context.getHost(), context);
> listener.wait(noTimeout ? 0 : timeout);
> current = System.currentTimeMillis();
> timeout = end - current;
> remainingSessions = context.getActiveSessionCount();
> }
> {code}
> Can the listeners be invoked when the session is fully removed and no longer considered active?
--
This message was sent by Atlassian JIRA
(v6.4.11#64026)
10 years