| 
					
				 | 
			
			
				@@ -45,7 +45,7 @@ struct call_data { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure recv_trailing_metadata_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure* original_recv_trailing_metadata_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_error* recv_trailing_metadata_error; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  bool seen_recv_trailing_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  bool seen_recv_trailing_metadata_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_metadata_array md; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const grpc_metadata* consumed_md; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   size_t num_consumed_md; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -119,7 +119,7 @@ static void on_md_processing_done_inner(grpc_call_element* elem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   calld->recv_initial_metadata_error = GRPC_ERROR_REF(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure* closure = calld->original_recv_initial_metadata_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   calld->original_recv_initial_metadata_ready = nullptr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (calld->seen_recv_trailing_ready) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (calld->seen_recv_trailing_metadata_ready) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     GRPC_CALL_COMBINER_START(calld->call_combiner, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              &calld->recv_trailing_metadata_ready, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              calld->recv_trailing_metadata_error, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -196,7 +196,7 @@ static void recv_initial_metadata_ready(void* arg, grpc_error* error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   grpc_closure* closure = calld->original_recv_initial_metadata_ready; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   calld->original_recv_initial_metadata_ready = nullptr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (calld->seen_recv_trailing_ready) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (calld->seen_recv_trailing_metadata_ready) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     GRPC_CALL_COMBINER_START(calld->call_combiner, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              &calld->recv_trailing_metadata_ready, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                              calld->recv_trailing_metadata_error, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -210,13 +210,11 @@ static void recv_trailing_metadata_ready(void* user_data, grpc_error* err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   call_data* calld = static_cast<call_data*>(elem->call_data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (calld->original_recv_initial_metadata_ready != nullptr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     calld->recv_trailing_metadata_error = GRPC_ERROR_REF(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    calld->seen_recv_trailing_ready = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    GRPC_CLOSURE_INIT(&calld->recv_trailing_metadata_ready, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      recv_trailing_metadata_ready, elem, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      grpc_schedule_on_exec_ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    calld->seen_recv_trailing_metadata_ready = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     GRPC_CALL_COMBINER_STOP(calld->call_combiner, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             "deferring recv_trailing_metadata_ready until " 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             "after recv_initial_metadata_ready"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   err = grpc_error_add_child( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       GRPC_ERROR_REF(err), GRPC_ERROR_REF(calld->recv_initial_metadata_error)); 
			 |