You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@falcon.apache.org by "Ajay Yadava (JIRA)" <ji...@apache.org> on 2015/08/17 16:17:45 UTC

[jira] [Updated] (FALCON-1330) When multiple cluster definitions exist for the same colo, triage produces unexpected results

     [ https://issues.apache.org/jira/browse/FALCON-1330?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ajay Yadava updated FALCON-1330:
--------------------------------
    Attachment: FALCON-1330.patch

> When multiple cluster definitions exist for the same colo, triage produces unexpected results
> ---------------------------------------------------------------------------------------------
>
>                 Key: FALCON-1330
>                 URL: https://issues.apache.org/jira/browse/FALCON-1330
>             Project: Falcon
>          Issue Type: Bug
>    Affects Versions: 0.7
>         Environment: QA
>            Reporter: Karishma Gulati
>            Assignee: Ajay Yadava
>         Attachments: FALCON-1330.patch
>
>
> When multiple cluster definitions are submitted for the same colo as follows : 
> Cluster1.xml
> {code}
> <?xml version="1.0" encoding="UTF-8"?><cluster xmlns="uri:falcon:cluster:0.1" name="TriageAPITest-corp-561a5d30" description="" colo="ua1">
>     <interfaces>
>         <interface type="readonly" endpoint="hdfs://10.14.118.32:8020" version="0.20.2"/>
>         <interface type="write" endpoint="hdfs://10.14.118.32:8020" version="0.20.2"/>
>         <interface type="execute" endpoint="10.14.118.32:8021" version="0.20.2"/>
>         <interface type="workflow" endpoint="http://10.14.118.32:11000/oozie/" version="3.1.0"/>
>         <interface type="messaging" endpoint="tcp://localhost:61616?daemon=true" version="5.1.6"/>
>     </interfaces>
>     <locations>
>         <location name="staging" path="/tmp/falcon-regression-staging"/>
>         <location name="working" path="/tmp/falcon-regression-working"/>
>         <location name="temp" path="/tmp"/>
>     </locations>
>     <ACL owner="karishma.gulati" group="dataqa" permission="*"/>
>     <properties>
>         <property name="field1" value="value1"/>
>         <property name="field2" value="value2"/>
>     </properties>
> </cluster>
> {code}
> Cluster2.xml
> {code}
> <?xml version="1.0" encoding="UTF-8"?><cluster xmlns="uri:falcon:cluster:0.1" name="TriageAPITest-corp-f67e4d3f" description="" colo="ua1">
>     <interfaces>
>         <interface type="readonly" endpoint="hdfs://10.14.118.32:8020" version="0.20.2"/>
>         <interface type="write" endpoint="hdfs://10.14.118.32:8020" version="0.20.2"/>
>         <interface type="execute" endpoint="10.14.118.32:8021" version="0.20.2"/>
>         <interface type="workflow" endpoint="http://10.14.118.32:11000/oozie/" version="3.1.0"/>
>         <interface type="messaging" endpoint="tcp://localhost:61616?daemon=true" version="5.1.6"/>
>     </interfaces>
>     <locations>
>         <location name="staging" path="/tmp/falcon-regression-staging"/>
>         <location name="working" path="/tmp/falcon-regression-working"/>
>         <location name="temp" path="/tmp"/>
>     </locations>
>     <ACL owner="karishma.gulati" group="dataqa" permission="*"/>
>     <properties>
>         <property name="field1" value="value1"/>
>         <property name="field2" value="value2"/>
>     </properties>
> </cluster>
> {code}
> and this process is scheduled :
> {code}
> <?xml version="1.0" encoding="UTF-8"?><process xmlns="uri:falcon:process:0.1" name="TriageAPITest-agregator-coord16-f8b908fc">
>     <clusters>
>         <cluster name="TriageAPITest-corp-f67e4d3f">
>             <validity start="2010-01-02T00:00Z" end="2010-01-02T00:11Z"/>
>         </cluster>
>     </clusters>
>     <parallel>3</parallel>
>     <order>FIFO</order>
>     <frequency>minutes(5)</frequency>
>     <timezone>UTC</timezone>
>     <inputs>
>         <input name="inputData" feed="TriageAPITest-raaw-logs16-85c1cd2c" start="now(0,-20)" end="now(0,0)"/>
>     </inputs>
>     <outputs>
>         <output name="outputData" feed="TriageAPITest-agregated-logs16-485bf2a6" instance="now(0,0)"/>
>     </outputs>
>     <properties>
>         <property name="queueName" value="default"/>
>         <property name="fileTime" value="${formatTime(dateOffset(instanceTime(), 1, 'DAY'), 'yyyy-MMM-dd')}"/>
>         <property name="user" value="${user()}"/>
>     </properties>
>     <workflow path="/tmp/falcon-regression/TriageAPITest/aggregator"/>
>     <retry policy="periodic" delay="minutes(3)" attempts="3"/>
>     <ACL owner="karishma.gulati" group="dataqa" permission="*"/>
> </process>
> {code}
> When you triage on a succeeded instance via prism/server, the following response is received:
> {code}
> {
>   "status": "SUCCEEDED",
>   "message": "ua1/Success\n",
>   "requestId": "ua1/596795157@qtp-164974746-4 - c8c58de9-74c8-41c5-9e90-7a2fc347d384\n",
>   "triageGraphs": [
>     {
>       "vertices": [
>         "name: TriageAPITest-agregator-coord16-f8b908fc, type: PROCESS, cluster: TriageAPITest-corp-f67e4d3f, instanceTime: 2010-01-02T00:05Z, tags: [SUCCEEDED]"
>       ]
>     },
>     {
>       "vertices": [
>         "name: TriageAPITest-agregator-coord16-f8b908fc, type: PROCESS, cluster: TriageAPITest-corp-561a5d30, instanceTime: 2010-01-02T00:05Z, tags: [SUCCEEDED]"
>       ]
>     }
>   ]
> }
> {code}
> Expected result : Only one graph for that process's respective cluster should have been received. 
> In case of triaging before succession of the instance however, a Failed response is received as follows:
> a)On Triaging via Server:
> {code}
> <?xml version="1.0" encoding="UTF-8"?><instancesResult>
>   <status>FAILED</status>
>   <message>java.lang.IllegalArgumentException: Cluster provided: TriageAPITest-corp-b5cf7145 is not a valid cluster for the process: TriageAPITest-agregator-coord16-caee00f2
> 	at org.apache.falcon.entity.ProcessHelper.validateProcessInstance(ProcessHelper.java:95)
> 	at org.apache.falcon.entity.ProcessHelper.getInputFeedInstances(ProcessHelper.java:131)
> 	at org.apache.falcon.resource.AbstractInstanceManager.triage(AbstractInstanceManager.java:734)
> 	at org.apache.falcon.resource.AbstractInstanceManager.triageInstance(AbstractInstanceManager.java:653)
> 	at org.apache.falcon.resource.InstanceManager.triageInstance(InstanceManager.java:235)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	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)
> 	at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)
> 	at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
> 	at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1469)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1400)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)
> 	at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)
> 	at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:537)
> 	at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:699)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> 	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
> 	at org.apache.falcon.security.FalconAuthorizationFilter.doFilter(FalconAuthorizationFilter.java:106)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
> 	at org.apache.falcon.security.FalconAuthenticationFilter$2.doFilter(FalconAuthenticationFilter.java:184)
> 	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:572)
> 	at org.apache.hadoop.security.authentication.server.AuthenticationFilter.doFilter(AuthenticationFilter.java:542)
> 	at org.apache.falcon.security.FalconAuthenticationFilter.doFilter(FalconAuthenticationFilter.java:193)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
> 	at org.apache.falcon.security.FalconAuditFilter.doFilter(FalconAuditFilter.java:64)
> 	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212)
> 	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)
> 	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
> 	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
> 	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:767)
> 	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
> 	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
> 	at org.mortbay.jetty.Server.handle(Server.java:326)
> 	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
> 	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:928)
> 	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
> 	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
> 	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
> 	at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.java:228)
> 	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
> </message>
>   <requestId>596795157@qtp-164974746-4 - 6f3239c1-267c-43f0-95e6-3432eb43ef33</requestId>
> </instancesResult>
> {code}
> b)On triaging via prism:
> {code}
> <?xml version="1.0" encoding="UTF-8"?><result>
>   <status>FAILED</status>
>   <message>ua1/org.apache.falcon.FalconException::javax.ws.rs.WebApplicationException: javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"instancesResult"). Expected elements are &lt;{}edge&gt;,&lt;{}result&gt;
> </message>
>   <requestId>ua1/1450659810@qtp-943081537-72 - 1aa0e6a0-c535-423f-b7fb-8eea886bb12b
> </requestId>
> </result>
> {code}



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