anchor.diff:  handle_info({'EXIT', Pid, {worker_dies, {Msg, Args}}}, S) ->
           {Node, T} = gb_trees:get(Pid, S#state.workers),
           event_server:event(Node, T#task.jobname, "WARN: [~s:~B] ~s",
  -                [T#task.mode, T#task.taskid, io_lib:fwrite(Msg, Args)], []),
  +                [T#task.mode, T#task.taskid, io_lib:fwrite(Msg, Args)],
  +                        {task_failed, T#task.mode}),
           gen_server:cast(self(), {exit_worker, Pid, {data_error, "worker_dies"}}),
           {noreply, S};
           
  
positive.code:                         {"Task failed to call exit_worker", Node, T}),
                  event_server:event(Node, T#task.jobname,
                          "WARN: [~s:~B] Died unexpectedly without a reason",
                                  [T#task.mode, T#task.taskid], []),
                  gen_server:cast(self(), {exit_worker, Pid,
                          {data_error, "unexpected"}}),
                  {noreply, S}
  
negative.code:                 {_, {Node, T}} = Worker,
                  event_server:event(Node, T#task.jobname,
                          "WARN: [~s:~B] Worker died unexpectedly: ~p",
                                  [T#task.mode, T#task.taskid, Reason],
                                          {task_failed, T#task.mode}),
                  gen_server:cast(self(), {exit_worker, Pid,
                          {data_error, "unexpected"}});
                  {noreply, S};
  