@@ -45,14 +45,13 @@ struct aws_s3_request *aws_s3_request_new(
4545 return request ;
4646}
4747
48- void s_populate_metrics_from_message (struct aws_s3_request * request ,
49- struct aws_http_message * message ) {
48+ void s_populate_metrics_from_message (struct aws_s3_request * request , struct aws_http_message * message ) {
5049 struct aws_byte_cursor out_path ;
5150 AWS_ZERO_STRUCT (out_path );
5251 int err = aws_http_message_get_request_path (message , & out_path );
5352 /* If there is no path of the message, it should be a program error. */
5453 AWS_ASSERT (!err );
55- request -> send_data .metrics -> req_resp_info_metrics .request_path_query =
54+ request -> send_data .metrics -> req_resp_info_metrics .request_path_query =
5655 aws_string_new_from_cursor (request -> send_data .metrics -> allocator , & out_path );
5756 AWS_ASSERT (request -> send_data .metrics -> req_resp_info_metrics .request_path_query != NULL );
5857
@@ -63,12 +62,12 @@ void s_populate_metrics_from_message(struct aws_s3_request *request,
6362 AWS_ASSERT (message_headers );
6463 err = aws_http_headers_get (message_headers , g_host_header_name , & host_header_value );
6564 AWS_ASSERT (!err );
66- request -> send_data .metrics -> req_resp_info_metrics .host_address =
65+ request -> send_data .metrics -> req_resp_info_metrics .host_address =
6766 aws_string_new_from_cursor (request -> send_data .metrics -> allocator , & host_header_value );
6867 AWS_ASSERT (request -> send_data .metrics -> req_resp_info_metrics .host_address != NULL );
6968
7069 request -> send_data .metrics -> req_resp_info_metrics .request_type = request -> request_type ;
71- request -> send_data .metrics -> req_resp_info_metrics .operation_name =
70+ request -> send_data .metrics -> req_resp_info_metrics .operation_name =
7271 aws_string_new_from_string (request -> send_data .metrics -> allocator , request -> operation_name );
7372
7473 (void )err ;
@@ -115,6 +114,8 @@ void aws_s3_request_setup_send_data(struct aws_s3_request *request, struct aws_h
115114static void s_s3_request_clean_up_send_data_message (struct aws_s3_request * request ) {
116115 AWS_PRECONDITION (request );
117116
117+ request -> send_data .metrics = aws_s3_request_metrics_release (request -> send_data .metrics );
118+
118119 struct aws_http_message * message = request -> send_data .message ;
119120
120121 if (message == NULL ) {
@@ -128,7 +129,8 @@ static void s_s3_request_clean_up_send_data_message(struct aws_s3_request *reque
128129void aws_s3_request_clean_up_send_data (struct aws_s3_request * request ) {
129130 AWS_PRECONDITION (request );
130131 /* The metrics should be collected and provided to user before reaching here */
131- AWS_FATAL_ASSERT (request -> send_data .metrics == NULL );
132+ AWS_FATAL_ASSERT (
133+ request -> send_data .metrics == NULL || request -> send_data .metrics -> time_metrics .start_timestamp_ns == -1 );
132134
133135 s_s3_request_clean_up_send_data_message (request );
134136
@@ -215,7 +217,7 @@ struct aws_s3_request_metrics *aws_s3_request_metrics_new(struct aws_allocator *
215217
216218 metrics -> req_resp_info_metrics .response_status = -1 ;
217219
218- aws_ref_count_init (& metrics -> ref_count , metrics , s_s3_request_metrics_destroy );/**/
220+ aws_ref_count_init (& metrics -> ref_count , metrics , s_s3_request_metrics_destroy ); /**/
219221
220222 return metrics ;
221223}
0 commit comments