kpayson64 7 年之前
父节点
当前提交
e2a9e6cf72
共有 1 个文件被更改,包括 8 次插入3 次删除
  1. 8 3
      src/core/lib/surface/call.cc

+ 8 - 3
src/core/lib/surface/call.cc

@@ -1015,10 +1015,15 @@ static void recv_trailing_filter(void* args, grpc_metadata_batch* b,
     set_final_status(call, GRPC_ERROR_REF(error));
     grpc_metadata_batch_remove(b, b->idx.named.grpc_status);
     GRPC_ERROR_UNREF(error);
-  } else {
-    // TODO(kpayson) batch completed successfully w/no error + no status, should
-    // we assert instead?
+  } else if (!call->is_client) {
     set_final_status(call, GRPC_ERROR_NONE);
+  } else {
+    gpr_log(GPR_DEBUG,
+            "Received trailing metadata with no error and no status");
+    set_final_status(
+        call, grpc_error_set_int(
+                  GRPC_ERROR_CREATE_FROM_STATIC_STRING("No status received"),
+                  GRPC_ERROR_INT_GRPC_STATUS, GRPC_STATUS_UNKNOWN));
   }
   publish_app_metadata(call, b, true);
   GRPC_ERROR_UNREF(batch_error);