| Index: common/api/dm/service/v1/execution_state_evolve.go | 
| diff --git a/common/api/dm/service/v1/execution_state_evolve.go b/common/api/dm/service/v1/execution_state_evolve.go | 
| index 11679ba25890d6c3834de7737e6eca0619996303..a329ac2146b4bfa303ad073834ce12567489961d 100644 | 
| --- a/common/api/dm/service/v1/execution_state_evolve.go | 
| +++ b/common/api/dm/service/v1/execution_state_evolve.go | 
| @@ -12,15 +12,21 @@ import ( | 
| // transitions. The identity transition (X -> X) is implied, as long as X has an | 
| // entry in this mapping. | 
| var validExecutionStateEvolution = map[Execution_State][]Execution_State{ | 
| -	Execution_SCHEDULED: {Execution_RUNNING, Execution_FINISHED, Execution_MISSING, Execution_CANCELLED, Execution_TIMED_OUT}, | 
| -	Execution_RUNNING:   {Execution_FINISHED, Execution_FAILED, Execution_MISSING, Execution_CANCELLED}, | 
| - | 
| -	Execution_CANCELLED: {}, | 
| -	Execution_FINISHED:  {}, | 
| -	Execution_FAILED:    {}, | 
| -	Execution_MISSING:   {}, | 
| -	Execution_REJECTED:  {}, | 
| -	Execution_TIMED_OUT: {}, | 
| +	Execution_SCHEDULING: { | 
| +		Execution_RUNNING,           // ActivateExecution | 
| +		Execution_ABNORMAL_FINISHED, // cancel/timeout/err/etc. | 
| +	}, | 
| +	Execution_RUNNING: { | 
| +		Execution_STOPPING,          // FinishAttempt/EnsureGraphData | 
| +		Execution_ABNORMAL_FINISHED, // cancel/timeout/err/etc. | 
| +	}, | 
| +	Execution_STOPPING: { | 
| +		Execution_FINISHED,          // got persistent state from distributor | 
| +		Execution_ABNORMAL_FINISHED, // cancel/timeout/err/etc. | 
| +	}, | 
| + | 
| +	Execution_FINISHED:          {}, | 
| +	Execution_ABNORMAL_FINISHED: {}, | 
| } | 
|  | 
| // Evolve attempts to evolve the state of this Attempt. If the state | 
|  |