anchor.diff:  finish_job(Reason, #state{job = Job} = State) ->
       % All nodes are guaranteed to be in terminal state by this point, so no
       % nodes need to be sent to rehab.
  -    lager:debug([{job_id,Job#pushy_job.id}],
  -                "Job ~p -> ~p", [Job#pushy_job.id, Reason]),
  +    lager:info([{job_id,Job#pushy_job.id}],
  +                "Job ~p completed with state ~p", [Job#pushy_job.id, Reason]),
       State1 = add_job_complete_event(State, Reason),
       post_to_subscribers(State1, done),
       Job2 = Job#pushy_job{status = Reason},
  
positive.code:                     State1 = add_run_start_event(State, NodeName),
                      set_node_state(NodeRef, running, State1);
          running  -> State;
          terminal -> 
                      State1 = add_run_complete_event(State, NodeName, client_died_while_running),
                      send_to_rehab(NodeRef, State1)
      end,
  
negative.code:         #state{job = Job, voting_timeout = VotingTimeout} = State) ->
      lager:debug([{job_id,Job#pushy_job.id}],
                  "Timeout occurred during voting on job ~p after ~ps", [Job#pushy_job.id, VotingTimeout]),
      State1 = do_on_matching_state(new, fun(N, S) -> add_quorum_vote_event(S, N#pushy_job_node.node_name, voting_timeout) end, State),
      % Set all nodes that have not responded to the vote, to new, forcing voting to finish
      State2 = send_matching_to_rehab(new, unavailable, State1),
      maybe_finished_voting(State2);
  