message: Fix undefined behavior in CollectiveReduceV2 and others
  We should not call done after it's moved.
diff: @@ -482,15 +482,17 @@ class CollectiveOpV2Kernel : public AsyncOpKernel {
  const Tensor& group_size, const Tensor& group_key,
  const Tensor& instance_key) {
  if (group_size.dims() > 0) {
  - return errors::Internal("Unexpected dimensions on input group_size, got ",
  + return errors::InvalidArgument(
  + "Unexpected dimensions on input group_size, got ",
  group_size.shape().DebugString());
  }
  if (group_key.dims() > 0) {
  - return errors::Internal("Unexpected dimensions on input group_key, got ",
  + return errors::InvalidArgument(
  + "Unexpected dimensions on input group_key, got ",
  group_key.shape().DebugString());
  }
  if (instance_key.dims() > 0) {
  - return errors::Internal(
  + return errors::InvalidArgument(
  "Unexpected dimensions on input instance_key, got ",
  instance_key.shape().DebugString());
  }
  @@ -613,7 +615,7 @@ class CollectiveReduceV2OpKernel : public CollectiveOpV2Kernel {
  /*group_size*/ c->input(1),
  /*group_key*/ c->input(2),
  /*instance_key*/ c->input(3)),
  - done);
  + done_with_cleanup);
  col_params->instance.shape = c->input(0).shape();
  col_params->merge_op = merge_op_.get();
  col_params->final_op = final_op_.get();
  