[
https://issues.apache.org/jira/browse/S4-56?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthieu Morel resolved S4-56.
------------------------------
Resolution: Fixed
Fixed in S4-71
> Prevent concurrent access to published s4r files
> ------------------------------------------------
>
> Key: S4-56
> URL: https://issues.apache.org/jira/browse/S4-56
> Project: Apache S4
> Issue Type: Bug
> Affects Versions: 0.5
> Reporter: Matthieu Morel
> Assignee: Matthieu Morel
> Fix For: 0.5
>
>
> When using a file system-based deployment, and when a new application is
> deployed, multiple nodes receive a notification and try reading the same
> compressed archive concurrently. This may result in issues such as:
> {code}
> ZkClient-EventThread-15-localhost:2181] INFO org.apache.s4.core.Server -
> Local app deployment: using s4r file name [MY_APP] as application name
> java.util.zip.ZipException: error in opening zip file
> at java.util.zip.ZipFile.open(Native Method)
> at java.util.zip.ZipFile.<init>(ZipFile.java:127)
> at java.util.zip.ZipFile.<init>(ZipFile.java:88)
> at org.apache.s4.base.util.JarResources.init(JarResources.java:58)
> at org.apache.s4.base.util.JarResources.<init>(JarResources.java:41)
> at org.apache.s4.base.util.S4RLoader.<init>(S4RLoader.java:28)
> at org.apache.s4.core.Server.loadApp(Server.java:122)
> at org.apache.s4.core.Server.loadApp(Server.java:115)
> at
> org.apache.s4.deploy.DistributedDeploymentManager.deployApplication(DistributedDeploymentManager.java:119)
> at
> org.apache.s4.deploy.DistributedDeploymentManager.deployApps(DistributedDeploymentManager.java:164)
> at
> org.apache.s4.deploy.DistributedDeploymentManager.deployNewApps(DistributedDeploymentManager.java:158)
> at
> org.apache.s4.deploy.DistributedDeploymentManager.access$200(DistributedDeploymentManager.java:57)
> at
> org.apache.s4.deploy.DistributedDeploymentManager$AppsChangeListener.handleChildChange(DistributedDeploymentManager.java:178)
> at org.I0Itec.zkclient.ZkClient$7.run(ZkClient.java:568)
> at org.I0Itec.zkclient.ZkEventThread.run(ZkEventThread.java:71)
> {code}
> As a consequence, the application cannot be deployed on the nodes that see
> this issue, unless these nodes are restarted.
> A solution might be to prevent concurrent access to the archive through a
> lock which could be an ephemeral node in ZooKeeper.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira