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

Ajay Yadava commented on FALCON-1401:
-------------------------------------

I see. However, if a new consumer wants to consume these values then they will 
have to also handle both "NONE" and "IGNORE". This is not obvious from the code 
where these values are populated. 

Update is not such a bad idea in this case as the consumers are already broken. 
I am not sure if it will really be a backward incompatible change as consumers 
are already broken or must be handling both.

Also, I saw some change for corresponding in case of input feed names as well, 
is the similar issue there in INPUT_FEED_NAMES as well?



> MetadataMappingService fails to add an edge for a process instance
> ------------------------------------------------------------------
>
>                 Key: FALCON-1401
>                 URL: https://issues.apache.org/jira/browse/FALCON-1401
>             Project: Falcon
>          Issue Type: Bug
>            Reporter: Pallavi Rao
>            Assignee: Pallavi Rao
>            Priority: Minor
>         Attachments: FALCON-1401.patch
>
>
> If a process has no output feeds, the metadata mapping service fails to add 
> an edge for the process instances. It fails with NPE:
> {code}
> 2015-08-14 15:31:00,950 INFO  - [ActiveMQ Session Task:] ~ Adding process 
> instance: pig-sleep-process/2015-07-28T07:40Z 
> (InstanceRelationshipGraphBuilder:74)
> 2015-08-14 15:31:00,951 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:00,957 DEBUG - [ActiveMQ Session Task:] ~ Creating a new 
> vertex for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:101)
> 2015-08-14 15:31:00,981 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process, type=PROCESS_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:00,984 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pig-sleep-process, type=PROCESS_ENTITY, v=v[16] 
> (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:00,988 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=local, type=CLUSTER_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:00,990 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=local, type=CLUSTER_ENTITY, v=v[4] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:00,992 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pallavi.rao, type=USER (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:00,995 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pallavi.rao, type=USER, v=v[8] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:00,997 INFO  - [ActiveMQ Session Task:] ~ Computing feed 
> instance for : name= IGNORE path= IGNORE, in cluster: local 
> (InstanceRelationshipGraphBuilder:243)
> 2015-08-14 15:31:01,009 INFO  - [ActiveMQ Session Task:] ~ Adding process 
> instance: pig-sleep-process/2015-07-28T07:40Z 
> (InstanceRelationshipGraphBuilder:74)
> 2015-08-14 15:31:01,009 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,012 DEBUG - [ActiveMQ Session Task:] ~ Creating a new 
> vertex for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:101)
> 2015-08-14 15:31:01,033 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process, type=PROCESS_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,035 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pig-sleep-process, type=PROCESS_ENTITY, v=v[16] 
> (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,039 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=local, type=CLUSTER_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,041 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=local, type=CLUSTER_ENTITY, v=v[4] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,043 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pallavi.rao, type=USER (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,044 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pallavi.rao, type=USER, v=v[8] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,047 INFO  - [ActiveMQ Session Task:] ~ Computing feed 
> instance for : name= IGNORE path= IGNORE, in cluster: local 
> (InstanceRelationshipGraphBuilder:243)
> 2015-08-14 15:31:01,073 INFO  - [ActiveMQ Session Task:] ~ Adding process 
> instance: pig-sleep-process/2015-07-28T07:40Z 
> (InstanceRelationshipGraphBuilder:74)
> 2015-08-14 15:31:01,073 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,076 DEBUG - [ActiveMQ Session Task:] ~ Creating a new 
> vertex for: name=pig-sleep-process/2015-07-28T07:40Z, type=PROCESS_INSTANCE 
> (RelationshipGraphBuilder:101)
> 2015-08-14 15:31:01,096 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pig-sleep-process, type=PROCESS_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,098 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pig-sleep-process, type=PROCESS_ENTITY, v=v[16] 
> (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,102 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=local, type=CLUSTER_ENTITY (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,103 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=local, type=CLUSTER_ENTITY, v=v[4] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,105 DEBUG - [ActiveMQ Session Task:] ~ Finding vertex 
> for: name=pallavi.rao, type=USER (RelationshipGraphBuilder:87)
> 2015-08-14 15:31:01,108 INFO  - [ActiveMQ Session Task:] ~ Vertex exists? 
> name=pallavi.rao, type=USER, v=v[8] (InstanceRelationshipGraphBuilder:129)
> 2015-08-14 15:31:01,110 INFO  - [ActiveMQ Session Task:] ~ Computing feed 
> instance for : name= IGNORE path= IGNORE, in cluster: local 
> (InstanceRelationshipGraphBuilder:243)
> 2015-08-14 15:31:01,111 ERROR - [ActiveMQ Session Task:] ~ Error in listener 
> org.apache.falcon.metadata.MetadataMappingService 
> (WorkflowJobEndNotificationService:226)
> org.apache.falcon.FalconException: java.lang.RuntimeException: 
> java.lang.NullPointerException
>       at 
> org.apache.falcon.metadata.MetadataMappingService.onSuccess(MetadataMappingService.java:274)
>       at 
> org.apache.falcon.workflow.WorkflowJobEndNotificationService.notifyWorkflowEnd(WorkflowJobEndNotificationService.java:222)
>       at 
> org.apache.falcon.workflow.WorkflowJobEndNotificationService.notifySuccess(WorkflowJobEndNotificationService.java:105)
>       at 
> org.apache.falcon.messaging.JMSMessageConsumer.invokeListener(JMSMessageConsumer.java:169)
>       at 
> org.apache.falcon.messaging.JMSMessageConsumer.onMessage(JMSMessageConsumer.java:112)
>       at 
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1229)
>       at 
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:134)
>       at 
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:205)
>       at 
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>       at 
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.RuntimeException: java.lang.NullPointerException
>       at 
> com.tinkerpop.blueprints.util.TransactionRetryStrategy$AbstractRetryStrategy.execute(TransactionRetryStrategy.java:176)
>       at 
> com.tinkerpop.blueprints.util.TransactionRetryHelper.use(TransactionRetryHelper.java:115)
>       at 
> com.tinkerpop.blueprints.util.TransactionRetryHelper.exponentialBackoff(TransactionRetryHelper.java:94)
>       at 
> org.apache.falcon.metadata.MetadataMappingService.onSuccess(MetadataMappingService.java:263)
>       ... 12 more
> Caused by: java.lang.NullPointerException
>       at org.apache.falcon.entity.FeedHelper.getCluster(FeedHelper.java:80)
>       at 
> org.apache.falcon.entity.FeedHelper.getStorageType(FeedHelper.java:235)
>       at 
> org.apache.falcon.metadata.InstanceRelationshipGraphBuilder.getFeedInstanceName(InstanceRelationshipGraphBuilder.java:280)
>       at 
> org.apache.falcon.metadata.InstanceRelationshipGraphBuilder.addFeedInstance(InstanceRelationshipGraphBuilder.java:245)
>       at 
> org.apache.falcon.metadata.InstanceRelationshipGraphBuilder.addOutputFeedInstances(InstanceRelationshipGraphBuilder.java:151)
>       at 
> org.apache.falcon.metadata.MetadataMappingService.onProcessInstanceExecuted(MetadataMappingService.java:313)
>       at 
> org.apache.falcon.metadata.MetadataMappingService.onSuccessfulExecution(MetadataMappingService.java:282)
>       at 
> org.apache.falcon.metadata.MetadataMappingService.access$100(MetadataMappingService.java:53)
>       at 
> org.apache.falcon.metadata.MetadataMappingService$3.execute(MetadataMappingService.java:267)
>       at 
> org.apache.falcon.metadata.MetadataMappingService$3.execute(MetadataMappingService.java:264)
>       at 
> com.tinkerpop.blueprints.util.TransactionRetryStrategy$AbstractRetryStrategy.execute(TransactionRetryStrategy.java:146)
> {code}



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

Reply via email to