Karishma Gulati created FALCON-1330:
---------------------------------------
Summary: When multiple cluster definitions exist for the same
colo, triage produces expected 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
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 <{}edge>,<{}result>
</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)