On Mon, Apr 23, 2012 at 12:23 PM, Afkham Azeez <[email protected]> wrote:
> A solution to this came to my mind just now. We can handle this by making > the DeploymentInterceptor aware of the DeploymentSynchronizer. > > If the DeploymentInterceptor detects that a newly added artifact has been > added through an update done by the DepSync, it should refrain from > creating the metafiles. This is because, the assumption is there will be > corresponding metafiles for the newly added artifacts will also exist. If > the DeploymentInterceptor detects that the newly added artifact has been > created locally, and not yet committed by the DepSync, then it can go ahead > with creating local metafiles. > > Great. I'll have a look at this. Handling this from Deployment Interceptor seems to be the correct solution. I'm not sure whether detecting the newly created artifacts isn't committed by DepSync as a check is correct though. That's because the services are not deployed immediately after uploading. DepSync may run within the time period of service upload time to service deployment time! Thanks, --KasunG > > On Mon, Apr 23, 2012 at 12:13 PM, Kasun Gajasinghe <[email protected]>wrote: > >> >> Hi, >> I've been looking at how the service metadata files propagate to other >> cluster nodes. I'm using SVN-based depsync. But I've faced to an issue. >> Here, what happens is that Deployment Synchronizer propagates the service >> archives to the other nodes. And then DeploymentInterceptor creates service >> metadata files in the master node. After that slave nodes' DI also creates >> service metafiles by themselves. This causes an issue when one node >> committed these metadata files, and another tried to checkout it because >> those have unversioned metadata files in their working copy. >> >> Following is the error I get for one metadata file named Version.xml. >> >> [2012-04-23 11:53:52,731] ERROR >> {org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository} >> - Error while checking out or updating artifacts from the SVN repository >> org.tigris.subversion.svnclientadapter.SVNClientException: >> org.tigris.subversion.svnclientadapter.commandline.CmdLineException: svn: >> Failed to add file >> '/wso2/cluster-test/cluster-manager/wso2as-4.5.0-SNAPSHOT/repository/deployment/server/servicemetafiles/Version.xml': >> *an unversioned file of the same name already exists* >> >> at >> org.tigris.subversion.svnclientadapter.SVNClientException.wrapException(SVNClientException.java:93) >> at >> org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.update(CmdLineClientAdapter.java:596) >> at >> org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository.checkout(SVNBasedArtifactRepository.java:231) >> at >> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizer.checkout(DeploymentSynchronizer.java:144) >> at >> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizerServiceImpl.update(DeploymentSynchronizerServiceImpl.java:59) >> at >> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.doDeploymentSynchronization(CarbonDeploymentSchedulerTask.java:101) >> at >> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:70) >> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) >> at >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) >> 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) >> Caused by: >> org.tigris.subversion.svnclientadapter.commandline.CmdLineException: svn: >> Failed to add file >> '/wso2/cluster-test/cluster-manager/wso2as-4.5.0-SNAPSHOT/repository/deployment/server/servicemetafiles/Version.xml': >> an unversioned file of the same name already exists >> >> at >> org.tigris.subversion.svnclientadapter.commandline.CommandLine.execString(CommandLine.java:239) >> at >> org.tigris.subversion.svnclientadapter.commandline.SvnCommandLine.update(SvnCommandLine.java:802) >> at >> org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.update(CmdLineClientAdapter.java:593) >> ... 14 more >> [2012-04-23 11:53:52,732] ERROR >> {org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask} - >> Deployment synchronization for tenant 0 failed >> java.lang.RuntimeException: >> org.wso2.carbon.deployment.synchronizer.DeploymentSynchronizerException: >> Error while checking out or updating artifacts from the SVN repository >> at >> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizerServiceImpl.update(DeploymentSynchronizerServiceImpl.java:62) >> at >> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.doDeploymentSynchronization(CarbonDeploymentSchedulerTask.java:101) >> at >> org.wso2.carbon.core.deployment.CarbonDeploymentSchedulerTask.run(CarbonDeploymentSchedulerTask.java:70) >> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) >> at >> java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) >> at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) >> at >> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) >> 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) >> Caused by: >> org.wso2.carbon.deployment.synchronizer.DeploymentSynchronizerException: >> Error while checking out or updating artifacts from the SVN repository >> at >> org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository.handleException(SVNBasedArtifactRepository.java:318) >> at >> org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository.checkout(SVNBasedArtifactRepository.java:240) >> at >> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizer.checkout(DeploymentSynchronizer.java:144) >> at >> org.wso2.carbon.deployment.synchronizer.internal.DeploymentSynchronizerServiceImpl.update(DeploymentSynchronizerServiceImpl.java:59) >> ... 11 more >> Caused by: org.tigris.subversion.svnclientadapter.SVNClientException: >> org.tigris.subversion.svnclientadapter.commandline.CmdLineException: svn: >> Failed to add file >> '/wso2/cluster-test/cluster-manager/wso2as-4.5.0-SNAPSHOT/repository/deployment/server/servicemetafiles/Version.xml': >> an unversioned file of the same name already exists >> >> at >> org.tigris.subversion.svnclientadapter.SVNClientException.wrapException(SVNClientException.java:93) >> at >> org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.update(CmdLineClientAdapter.java:596) >> at >> org.wso2.carbon.deployment.synchronizer.subversion.SVNBasedArtifactRepository.checkout(SVNBasedArtifactRepository.java:231) >> ... 13 more >> Caused by: >> org.tigris.subversion.svnclientadapter.commandline.CmdLineException: svn: >> Failed to add file >> '/wso2/cluster-test/cluster-manager/wso2as-4.5.0-SNAPSHOT/repository/deployment/server/servicemetafiles/Version.xml': >> an unversioned file of the same name already exists >> >> at >> org.tigris.subversion.svnclientadapter.commandline.CommandLine.execString(CommandLine.java:239) >> at >> org.tigris.subversion.svnclientadapter.commandline.SvnCommandLine.update(SvnCommandLine.java:802) >> at >> org.tigris.subversion.svnclientadapter.commandline.CmdLineClientAdapter.update(CmdLineClientAdapter.java:593) >> ... 14 more >> >> >> -- >> *Kasun Gajasinghe* >> Software Engineer; WSO2 Inc.; http://wso2.com >> >> , >> *email: **kasung AT spamfree wso2.com** cell: **+94 (77) 678-0813* >> *linked-in: *http://lk.linkedin.com/in/gajasinghe* >> * >> *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org> >> >> * >> twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg> >> >> * >> * >> >> > > > -- > *Afkham Azeez* > Director of Architecture; WSO2, Inc.; http://wso2.com > Member; Apache Software Foundation; http://www.apache.org/ > * <http://www.apache.org/>** > email: **[email protected]* <[email protected]>* cell: +94 77 3320919 > blog: **http://blog.afkham.org* <http://blog.afkham.org>* > twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez> > * > linked-in: **http://lk.linkedin.com/in/afkhamazeez* > * > * > *Lean . Enterprise . Middleware* > > -- *Kasun Gajasinghe* Software Engineer; WSO2 Inc.; http://wso2.com , *email: **kasung AT spamfree wso2.com** cell: **+94 (77) 678-0813* *linked-in: *http://lk.linkedin.com/in/gajasinghe* * *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org> * twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg> * *
_______________________________________________ Dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/dev
