[ 
https://issues.apache.org/jira/browse/FALCON-1410?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14704486#comment-14704486
 ] 

Ajay Yadava commented on FALCON-1410:
-------------------------------------

Although there is a synchronized keyword on the entity methods in the 
AbstractSchedulableEntityManager this is pretty much useless as the lock will 
not be on same object. We should create a lock per entity per falcon server and 
use that for synchronization.  

> Entity submit fails when multiple threads try submitting same definition
> ------------------------------------------------------------------------
>
>                 Key: FALCON-1410
>                 URL: https://issues.apache.org/jira/browse/FALCON-1410
>             Project: Falcon
>          Issue Type: Bug
>          Components: prism
>    Affects Versions: 0.7
>            Reporter: Pragya Mittal
>            Assignee: sandeep samudrala
>
> As part of submit feature we can submit entity any number of times and it 
> will succeed, given the condition entity definition remains same. But when 
> multiple threads try submitting common entity definition, it results in 
> entity submission failure. Following is the stack trace.
> {code}
> 2015-08-19 05:26:38,201 ERROR - [357703038@qtp-212921632-197 - 
> 4d3d611e-352c-40f2-94db-95ae53657e9b:pragya:POST//entities/submit/cluster] ~ 
> Unable to persist entity object (AbstractEntityManager:199)
> org.apache.falcon.entity.store.EntityAlreadyExistsException: (cluster) 
> A99ac20e9-bb8bc0fa already registered with configuration store. Can't be 
> submitted again. Try removing before submitting.
>         at 
> org.apache.falcon.entity.store.ConfigurationStore.publish(ConfigurationStore.java:222)
>         at 
> org.apache.falcon.resource.AbstractEntityManager.submitInternal(AbstractEntityManager.java:413)
>         at 
> org.apache.falcon.resource.AbstractEntityManager.submit(AbstractEntityManager.java:196)
>         at 
> org.apache.falcon.resource.proxy.SchedulableEntityManagerProxy.submit_aroundBody0(SchedulableEntityManagerProxy.java:144)
>         at 
> org.apache.falcon.resource.proxy.SchedulableEntityManagerProxy$AjcClosure1.run(SchedulableEntityManagerProxy.java:1)
>         at 
> org.aspectj.runtime.reflect.JoinPointImpl.proceed(JoinPointImpl.java:149)
>         at 
> org.apache.falcon.aspect.AbstractFalconAspect.logAroundMonitored(AbstractFalconAspect.java:51)
>         at 
> org.apache.falcon.resource.proxy.SchedulableEntityManagerProxy.submit(SchedulableEntityManagerProxy.java:119)
>         at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:497)
>         at 
> com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
>         at 
> com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
>         at 
> com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to