Skip to content

Fix fault injection filter to still run trailing md closure even if no error#25926

Merged
stanley-cheung merged 1 commit intogrpc:masterfrom
stanley-cheung:fix-fault-injection-filter-closure
Apr 8, 2021
Merged

Fix fault injection filter to still run trailing md closure even if no error#25926
stanley-cheung merged 1 commit intogrpc:masterfrom
stanley-cheung:fix-fault-injection-filter-closure

Conversation

@stanley-cheung
Copy link
Copy Markdown
Contributor

@stanley-cheung stanley-cheung commented Apr 8, 2021

Attempt to fix the issue seen in #25696 (comment). A short summary is that, after turning on the GRPC_XDS_EXPERIMENTAL_FAULT_INJECTION env var, PHP cannot complete 1 RPC in the xDS v3 tests. The grpc_completion_queue_pluck() call to get the UnaryCall response message is stuck and does not return.

Yash noticed that in the fault injection filter, if calld->abort_error_ == GRPC_ERROR_NONE, then the original_recv_trailing_metadata_ready_ closure were not run.

This may not be the right fix but I'd like to see if this fixes the problem I have been seeing with the PHP + v3 xds tests failing. So far, for the ping_pong test, with this fix, I am able to get the RPCs to complete normally now.

@stanley-cheung stanley-cheung added area/core release notes: no Indicates if PR should not be in release notes labels Apr 8, 2021
@stanley-cheung stanley-cheung requested a review from lidizheng April 8, 2021 05:14
Copy link
Copy Markdown
Contributor

@lidizheng lidizheng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this. My bad. I wonder how can we catch it in tests? Do you know why this wrong logic only impacts PHP implementation?

@stanley-cheung
Copy link
Copy Markdown
Contributor Author

Yea I will check other lang to see why PHP has exposed this and in what way PHP does things differently.

@stanley-cheung
Copy link
Copy Markdown
Contributor Author

Merging this for now. The investigation and whether to add test can happen in parallel.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/core release notes: no Indicates if PR should not be in release notes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants