message: Return an error instead of assertion when processing an ill-formed graph or an
  invalid set of fetch nodes
diff: @@ -323,8 +323,13 @@ Status VirtualScheduler::Init() {
  }
  // Get the nodes that would run to output fetch_nodes.
  + bool ill_formed = false;
  std::vector<const NodeDef*> nodes =
  - ComputeTransitiveFanin(graph, fetch_nodes);
  + ComputeTransitiveFanin(graph, fetch_nodes, &ill_formed);
  + if (ill_formed) {
  + return errors::InvalidArgument(
  + "Ill formed graph or invalid set of fetch nodes specified");
  + }
  // TODO(dyoon): this is a bit inefficient as name_to_node is already built in
  // ComputeTransitiveFanin().
  