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

Rajesh Balamohan updated TEZ-2020:
----------------------------------
    Attachment: synthetic_job.png

[~bikassaha] - I was testing a synthetic job with patch on local-vm.  All 
vertices except root had parallelism set to 10.   

{code}
2015-02-04 00:22:28,587 INFO [Dispatcher thread: Central] impl.VertexImpl: 
Setting vertexManager to InputReadyVertexManager for 
vertex_1422270854961_0140_1_04 [Summation1]
...
2015-02-04 00:22:36,447 INFO [Dispatcher thread: Central] 
vertexmanager.ShuffleVertexManager: Reduce auto parallelism for vertex: 
ordered_vertex to 1 from 10 . Expected output: 0 based on actual output: 0 from 
1 vertex manager events.  desiredTaskInputSize: 1 max slow start tasks:1.0 num 
sources completed:1
...
...
2015-02-04 00:22:36,491 INFO [Dispatcher thread: Central] 
vertexmanager.InputReadyVertexManager: Received configured signal from: 
ordered_vertex numConfiguredSources: 1 needed: 2
2015-02-04 00:22:36,492 INFO [Dispatcher thread: Central] 
vertexmanager.InputReadyVertexManager: Received configured signal from: 
unordered_vertex numConfiguredSources: 2 needed: 2
2015-02-04 00:22:36,492 INFO [Dispatcher thread: Central] 
vertexmanager.InputReadyVertexManager: Managing 10 tasks for vertex: 
Summation1..
..
..
2015-02-04 00:22:36,497 ERROR [Dispatcher thread: Central] impl.VertexImpl: 
Exception in VertexManager, vertex:vertex_1422270854961_0140_1_04 [Summation1]
org.apache.tez.dag.app.dag.impl.AMUserCodeException: 
org.apache.tez.dag.api.TezUncheckedException: All 1-1 source vertices must have 
identical concurrency
        at 
org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerPluginContextImpl.onStateUpdated(VertexManager.java:304)
        at 
org.apache.tez.dag.app.dag.StateChangeNotifier$ListenerContainer.sendStateUpdate(StateChangeNotifier.java:138)
        at 
org.apache.tez.dag.app.dag.StateChangeNotifier$ListenerContainer.access$100(StateChangeNotifier.java:122)
        at 
org.apache.tez.dag.app.dag.StateChangeNotifier.sendStateUpdate(StateChangeNotifier.java:116)
        at 
org.apache.tez.dag.app.dag.StateChangeNotifier.stateChanged(StateChangeNotifier.java:106)
        at 
org.apache.tez.dag.app.dag.impl.VertexImpl.doneReconfiguringVertex(VertexImpl.java:1525)
        at 
org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerPluginContextImpl.doneReconfiguringVertex(VertexManager.java:287)
        at 
org.apache.tez.dag.library.vertexmanager.ShuffleVertexManager.schedulePendingTasks(ShuffleVertexManager.java:531)
        at 
org.apache.tez.dag.library.vertexmanager.ShuffleVertexManager.schedulePendingTasks(ShuffleVertexManager.java:633)
        at 
org.apache.tez.dag.library.vertexmanager.ShuffleVertexManager.onSourceTaskCompleted(ShuffleVertexManager.java:367)
        at 
org.apache.tez.dag.app.dag.impl.VertexManager.onSourceTaskCompleted(VertexManager.java:378)
        at 
org.apache.tez.dag.app.dag.impl.VertexImpl$SourceTaskAttemptCompletedEventTransition.transition(VertexImpl.java:3458)
        at 
org.apache.tez.dag.app.dag.impl.VertexImpl$SourceTaskAttemptCompletedEventTransition.transition(VertexImpl.java:3439)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory$MultipleInternalArc.doTransition(StateMachineFactory.java:385)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory.doTransition(StateMachineFactory.java:302)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory.access$300(StateMachineFactory.java:46)
        at 
org.apache.hadoop.yarn.state.StateMachineFactory$InternalStateMachine.doTransition(StateMachineFactory.java:448)
        at 
org.apache.tez.state.StateMachineTez.doTransition(StateMachineTez.java:57)
        at 
org.apache.tez.dag.app.dag.impl.VertexImpl.handle(VertexImpl.java:1547)
        at 
org.apache.tez.dag.app.dag.impl.VertexImpl.handle(VertexImpl.java:181)
        at 
org.apache.tez.dag.app.DAGAppMaster$VertexEventDispatcher.handle(DAGAppMaster.java:1768)
        at 
org.apache.tez.dag.app.DAGAppMaster$VertexEventDispatcher.handle(DAGAppMaster.java:1754)
        at 
org.apache.tez.common.AsyncDispatcher.dispatch(AsyncDispatcher.java:184)
        at org.apache.tez.common.AsyncDispatcher$1.run(AsyncDispatcher.java:116)
        at java.lang.Thread.run(Thread.java:744)
Caused by: org.apache.tez.dag.api.TezUncheckedException: All 1-1 source 
vertices must have identical concurrency
        at 
org.apache.tez.dag.library.vertexmanager.InputReadyVertexManager.configure(InputReadyVertexManager.java:104)
        at 
org.apache.tez.dag.library.vertexmanager.InputReadyVertexManager.onVertexStateUpdated(InputReadyVertexManager.java:175)
        at 
org.apache.tez.dag.app.dag.impl.VertexManager$VertexManagerPluginContextImpl.onStateUpdated(VertexManager.java:301)
        ... 24 more
{code}

Is this a valid usecase?

> For 1-1 edge vertex configured event may be sent incorrectly
> ------------------------------------------------------------
>
>                 Key: TEZ-2020
>                 URL: https://issues.apache.org/jira/browse/TEZ-2020
>             Project: Apache Tez
>          Issue Type: Bug
>            Reporter: Bikas Saha
>            Assignee: Bikas Saha
>         Attachments: TEZ-2020.1.patch, synthetic_job.png
>
>
> For a fully configured 1-1 vertex configured event will be sent after init 
> because the vertex manager does not signal intent to reconfigure. However a 
> change in parallelism upstream on the 1-1 edge can cause this vertex's 
> parallelism to be updated accordingly. This breaks the guarantee that 
> configured should be sent after vertex is fully configured. This is because 
> update of parallelism on 1-1 edge has until now been hard-coded in the Vertex 
> code. This can be removed now with the InputReadyVertexManager handling the 
> 1-1 edge and the addition of vertex state updates. Not only will this fix the 
> issue but also remove the special handling for 1-1 edges in the AM which 
> should not be there for cleanliness.



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

Reply via email to