This is a really weird bug that is high impact. For some reason if an error occurs and we call report_error/report_exception at any point when uploading a request body it doesn't seem to cause the task from the http_client::request() function to be signaled. I've stepped through the code and don't understand why this isn't working. It looks like the correct task is being set.
This needs further investigation.
Currently the following test cases are disabled in request_stream_tests.cpp because they will hang on this bug:
set_body_stream_exception
stream_close_early
stream_close_early_with_exception_and_contentlength
stream_close_early_with_contentlength
This needs further investigation.
Currently the following test cases are disabled in request_stream_tests.cpp because they will hang on this bug:
set_body_stream_exception
stream_close_early
stream_close_early_with_exception_and_contentlength
stream_close_early_with_contentlength