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);