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

Reply via email to