diff options
author | Noah Eisen <ncteisen@google.com> | 2016-10-27 20:44:50 -0700 |
---|---|---|
committer | Noah Eisen <ncteisen@google.com> | 2016-10-27 20:44:50 -0700 |
commit | c02bd2d31d7953c30cdbf9504e56bac7f6f09d3d (patch) | |
tree | f3bbf36037fab3d04401a2b10848df2cf7d127ae | |
parent | 7fc1d4e8d7c66b506e4b9e39ebac4dfd6001b4c1 (diff) | |
parent | 51fc01dffabf778f8dc4697db4bc33461a29683b (diff) |
Merge branch 'master' of https://github.com/grpc/grpc into cpp_unimplemented_service
242 files changed, 21110 insertions, 2199 deletions
@@ -200,27 +200,34 @@ cc_library( "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_posix.h", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.h", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_cv.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.h", "src/core/lib/json/json_common.h", @@ -242,6 +249,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.h", "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", @@ -299,12 +307,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.h", "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.h", "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.h", "src/core/ext/client_channel/uri_parser.h", @@ -345,6 +351,7 @@ cc_library( "src/core/lib/iomgr/combiner.c", "src/core/lib/iomgr/endpoint.c", "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_uv.c", "src/core/lib/iomgr/endpoint_pair_windows.c", "src/core/lib/iomgr/error.c", "src/core/lib/iomgr/ev_epoll_linux.c", @@ -356,28 +363,38 @@ cc_library( "src/core/lib/iomgr/iocp_windows.c", "src/core/lib/iomgr/iomgr.c", "src/core/lib/iomgr/iomgr_posix.c", + "src/core/lib/iomgr/iomgr_uv.c", "src/core/lib/iomgr/iomgr_windows.c", "src/core/lib/iomgr/load_file.c", "src/core/lib/iomgr/network_status_tracker.c", "src/core/lib/iomgr/polling_entity.c", + "src/core/lib/iomgr/pollset_set_uv.c", "src/core/lib/iomgr/pollset_set_windows.c", + "src/core/lib/iomgr/pollset_uv.c", "src/core/lib/iomgr/pollset_windows.c", "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_uv.c", "src/core/lib/iomgr/resolve_address_windows.c", "src/core/lib/iomgr/sockaddr_utils.c", "src/core/lib/iomgr/socket_utils_common_posix.c", "src/core/lib/iomgr/socket_utils_linux.c", "src/core/lib/iomgr/socket_utils_posix.c", + "src/core/lib/iomgr/socket_utils_uv.c", + "src/core/lib/iomgr/socket_utils_windows.c", "src/core/lib/iomgr/socket_windows.c", "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_uv.c", "src/core/lib/iomgr/tcp_client_windows.c", "src/core/lib/iomgr/tcp_posix.c", "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_uv.c", "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_uv.c", "src/core/lib/iomgr/tcp_windows.c", "src/core/lib/iomgr/time_averaged_stats.c", - "src/core/lib/iomgr/timer.c", + "src/core/lib/iomgr/timer_generic.c", "src/core/lib/iomgr/timer_heap.c", + "src/core/lib/iomgr/timer_uv.c", "src/core/lib/iomgr/udp_server.c", "src/core/lib/iomgr/unix_sockets_posix.c", "src/core/lib/iomgr/unix_sockets_posix_noop.c", @@ -386,6 +403,7 @@ cc_library( "src/core/lib/iomgr/wakeup_fd_nospecial.c", "src/core/lib/iomgr/wakeup_fd_pipe.c", "src/core/lib/iomgr/wakeup_fd_posix.c", + "src/core/lib/iomgr/workqueue_uv.c", "src/core/lib/iomgr/workqueue_windows.c", "src/core/lib/json/json.c", "src/core/lib/json/json_reader.c", @@ -414,6 +432,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.c", "src/core/lib/transport/metadata.c", "src/core/lib/transport/metadata_batch.c", + "src/core/lib/transport/method_config.c", "src/core/lib/transport/static_metadata.c", "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", @@ -447,8 +466,7 @@ cc_library( "src/core/lib/security/credentials/credentials.c", "src/core/lib/security/credentials/credentials_metadata.c", "src/core/lib/security/credentials/fake/fake_credentials.c", - "src/core/lib/security/credentials/google_default/credentials_posix.c", - "src/core/lib/security/credentials/google_default/credentials_windows.c", + "src/core/lib/security/credentials/google_default/credentials_generic.c", "src/core/lib/security/credentials/google_default/google_default_credentials.c", "src/core/lib/security/credentials/iam/iam_credentials.c", "src/core/lib/security/credentials/jwt/json_token.c", @@ -481,12 +499,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.c", "src/core/ext/client_channel/lb_policy_factory.c", "src/core/ext/client_channel/lb_policy_registry.c", - "src/core/ext/client_channel/method_config.c", "src/core/ext/client_channel/parse_address.c", "src/core/ext/client_channel/resolver.c", "src/core/ext/client_channel/resolver_factory.c", "src/core/ext/client_channel/resolver_registry.c", - "src/core/ext/client_channel/resolver_result.c", "src/core/ext/client_channel/subchannel.c", "src/core/ext/client_channel/subchannel_index.c", "src/core/ext/client_channel/uri_parser.c", @@ -605,27 +621,34 @@ cc_library( "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_posix.h", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.h", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_cv.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.h", "src/core/lib/json/json_common.h", @@ -647,6 +670,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.h", "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", @@ -681,12 +705,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.h", "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.h", "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.h", "src/core/ext/client_channel/uri_parser.h", @@ -735,6 +757,7 @@ cc_library( "src/core/lib/iomgr/combiner.c", "src/core/lib/iomgr/endpoint.c", "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_uv.c", "src/core/lib/iomgr/endpoint_pair_windows.c", "src/core/lib/iomgr/error.c", "src/core/lib/iomgr/ev_epoll_linux.c", @@ -746,28 +769,38 @@ cc_library( "src/core/lib/iomgr/iocp_windows.c", "src/core/lib/iomgr/iomgr.c", "src/core/lib/iomgr/iomgr_posix.c", + "src/core/lib/iomgr/iomgr_uv.c", "src/core/lib/iomgr/iomgr_windows.c", "src/core/lib/iomgr/load_file.c", "src/core/lib/iomgr/network_status_tracker.c", "src/core/lib/iomgr/polling_entity.c", + "src/core/lib/iomgr/pollset_set_uv.c", "src/core/lib/iomgr/pollset_set_windows.c", + "src/core/lib/iomgr/pollset_uv.c", "src/core/lib/iomgr/pollset_windows.c", "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_uv.c", "src/core/lib/iomgr/resolve_address_windows.c", "src/core/lib/iomgr/sockaddr_utils.c", "src/core/lib/iomgr/socket_utils_common_posix.c", "src/core/lib/iomgr/socket_utils_linux.c", "src/core/lib/iomgr/socket_utils_posix.c", + "src/core/lib/iomgr/socket_utils_uv.c", + "src/core/lib/iomgr/socket_utils_windows.c", "src/core/lib/iomgr/socket_windows.c", "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_uv.c", "src/core/lib/iomgr/tcp_client_windows.c", "src/core/lib/iomgr/tcp_posix.c", "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_uv.c", "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_uv.c", "src/core/lib/iomgr/tcp_windows.c", "src/core/lib/iomgr/time_averaged_stats.c", - "src/core/lib/iomgr/timer.c", + "src/core/lib/iomgr/timer_generic.c", "src/core/lib/iomgr/timer_heap.c", + "src/core/lib/iomgr/timer_uv.c", "src/core/lib/iomgr/udp_server.c", "src/core/lib/iomgr/unix_sockets_posix.c", "src/core/lib/iomgr/unix_sockets_posix_noop.c", @@ -776,6 +809,7 @@ cc_library( "src/core/lib/iomgr/wakeup_fd_nospecial.c", "src/core/lib/iomgr/wakeup_fd_pipe.c", "src/core/lib/iomgr/wakeup_fd_posix.c", + "src/core/lib/iomgr/workqueue_uv.c", "src/core/lib/iomgr/workqueue_windows.c", "src/core/lib/json/json.c", "src/core/lib/json/json_reader.c", @@ -804,6 +838,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.c", "src/core/lib/transport/metadata.c", "src/core/lib/transport/metadata_batch.c", + "src/core/lib/transport/method_config.c", "src/core/lib/transport/static_metadata.c", "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", @@ -845,12 +880,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.c", "src/core/ext/client_channel/lb_policy_factory.c", "src/core/ext/client_channel/lb_policy_registry.c", - "src/core/ext/client_channel/method_config.c", "src/core/ext/client_channel/parse_address.c", "src/core/ext/client_channel/resolver.c", "src/core/ext/client_channel/resolver_factory.c", "src/core/ext/client_channel/resolver_registry.c", - "src/core/ext/client_channel/resolver_result.c", "src/core/ext/client_channel/subchannel.c", "src/core/ext/client_channel/subchannel_index.c", "src/core/ext/client_channel/uri_parser.c", @@ -860,8 +893,7 @@ cc_library( "src/core/lib/security/credentials/credentials.c", "src/core/lib/security/credentials/credentials_metadata.c", "src/core/lib/security/credentials/fake/fake_credentials.c", - "src/core/lib/security/credentials/google_default/credentials_posix.c", - "src/core/lib/security/credentials/google_default/credentials_windows.c", + "src/core/lib/security/credentials/google_default/credentials_generic.c", "src/core/lib/security/credentials/google_default/google_default_credentials.c", "src/core/lib/security/credentials/iam/iam_credentials.c", "src/core/lib/security/credentials/jwt/json_token.c", @@ -965,27 +997,34 @@ cc_library( "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_posix.h", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.h", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_cv.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.h", "src/core/lib/json/json_common.h", @@ -1007,6 +1046,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.h", "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", @@ -1040,12 +1080,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.h", "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.h", "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.h", "src/core/ext/client_channel/uri_parser.h", @@ -1087,6 +1125,7 @@ cc_library( "src/core/lib/iomgr/combiner.c", "src/core/lib/iomgr/endpoint.c", "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_uv.c", "src/core/lib/iomgr/endpoint_pair_windows.c", "src/core/lib/iomgr/error.c", "src/core/lib/iomgr/ev_epoll_linux.c", @@ -1098,28 +1137,38 @@ cc_library( "src/core/lib/iomgr/iocp_windows.c", "src/core/lib/iomgr/iomgr.c", "src/core/lib/iomgr/iomgr_posix.c", + "src/core/lib/iomgr/iomgr_uv.c", "src/core/lib/iomgr/iomgr_windows.c", "src/core/lib/iomgr/load_file.c", "src/core/lib/iomgr/network_status_tracker.c", "src/core/lib/iomgr/polling_entity.c", + "src/core/lib/iomgr/pollset_set_uv.c", "src/core/lib/iomgr/pollset_set_windows.c", + "src/core/lib/iomgr/pollset_uv.c", "src/core/lib/iomgr/pollset_windows.c", "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_uv.c", "src/core/lib/iomgr/resolve_address_windows.c", "src/core/lib/iomgr/sockaddr_utils.c", "src/core/lib/iomgr/socket_utils_common_posix.c", "src/core/lib/iomgr/socket_utils_linux.c", "src/core/lib/iomgr/socket_utils_posix.c", + "src/core/lib/iomgr/socket_utils_uv.c", + "src/core/lib/iomgr/socket_utils_windows.c", "src/core/lib/iomgr/socket_windows.c", "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_uv.c", "src/core/lib/iomgr/tcp_client_windows.c", "src/core/lib/iomgr/tcp_posix.c", "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_uv.c", "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_uv.c", "src/core/lib/iomgr/tcp_windows.c", "src/core/lib/iomgr/time_averaged_stats.c", - "src/core/lib/iomgr/timer.c", + "src/core/lib/iomgr/timer_generic.c", "src/core/lib/iomgr/timer_heap.c", + "src/core/lib/iomgr/timer_uv.c", "src/core/lib/iomgr/udp_server.c", "src/core/lib/iomgr/unix_sockets_posix.c", "src/core/lib/iomgr/unix_sockets_posix_noop.c", @@ -1128,6 +1177,7 @@ cc_library( "src/core/lib/iomgr/wakeup_fd_nospecial.c", "src/core/lib/iomgr/wakeup_fd_pipe.c", "src/core/lib/iomgr/wakeup_fd_posix.c", + "src/core/lib/iomgr/workqueue_uv.c", "src/core/lib/iomgr/workqueue_windows.c", "src/core/lib/json/json.c", "src/core/lib/json/json_reader.c", @@ -1156,6 +1206,7 @@ cc_library( "src/core/lib/transport/mdstr_hash_table.c", "src/core/lib/transport/metadata.c", "src/core/lib/transport/metadata_batch.c", + "src/core/lib/transport/method_config.c", "src/core/lib/transport/static_metadata.c", "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", @@ -1197,12 +1248,10 @@ cc_library( "src/core/ext/client_channel/lb_policy.c", "src/core/ext/client_channel/lb_policy_factory.c", "src/core/ext/client_channel/lb_policy_registry.c", - "src/core/ext/client_channel/method_config.c", "src/core/ext/client_channel/parse_address.c", "src/core/ext/client_channel/resolver.c", "src/core/ext/client_channel/resolver_factory.c", "src/core/ext/client_channel/resolver_registry.c", - "src/core/ext/client_channel/resolver_result.c", "src/core/ext/client_channel/subchannel.c", "src/core/ext/client_channel/subchannel_index.c", "src/core/ext/client_channel/uri_parser.c", @@ -2000,6 +2049,7 @@ objc_library( "src/core/lib/iomgr/combiner.c", "src/core/lib/iomgr/endpoint.c", "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_uv.c", "src/core/lib/iomgr/endpoint_pair_windows.c", "src/core/lib/iomgr/error.c", "src/core/lib/iomgr/ev_epoll_linux.c", @@ -2011,28 +2061,38 @@ objc_library( "src/core/lib/iomgr/iocp_windows.c", "src/core/lib/iomgr/iomgr.c", "src/core/lib/iomgr/iomgr_posix.c", + "src/core/lib/iomgr/iomgr_uv.c", "src/core/lib/iomgr/iomgr_windows.c", "src/core/lib/iomgr/load_file.c", "src/core/lib/iomgr/network_status_tracker.c", "src/core/lib/iomgr/polling_entity.c", + "src/core/lib/iomgr/pollset_set_uv.c", "src/core/lib/iomgr/pollset_set_windows.c", + "src/core/lib/iomgr/pollset_uv.c", "src/core/lib/iomgr/pollset_windows.c", "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_uv.c", "src/core/lib/iomgr/resolve_address_windows.c", "src/core/lib/iomgr/sockaddr_utils.c", "src/core/lib/iomgr/socket_utils_common_posix.c", "src/core/lib/iomgr/socket_utils_linux.c", "src/core/lib/iomgr/socket_utils_posix.c", + "src/core/lib/iomgr/socket_utils_uv.c", + "src/core/lib/iomgr/socket_utils_windows.c", "src/core/lib/iomgr/socket_windows.c", "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_uv.c", "src/core/lib/iomgr/tcp_client_windows.c", "src/core/lib/iomgr/tcp_posix.c", "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_uv.c", "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_uv.c", "src/core/lib/iomgr/tcp_windows.c", "src/core/lib/iomgr/time_averaged_stats.c", - "src/core/lib/iomgr/timer.c", + "src/core/lib/iomgr/timer_generic.c", "src/core/lib/iomgr/timer_heap.c", + "src/core/lib/iomgr/timer_uv.c", "src/core/lib/iomgr/udp_server.c", "src/core/lib/iomgr/unix_sockets_posix.c", "src/core/lib/iomgr/unix_sockets_posix_noop.c", @@ -2041,6 +2101,7 @@ objc_library( "src/core/lib/iomgr/wakeup_fd_nospecial.c", "src/core/lib/iomgr/wakeup_fd_pipe.c", "src/core/lib/iomgr/wakeup_fd_posix.c", + "src/core/lib/iomgr/workqueue_uv.c", "src/core/lib/iomgr/workqueue_windows.c", "src/core/lib/json/json.c", "src/core/lib/json/json_reader.c", @@ -2069,6 +2130,7 @@ objc_library( "src/core/lib/transport/mdstr_hash_table.c", "src/core/lib/transport/metadata.c", "src/core/lib/transport/metadata_batch.c", + "src/core/lib/transport/method_config.c", "src/core/lib/transport/static_metadata.c", "src/core/lib/transport/timeout_encoding.c", "src/core/lib/transport/transport.c", @@ -2102,8 +2164,7 @@ objc_library( "src/core/lib/security/credentials/credentials.c", "src/core/lib/security/credentials/credentials_metadata.c", "src/core/lib/security/credentials/fake/fake_credentials.c", - "src/core/lib/security/credentials/google_default/credentials_posix.c", - "src/core/lib/security/credentials/google_default/credentials_windows.c", + "src/core/lib/security/credentials/google_default/credentials_generic.c", "src/core/lib/security/credentials/google_default/google_default_credentials.c", "src/core/lib/security/credentials/iam/iam_credentials.c", "src/core/lib/security/credentials/jwt/json_token.c", @@ -2136,12 +2197,10 @@ objc_library( "src/core/ext/client_channel/lb_policy.c", "src/core/ext/client_channel/lb_policy_factory.c", "src/core/ext/client_channel/lb_policy_registry.c", - "src/core/ext/client_channel/method_config.c", "src/core/ext/client_channel/parse_address.c", "src/core/ext/client_channel/resolver.c", "src/core/ext/client_channel/resolver_factory.c", "src/core/ext/client_channel/resolver_registry.c", - "src/core/ext/client_channel/resolver_result.c", "src/core/ext/client_channel/subchannel.c", "src/core/ext/client_channel/subchannel_index.c", "src/core/ext/client_channel/uri_parser.c", @@ -2239,27 +2298,34 @@ objc_library( "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_posix.h", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.h", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_cv.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.h", "src/core/lib/json/json_common.h", @@ -2281,6 +2347,7 @@ objc_library( "src/core/lib/transport/mdstr_hash_table.h", "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", @@ -2338,12 +2405,10 @@ objc_library( "src/core/ext/client_channel/lb_policy.h", "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.h", "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.h", "src/core/ext/client_channel/uri_parser.h", diff --git a/CMakeLists.txt b/CMakeLists.txt index 128b01e530..af1bb5912a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -310,6 +310,7 @@ add_library(grpc src/core/lib/iomgr/combiner.c src/core/lib/iomgr/endpoint.c src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_uv.c src/core/lib/iomgr/endpoint_pair_windows.c src/core/lib/iomgr/error.c src/core/lib/iomgr/ev_epoll_linux.c @@ -321,28 +322,38 @@ add_library(grpc src/core/lib/iomgr/iocp_windows.c src/core/lib/iomgr/iomgr.c src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_uv.c src/core/lib/iomgr/iomgr_windows.c src/core/lib/iomgr/load_file.c src/core/lib/iomgr/network_status_tracker.c src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_uv.c src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_uv.c src/core/lib/iomgr/pollset_windows.c src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_uv.c src/core/lib/iomgr/resolve_address_windows.c src/core/lib/iomgr/sockaddr_utils.c src/core/lib/iomgr/socket_utils_common_posix.c src/core/lib/iomgr/socket_utils_linux.c src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_utils_uv.c + src/core/lib/iomgr/socket_utils_windows.c src/core/lib/iomgr/socket_windows.c src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_uv.c src/core/lib/iomgr/tcp_client_windows.c src/core/lib/iomgr/tcp_posix.c src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_uv.c src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_uv.c src/core/lib/iomgr/tcp_windows.c src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_generic.c src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/timer_uv.c src/core/lib/iomgr/udp_server.c src/core/lib/iomgr/unix_sockets_posix.c src/core/lib/iomgr/unix_sockets_posix_noop.c @@ -351,6 +362,7 @@ add_library(grpc src/core/lib/iomgr/wakeup_fd_nospecial.c src/core/lib/iomgr/wakeup_fd_pipe.c src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_uv.c src/core/lib/iomgr/workqueue_windows.c src/core/lib/json/json.c src/core/lib/json/json_reader.c @@ -379,6 +391,7 @@ add_library(grpc src/core/lib/transport/mdstr_hash_table.c src/core/lib/transport/metadata.c src/core/lib/transport/metadata_batch.c + src/core/lib/transport/method_config.c src/core/lib/transport/static_metadata.c src/core/lib/transport/timeout_encoding.c src/core/lib/transport/transport.c @@ -412,8 +425,7 @@ add_library(grpc src/core/lib/security/credentials/credentials.c src/core/lib/security/credentials/credentials_metadata.c src/core/lib/security/credentials/fake/fake_credentials.c - src/core/lib/security/credentials/google_default/credentials_posix.c - src/core/lib/security/credentials/google_default/credentials_windows.c + src/core/lib/security/credentials/google_default/credentials_generic.c src/core/lib/security/credentials/google_default/google_default_credentials.c src/core/lib/security/credentials/iam/iam_credentials.c src/core/lib/security/credentials/jwt/json_token.c @@ -446,12 +458,10 @@ add_library(grpc src/core/ext/client_channel/lb_policy.c src/core/ext/client_channel/lb_policy_factory.c src/core/ext/client_channel/lb_policy_registry.c - src/core/ext/client_channel/method_config.c src/core/ext/client_channel/parse_address.c src/core/ext/client_channel/resolver.c src/core/ext/client_channel/resolver_factory.c src/core/ext/client_channel/resolver_registry.c - src/core/ext/client_channel/resolver_result.c src/core/ext/client_channel/subchannel.c src/core/ext/client_channel/subchannel_index.c src/core/ext/client_channel/uri_parser.c @@ -571,6 +581,7 @@ add_library(grpc_cronet src/core/lib/iomgr/combiner.c src/core/lib/iomgr/endpoint.c src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_uv.c src/core/lib/iomgr/endpoint_pair_windows.c src/core/lib/iomgr/error.c src/core/lib/iomgr/ev_epoll_linux.c @@ -582,28 +593,38 @@ add_library(grpc_cronet src/core/lib/iomgr/iocp_windows.c src/core/lib/iomgr/iomgr.c src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_uv.c src/core/lib/iomgr/iomgr_windows.c src/core/lib/iomgr/load_file.c src/core/lib/iomgr/network_status_tracker.c src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_uv.c src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_uv.c src/core/lib/iomgr/pollset_windows.c src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_uv.c src/core/lib/iomgr/resolve_address_windows.c src/core/lib/iomgr/sockaddr_utils.c src/core/lib/iomgr/socket_utils_common_posix.c src/core/lib/iomgr/socket_utils_linux.c src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_utils_uv.c + src/core/lib/iomgr/socket_utils_windows.c src/core/lib/iomgr/socket_windows.c src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_uv.c src/core/lib/iomgr/tcp_client_windows.c src/core/lib/iomgr/tcp_posix.c src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_uv.c src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_uv.c src/core/lib/iomgr/tcp_windows.c src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_generic.c src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/timer_uv.c src/core/lib/iomgr/udp_server.c src/core/lib/iomgr/unix_sockets_posix.c src/core/lib/iomgr/unix_sockets_posix_noop.c @@ -612,6 +633,7 @@ add_library(grpc_cronet src/core/lib/iomgr/wakeup_fd_nospecial.c src/core/lib/iomgr/wakeup_fd_pipe.c src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_uv.c src/core/lib/iomgr/workqueue_windows.c src/core/lib/json/json.c src/core/lib/json/json_reader.c @@ -640,6 +662,7 @@ add_library(grpc_cronet src/core/lib/transport/mdstr_hash_table.c src/core/lib/transport/metadata.c src/core/lib/transport/metadata_batch.c + src/core/lib/transport/method_config.c src/core/lib/transport/static_metadata.c src/core/lib/transport/timeout_encoding.c src/core/lib/transport/transport.c @@ -681,12 +704,10 @@ add_library(grpc_cronet src/core/ext/client_channel/lb_policy.c src/core/ext/client_channel/lb_policy_factory.c src/core/ext/client_channel/lb_policy_registry.c - src/core/ext/client_channel/method_config.c src/core/ext/client_channel/parse_address.c src/core/ext/client_channel/resolver.c src/core/ext/client_channel/resolver_factory.c src/core/ext/client_channel/resolver_registry.c - src/core/ext/client_channel/resolver_result.c src/core/ext/client_channel/subchannel.c src/core/ext/client_channel/subchannel_index.c src/core/ext/client_channel/uri_parser.c @@ -696,8 +717,7 @@ add_library(grpc_cronet src/core/lib/security/credentials/credentials.c src/core/lib/security/credentials/credentials_metadata.c src/core/lib/security/credentials/fake/fake_credentials.c - src/core/lib/security/credentials/google_default/credentials_posix.c - src/core/lib/security/credentials/google_default/credentials_windows.c + src/core/lib/security/credentials/google_default/credentials_generic.c src/core/lib/security/credentials/google_default/google_default_credentials.c src/core/lib/security/credentials/iam/iam_credentials.c src/core/lib/security/credentials/jwt/json_token.c @@ -804,6 +824,7 @@ add_library(grpc_unsecure src/core/lib/iomgr/combiner.c src/core/lib/iomgr/endpoint.c src/core/lib/iomgr/endpoint_pair_posix.c + src/core/lib/iomgr/endpoint_pair_uv.c src/core/lib/iomgr/endpoint_pair_windows.c src/core/lib/iomgr/error.c src/core/lib/iomgr/ev_epoll_linux.c @@ -815,28 +836,38 @@ add_library(grpc_unsecure src/core/lib/iomgr/iocp_windows.c src/core/lib/iomgr/iomgr.c src/core/lib/iomgr/iomgr_posix.c + src/core/lib/iomgr/iomgr_uv.c src/core/lib/iomgr/iomgr_windows.c src/core/lib/iomgr/load_file.c src/core/lib/iomgr/network_status_tracker.c src/core/lib/iomgr/polling_entity.c + src/core/lib/iomgr/pollset_set_uv.c src/core/lib/iomgr/pollset_set_windows.c + src/core/lib/iomgr/pollset_uv.c src/core/lib/iomgr/pollset_windows.c src/core/lib/iomgr/resolve_address_posix.c + src/core/lib/iomgr/resolve_address_uv.c src/core/lib/iomgr/resolve_address_windows.c src/core/lib/iomgr/sockaddr_utils.c src/core/lib/iomgr/socket_utils_common_posix.c src/core/lib/iomgr/socket_utils_linux.c src/core/lib/iomgr/socket_utils_posix.c + src/core/lib/iomgr/socket_utils_uv.c + src/core/lib/iomgr/socket_utils_windows.c src/core/lib/iomgr/socket_windows.c src/core/lib/iomgr/tcp_client_posix.c + src/core/lib/iomgr/tcp_client_uv.c src/core/lib/iomgr/tcp_client_windows.c src/core/lib/iomgr/tcp_posix.c src/core/lib/iomgr/tcp_server_posix.c + src/core/lib/iomgr/tcp_server_uv.c src/core/lib/iomgr/tcp_server_windows.c + src/core/lib/iomgr/tcp_uv.c src/core/lib/iomgr/tcp_windows.c src/core/lib/iomgr/time_averaged_stats.c - src/core/lib/iomgr/timer.c + src/core/lib/iomgr/timer_generic.c src/core/lib/iomgr/timer_heap.c + src/core/lib/iomgr/timer_uv.c src/core/lib/iomgr/udp_server.c src/core/lib/iomgr/unix_sockets_posix.c src/core/lib/iomgr/unix_sockets_posix_noop.c @@ -845,6 +876,7 @@ add_library(grpc_unsecure src/core/lib/iomgr/wakeup_fd_nospecial.c src/core/lib/iomgr/wakeup_fd_pipe.c src/core/lib/iomgr/wakeup_fd_posix.c + src/core/lib/iomgr/workqueue_uv.c src/core/lib/iomgr/workqueue_windows.c src/core/lib/json/json.c src/core/lib/json/json_reader.c @@ -873,6 +905,7 @@ add_library(grpc_unsecure src/core/lib/transport/mdstr_hash_table.c src/core/lib/transport/metadata.c src/core/lib/transport/metadata_batch.c + src/core/lib/transport/method_config.c src/core/lib/transport/static_metadata.c src/core/lib/transport/timeout_encoding.c src/core/lib/transport/transport.c @@ -914,12 +947,10 @@ add_library(grpc_unsecure src/core/ext/client_channel/lb_policy.c src/core/ext/client_channel/lb_policy_factory.c src/core/ext/client_channel/lb_policy_registry.c - src/core/ext/client_channel/method_config.c src/core/ext/client_channel/parse_address.c src/core/ext/client_channel/resolver.c src/core/ext/client_channel/resolver_factory.c src/core/ext/client_channel/resolver_registry.c - src/core/ext/client_channel/resolver_result.c src/core/ext/client_channel/subchannel.c src/core/ext/client_channel/subchannel_index.c src/core/ext/client_channel/uri_parser.c @@ -345,10 +345,6 @@ HOST_CXX ?= $(CXX) HOST_LD ?= $(LD) HOST_LDXX ?= $(LDXX) -ifdef EXTRA_DEFINES -DEFINES += $(EXTRA_DEFINES) -endif - CFLAGS += -std=c99 -Wsign-conversion -Wconversion $(W_SHADOW) $(W_EXTRA_SEMI) ifeq ($(HAS_CXX11),true) CXXFLAGS += -std=c++11 @@ -447,6 +443,14 @@ LDFLAGS += $(ARCH_FLAGS) LDLIBS += $(addprefix -l, $(LIBS)) LDLIBSXX += $(addprefix -l, $(LIBSXX)) + +CFLAGS += $(EXTRA_CFLAGS) +CXXFLAGS += $(EXTRA_CXXFLAGS) +CPPFLAGS += $(EXTRA_CPPFLAGS) +LDFLAGS += $(EXTRA_LDFLAGS) +DEFINES += $(EXTRA_DEFINES) +LDLIBS += $(EXTRA_LDLIBS) + HOST_CPPFLAGS = $(CPPFLAGS) HOST_CFLAGS = $(CFLAGS) HOST_CXXFLAGS = $(CXXFLAGS) @@ -969,6 +973,8 @@ grpc_jwt_verifier_test: $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test grpc_print_google_default_creds_token: $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token grpc_security_connector_test: $(BINDIR)/$(CONFIG)/grpc_security_connector_test grpc_verify_jwt: $(BINDIR)/$(CONFIG)/grpc_verify_jwt +handshake_client: $(BINDIR)/$(CONFIG)/handshake_client +handshake_server: $(BINDIR)/$(CONFIG)/handshake_server hpack_parser_fuzzer_test: $(BINDIR)/$(CONFIG)/hpack_parser_fuzzer_test hpack_parser_test: $(BINDIR)/$(CONFIG)/hpack_parser_test hpack_table_test: $(BINDIR)/$(CONFIG)/hpack_table_test @@ -1299,6 +1305,8 @@ buildtests_c: privatelibs_c \ $(BINDIR)/$(CONFIG)/grpc_json_token_test \ $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test \ $(BINDIR)/$(CONFIG)/grpc_security_connector_test \ + $(BINDIR)/$(CONFIG)/handshake_client \ + $(BINDIR)/$(CONFIG)/handshake_server \ $(BINDIR)/$(CONFIG)/hpack_parser_test \ $(BINDIR)/$(CONFIG)/hpack_table_test \ $(BINDIR)/$(CONFIG)/http_parser_test \ @@ -1669,6 +1677,10 @@ test_c: buildtests_c $(Q) $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test || ( echo test grpc_jwt_verifier_test failed ; exit 1 ) $(E) "[RUN] Testing grpc_security_connector_test" $(Q) $(BINDIR)/$(CONFIG)/grpc_security_connector_test || ( echo test grpc_security_connector_test failed ; exit 1 ) + $(E) "[RUN] Testing handshake_client" + $(Q) $(BINDIR)/$(CONFIG)/handshake_client || ( echo test handshake_client failed ; exit 1 ) + $(E) "[RUN] Testing handshake_server" + $(Q) $(BINDIR)/$(CONFIG)/handshake_server || ( echo test handshake_server failed ; exit 1 ) $(E) "[RUN] Testing hpack_parser_test" $(Q) $(BINDIR)/$(CONFIG)/hpack_parser_test || ( echo test hpack_parser_test failed ; exit 1 ) $(E) "[RUN] Testing hpack_table_test" @@ -2583,6 +2595,7 @@ LIBGRPC_SRC = \ src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -2594,28 +2607,38 @@ LIBGRPC_SRC = \ src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_utils_uv.c \ + src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -2624,6 +2647,7 @@ LIBGRPC_SRC = \ src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -2652,6 +2676,7 @@ LIBGRPC_SRC = \ src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -2685,8 +2710,7 @@ LIBGRPC_SRC = \ src/core/lib/security/credentials/credentials.c \ src/core/lib/security/credentials/credentials_metadata.c \ src/core/lib/security/credentials/fake/fake_credentials.c \ - src/core/lib/security/credentials/google_default/credentials_posix.c \ - src/core/lib/security/credentials/google_default/credentials_windows.c \ + src/core/lib/security/credentials/google_default/credentials_generic.c \ src/core/lib/security/credentials/google_default/google_default_credentials.c \ src/core/lib/security/credentials/iam/iam_credentials.c \ src/core/lib/security/credentials/jwt/json_token.c \ @@ -2719,12 +2743,10 @@ LIBGRPC_SRC = \ src/core/ext/client_channel/lb_policy.c \ src/core/ext/client_channel/lb_policy_factory.c \ src/core/ext/client_channel/lb_policy_registry.c \ - src/core/ext/client_channel/method_config.c \ src/core/ext/client_channel/parse_address.c \ src/core/ext/client_channel/resolver.c \ src/core/ext/client_channel/resolver_factory.c \ src/core/ext/client_channel/resolver_registry.c \ - src/core/ext/client_channel/resolver_result.c \ src/core/ext/client_channel/subchannel.c \ src/core/ext/client_channel/subchannel_index.c \ src/core/ext/client_channel/uri_parser.c \ @@ -2862,6 +2884,7 @@ LIBGRPC_CRONET_SRC = \ src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -2873,28 +2896,38 @@ LIBGRPC_CRONET_SRC = \ src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_utils_uv.c \ + src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -2903,6 +2936,7 @@ LIBGRPC_CRONET_SRC = \ src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -2931,6 +2965,7 @@ LIBGRPC_CRONET_SRC = \ src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -2972,12 +3007,10 @@ LIBGRPC_CRONET_SRC = \ src/core/ext/client_channel/lb_policy.c \ src/core/ext/client_channel/lb_policy_factory.c \ src/core/ext/client_channel/lb_policy_registry.c \ - src/core/ext/client_channel/method_config.c \ src/core/ext/client_channel/parse_address.c \ src/core/ext/client_channel/resolver.c \ src/core/ext/client_channel/resolver_factory.c \ src/core/ext/client_channel/resolver_registry.c \ - src/core/ext/client_channel/resolver_result.c \ src/core/ext/client_channel/subchannel.c \ src/core/ext/client_channel/subchannel_index.c \ src/core/ext/client_channel/uri_parser.c \ @@ -2987,8 +3020,7 @@ LIBGRPC_CRONET_SRC = \ src/core/lib/security/credentials/credentials.c \ src/core/lib/security/credentials/credentials_metadata.c \ src/core/lib/security/credentials/fake/fake_credentials.c \ - src/core/lib/security/credentials/google_default/credentials_posix.c \ - src/core/lib/security/credentials/google_default/credentials_windows.c \ + src/core/lib/security/credentials/google_default/credentials_generic.c \ src/core/lib/security/credentials/google_default/google_default_credentials.c \ src/core/lib/security/credentials/iam/iam_credentials.c \ src/core/lib/security/credentials/jwt/json_token.c \ @@ -3109,6 +3141,7 @@ LIBGRPC_TEST_UTIL_SRC = \ test/core/util/passthru_endpoint.c \ test/core/util/port_posix.c \ test/core/util/port_server_client.c \ + test/core/util/port_uv.c \ test/core/util/port_windows.c \ test/core/util/slice_splitter.c \ src/core/lib/channel/channel_args.c \ @@ -3131,6 +3164,7 @@ LIBGRPC_TEST_UTIL_SRC = \ src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -3142,28 +3176,38 @@ LIBGRPC_TEST_UTIL_SRC = \ src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_utils_uv.c \ + src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -3172,6 +3216,7 @@ LIBGRPC_TEST_UTIL_SRC = \ src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -3200,6 +3245,7 @@ LIBGRPC_TEST_UTIL_SRC = \ src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -3278,6 +3324,7 @@ LIBGRPC_TEST_UTIL_UNSECURE_SRC = \ test/core/util/passthru_endpoint.c \ test/core/util/port_posix.c \ test/core/util/port_server_client.c \ + test/core/util/port_uv.c \ test/core/util/port_windows.c \ test/core/util/slice_splitter.c \ @@ -3326,6 +3373,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -3337,28 +3385,38 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_utils_uv.c \ + src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -3367,6 +3425,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -3395,6 +3454,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -3436,12 +3496,10 @@ LIBGRPC_UNSECURE_SRC = \ src/core/ext/client_channel/lb_policy.c \ src/core/ext/client_channel/lb_policy_factory.c \ src/core/ext/client_channel/lb_policy_registry.c \ - src/core/ext/client_channel/method_config.c \ src/core/ext/client_channel/parse_address.c \ src/core/ext/client_channel/resolver.c \ src/core/ext/client_channel/resolver_factory.c \ src/core/ext/client_channel/resolver_registry.c \ - src/core/ext/client_channel/resolver_result.c \ src/core/ext/client_channel/subchannel.c \ src/core/ext/client_channel/subchannel_index.c \ src/core/ext/client_channel/uri_parser.c \ @@ -9242,6 +9300,70 @@ endif endif +HANDSHAKE_CLIENT_SRC = \ + test/core/handshake/client_ssl.c \ + +HANDSHAKE_CLIENT_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HANDSHAKE_CLIENT_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/handshake_client: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/handshake_client: $(HANDSHAKE_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_CLIENT_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_client + +endif + +$(OBJDIR)/$(CONFIG)/test/core/handshake/client_ssl.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_handshake_client: $(HANDSHAKE_CLIENT_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(HANDSHAKE_CLIENT_OBJS:.o=.dep) +endif +endif + + +HANDSHAKE_SERVER_SRC = \ + test/core/handshake/server_ssl.c \ + +HANDSHAKE_SERVER_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(HANDSHAKE_SERVER_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/handshake_server: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/handshake_server: $(HANDSHAKE_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(HANDSHAKE_SERVER_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/handshake_server + +endif + +$(OBJDIR)/$(CONFIG)/test/core/handshake/server_ssl.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a + +deps_handshake_server: $(HANDSHAKE_SERVER_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(HANDSHAKE_SERVER_OBJS:.o=.dep) +endif +endif + + HPACK_PARSER_FUZZER_TEST_SRC = \ test/core/transport/chttp2/hpack_parser_fuzzer_test.c \ @@ -16048,8 +16170,7 @@ src/core/lib/security/credentials/composite/composite_credentials.c: $(OPENSSL_D src/core/lib/security/credentials/credentials.c: $(OPENSSL_DEP) src/core/lib/security/credentials/credentials_metadata.c: $(OPENSSL_DEP) src/core/lib/security/credentials/fake/fake_credentials.c: $(OPENSSL_DEP) -src/core/lib/security/credentials/google_default/credentials_posix.c: $(OPENSSL_DEP) -src/core/lib/security/credentials/google_default/credentials_windows.c: $(OPENSSL_DEP) +src/core/lib/security/credentials/google_default/credentials_generic.c: $(OPENSSL_DEP) src/core/lib/security/credentials/google_default/google_default_credentials.c: $(OPENSSL_DEP) src/core/lib/security/credentials/iam/iam_credentials.c: $(OPENSSL_DEP) src/core/lib/security/credentials/jwt/json_token.c: $(OPENSSL_DEP) diff --git a/binding.gyp b/binding.gyp index 8b23cc2e7d..23628f819b 100644 --- a/binding.gyp +++ b/binding.gyp @@ -42,6 +42,9 @@ '.', 'include' ], + 'defines': [ + 'GRPC_UV' + ], 'conditions': [ ['OS == "win"', { "include_dirs": [ @@ -585,6 +588,7 @@ 'src/core/lib/iomgr/combiner.c', 'src/core/lib/iomgr/endpoint.c', 'src/core/lib/iomgr/endpoint_pair_posix.c', + 'src/core/lib/iomgr/endpoint_pair_uv.c', 'src/core/lib/iomgr/endpoint_pair_windows.c', 'src/core/lib/iomgr/error.c', 'src/core/lib/iomgr/ev_epoll_linux.c', @@ -596,28 +600,38 @@ 'src/core/lib/iomgr/iocp_windows.c', 'src/core/lib/iomgr/iomgr.c', 'src/core/lib/iomgr/iomgr_posix.c', + 'src/core/lib/iomgr/iomgr_uv.c', 'src/core/lib/iomgr/iomgr_windows.c', 'src/core/lib/iomgr/load_file.c', 'src/core/lib/iomgr/network_status_tracker.c', 'src/core/lib/iomgr/polling_entity.c', + 'src/core/lib/iomgr/pollset_set_uv.c', 'src/core/lib/iomgr/pollset_set_windows.c', + 'src/core/lib/iomgr/pollset_uv.c', 'src/core/lib/iomgr/pollset_windows.c', 'src/core/lib/iomgr/resolve_address_posix.c', + 'src/core/lib/iomgr/resolve_address_uv.c', 'src/core/lib/iomgr/resolve_address_windows.c', 'src/core/lib/iomgr/sockaddr_utils.c', 'src/core/lib/iomgr/socket_utils_common_posix.c', 'src/core/lib/iomgr/socket_utils_linux.c', 'src/core/lib/iomgr/socket_utils_posix.c', + 'src/core/lib/iomgr/socket_utils_uv.c', + 'src/core/lib/iomgr/socket_utils_windows.c', 'src/core/lib/iomgr/socket_windows.c', 'src/core/lib/iomgr/tcp_client_posix.c', + 'src/core/lib/iomgr/tcp_client_uv.c', 'src/core/lib/iomgr/tcp_client_windows.c', 'src/core/lib/iomgr/tcp_posix.c', 'src/core/lib/iomgr/tcp_server_posix.c', + 'src/core/lib/iomgr/tcp_server_uv.c', 'src/core/lib/iomgr/tcp_server_windows.c', + 'src/core/lib/iomgr/tcp_uv.c', 'src/core/lib/iomgr/tcp_windows.c', 'src/core/lib/iomgr/time_averaged_stats.c', - 'src/core/lib/iomgr/timer.c', + 'src/core/lib/iomgr/timer_generic.c', 'src/core/lib/iomgr/timer_heap.c', + 'src/core/lib/iomgr/timer_uv.c', 'src/core/lib/iomgr/udp_server.c', 'src/core/lib/iomgr/unix_sockets_posix.c', 'src/core/lib/iomgr/unix_sockets_posix_noop.c', @@ -626,6 +640,7 @@ 'src/core/lib/iomgr/wakeup_fd_nospecial.c', 'src/core/lib/iomgr/wakeup_fd_pipe.c', 'src/core/lib/iomgr/wakeup_fd_posix.c', + 'src/core/lib/iomgr/workqueue_uv.c', 'src/core/lib/iomgr/workqueue_windows.c', 'src/core/lib/json/json.c', 'src/core/lib/json/json_reader.c', @@ -654,6 +669,7 @@ 'src/core/lib/transport/mdstr_hash_table.c', 'src/core/lib/transport/metadata.c', 'src/core/lib/transport/metadata_batch.c', + 'src/core/lib/transport/method_config.c', 'src/core/lib/transport/static_metadata.c', 'src/core/lib/transport/timeout_encoding.c', 'src/core/lib/transport/transport.c', @@ -687,8 +703,7 @@ 'src/core/lib/security/credentials/credentials.c', 'src/core/lib/security/credentials/credentials_metadata.c', 'src/core/lib/security/credentials/fake/fake_credentials.c', - 'src/core/lib/security/credentials/google_default/credentials_posix.c', - 'src/core/lib/security/credentials/google_default/credentials_windows.c', + 'src/core/lib/security/credentials/google_default/credentials_generic.c', 'src/core/lib/security/credentials/google_default/google_default_credentials.c', 'src/core/lib/security/credentials/iam/iam_credentials.c', 'src/core/lib/security/credentials/jwt/json_token.c', @@ -721,12 +736,10 @@ 'src/core/ext/client_channel/lb_policy.c', 'src/core/ext/client_channel/lb_policy_factory.c', 'src/core/ext/client_channel/lb_policy_registry.c', - 'src/core/ext/client_channel/method_config.c', 'src/core/ext/client_channel/parse_address.c', 'src/core/ext/client_channel/resolver.c', 'src/core/ext/client_channel/resolver_factory.c', 'src/core/ext/client_channel/resolver_registry.c', - 'src/core/ext/client_channel/resolver_result.c', 'src/core/ext/client_channel/subchannel.c', 'src/core/ext/client_channel/subchannel_index.c', 'src/core/ext/client_channel/uri_parser.c', @@ -815,6 +828,7 @@ "src/node/ext/call_credentials.cc", "src/node/ext/channel.cc", "src/node/ext/channel_credentials.cc", + "src/node/ext/completion_queue.cc", "src/node/ext/completion_queue_async_worker.cc", "src/node/ext/node_grpc.cc", "src/node/ext/server.cc", diff --git a/build.yaml b/build.yaml index 4f4cf96f6f..ed42dcd6a1 100644 --- a/build.yaml +++ b/build.yaml @@ -204,27 +204,34 @@ filegroups: - src/core/lib/iomgr/pollset.h - src/core/lib/iomgr/pollset_set.h - src/core/lib/iomgr/pollset_set_windows.h + - src/core/lib/iomgr/pollset_uv.h - src/core/lib/iomgr/pollset_windows.h + - src/core/lib/iomgr/port.h - src/core/lib/iomgr/resolve_address.h - src/core/lib/iomgr/sockaddr.h - src/core/lib/iomgr/sockaddr_posix.h - src/core/lib/iomgr/sockaddr_utils.h - src/core/lib/iomgr/sockaddr_windows.h + - src/core/lib/iomgr/socket_utils.h - src/core/lib/iomgr/socket_utils_posix.h - src/core/lib/iomgr/socket_windows.h - src/core/lib/iomgr/tcp_client.h - src/core/lib/iomgr/tcp_posix.h - src/core/lib/iomgr/tcp_server.h + - src/core/lib/iomgr/tcp_uv.h - src/core/lib/iomgr/tcp_windows.h - src/core/lib/iomgr/time_averaged_stats.h - src/core/lib/iomgr/timer.h + - src/core/lib/iomgr/timer_generic.h - src/core/lib/iomgr/timer_heap.h + - src/core/lib/iomgr/timer_uv.h - src/core/lib/iomgr/udp_server.h - src/core/lib/iomgr/unix_sockets_posix.h - src/core/lib/iomgr/wakeup_fd_cv.h - src/core/lib/iomgr/wakeup_fd_pipe.h - src/core/lib/iomgr/wakeup_fd_posix.h - src/core/lib/iomgr/workqueue.h + - src/core/lib/iomgr/workqueue_uv.h - src/core/lib/iomgr/workqueue_windows.h - src/core/lib/json/json.h - src/core/lib/json/json_common.h @@ -246,6 +253,7 @@ filegroups: - src/core/lib/transport/mdstr_hash_table.h - src/core/lib/transport/metadata.h - src/core/lib/transport/metadata_batch.h + - src/core/lib/transport/method_config.h - src/core/lib/transport/static_metadata.h - src/core/lib/transport/timeout_encoding.h - src/core/lib/transport/transport.h @@ -271,6 +279,7 @@ filegroups: - src/core/lib/iomgr/combiner.c - src/core/lib/iomgr/endpoint.c - src/core/lib/iomgr/endpoint_pair_posix.c + - src/core/lib/iomgr/endpoint_pair_uv.c - src/core/lib/iomgr/endpoint_pair_windows.c - src/core/lib/iomgr/error.c - src/core/lib/iomgr/ev_epoll_linux.c @@ -282,28 +291,38 @@ filegroups: - src/core/lib/iomgr/iocp_windows.c - src/core/lib/iomgr/iomgr.c - src/core/lib/iomgr/iomgr_posix.c + - src/core/lib/iomgr/iomgr_uv.c - src/core/lib/iomgr/iomgr_windows.c - src/core/lib/iomgr/load_file.c - src/core/lib/iomgr/network_status_tracker.c - src/core/lib/iomgr/polling_entity.c + - src/core/lib/iomgr/pollset_set_uv.c - src/core/lib/iomgr/pollset_set_windows.c + - src/core/lib/iomgr/pollset_uv.c - src/core/lib/iomgr/pollset_windows.c - src/core/lib/iomgr/resolve_address_posix.c + - src/core/lib/iomgr/resolve_address_uv.c - src/core/lib/iomgr/resolve_address_windows.c - src/core/lib/iomgr/sockaddr_utils.c - src/core/lib/iomgr/socket_utils_common_posix.c - src/core/lib/iomgr/socket_utils_linux.c - src/core/lib/iomgr/socket_utils_posix.c + - src/core/lib/iomgr/socket_utils_uv.c + - src/core/lib/iomgr/socket_utils_windows.c - src/core/lib/iomgr/socket_windows.c - src/core/lib/iomgr/tcp_client_posix.c + - src/core/lib/iomgr/tcp_client_uv.c - src/core/lib/iomgr/tcp_client_windows.c - src/core/lib/iomgr/tcp_posix.c - src/core/lib/iomgr/tcp_server_posix.c + - src/core/lib/iomgr/tcp_server_uv.c - src/core/lib/iomgr/tcp_server_windows.c + - src/core/lib/iomgr/tcp_uv.c - src/core/lib/iomgr/tcp_windows.c - src/core/lib/iomgr/time_averaged_stats.c - - src/core/lib/iomgr/timer.c + - src/core/lib/iomgr/timer_generic.c - src/core/lib/iomgr/timer_heap.c + - src/core/lib/iomgr/timer_uv.c - src/core/lib/iomgr/udp_server.c - src/core/lib/iomgr/unix_sockets_posix.c - src/core/lib/iomgr/unix_sockets_posix_noop.c @@ -312,6 +331,7 @@ filegroups: - src/core/lib/iomgr/wakeup_fd_nospecial.c - src/core/lib/iomgr/wakeup_fd_pipe.c - src/core/lib/iomgr/wakeup_fd_posix.c + - src/core/lib/iomgr/workqueue_uv.c - src/core/lib/iomgr/workqueue_windows.c - src/core/lib/json/json.c - src/core/lib/json/json_reader.c @@ -340,6 +360,7 @@ filegroups: - src/core/lib/transport/mdstr_hash_table.c - src/core/lib/transport/metadata.c - src/core/lib/transport/metadata_batch.c + - src/core/lib/transport/method_config.c - src/core/lib/transport/static_metadata.c - src/core/lib/transport/timeout_encoding.c - src/core/lib/transport/transport.c @@ -358,12 +379,10 @@ filegroups: - src/core/ext/client_channel/lb_policy.h - src/core/ext/client_channel/lb_policy_factory.h - src/core/ext/client_channel/lb_policy_registry.h - - src/core/ext/client_channel/method_config.h - src/core/ext/client_channel/parse_address.h - src/core/ext/client_channel/resolver.h - src/core/ext/client_channel/resolver_factory.h - src/core/ext/client_channel/resolver_registry.h - - src/core/ext/client_channel/resolver_result.h - src/core/ext/client_channel/subchannel.h - src/core/ext/client_channel/subchannel_index.h - src/core/ext/client_channel/uri_parser.h @@ -379,12 +398,10 @@ filegroups: - src/core/ext/client_channel/lb_policy.c - src/core/ext/client_channel/lb_policy_factory.c - src/core/ext/client_channel/lb_policy_registry.c - - src/core/ext/client_channel/method_config.c - src/core/ext/client_channel/parse_address.c - src/core/ext/client_channel/resolver.c - src/core/ext/client_channel/resolver_factory.c - src/core/ext/client_channel/resolver_registry.c - - src/core/ext/client_channel/resolver_result.c - src/core/ext/client_channel/subchannel.c - src/core/ext/client_channel/subchannel_index.c - src/core/ext/client_channel/uri_parser.c @@ -483,8 +500,7 @@ filegroups: - src/core/lib/security/credentials/credentials.c - src/core/lib/security/credentials/credentials_metadata.c - src/core/lib/security/credentials/fake/fake_credentials.c - - src/core/lib/security/credentials/google_default/credentials_posix.c - - src/core/lib/security/credentials/google_default/credentials_windows.c + - src/core/lib/security/credentials/google_default/credentials_generic.c - src/core/lib/security/credentials/google_default/google_default_credentials.c - src/core/lib/security/credentials/iam/iam_credentials.c - src/core/lib/security/credentials/jwt/json_token.c @@ -536,6 +552,7 @@ filegroups: - test/core/util/passthru_endpoint.c - test/core/util/port_posix.c - test/core/util/port_server_client.c + - test/core/util/port_uv.c - test/core/util/port_windows.c - test/core/util/slice_splitter.c deps: @@ -664,6 +681,8 @@ filegroups: deps: - gpr secure: true + uses: + - grpc_base - name: grpc++_base language: c++ public_headers: @@ -1357,6 +1376,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: bin_decoder_test build: test language: c @@ -1498,6 +1519,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: connection_refused_test cpu_cost: 0.1 build: test @@ -1520,6 +1543,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: dns_resolver_test build: test language: c @@ -1541,6 +1566,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -1555,6 +1582,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: ev_epoll_linux_test build: test language: c @@ -1565,6 +1594,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - linux - name: fd_conservation_posix_test @@ -1577,6 +1608,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -1591,6 +1624,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -1678,6 +1713,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -1898,6 +1935,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: grpc_create_jwt build: tool language: c @@ -1988,6 +2027,32 @@ targets: deps: - grpc - gpr +- name: handshake_client + build: test + language: c + src: + - test/core/handshake/client_ssl.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr + platforms: + - linux + secure: true +- name: handshake_server + build: test + language: c + src: + - test/core/handshake/server_ssl.c + deps: + - grpc_test_util + - grpc + - gpr_test_util + - gpr + platforms: + - linux + secure: true - name: hpack_parser_fuzzer_test build: fuzzer language: c @@ -2360,6 +2425,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: secure_channel_create_test build: test language: c @@ -2380,6 +2447,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: sequential_connectivity_test build: test language: c @@ -2390,6 +2459,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: server_chttp2_test build: test language: c @@ -2436,6 +2507,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: sockaddr_resolver_test build: test language: c @@ -2466,6 +2539,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -2481,6 +2556,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -2496,6 +2573,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -2510,6 +2589,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -2544,6 +2625,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: timer_list_test build: test language: c @@ -2554,6 +2637,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv - name: transport_connectivity_state_test build: test language: c @@ -2598,6 +2683,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -2635,6 +2722,8 @@ targets: - grpc - gpr_test_util - gpr + exclude_iomgrs: + - uv platforms: - mac - linux @@ -3594,6 +3683,7 @@ node_modules: - src/node/ext/call_credentials.h - src/node/ext/channel.h - src/node/ext/channel_credentials.h + - src/node/ext/completion_queue.h - src/node/ext/completion_queue_async_worker.h - src/node/ext/server.h - src/node/ext/server_credentials.h @@ -3613,6 +3703,7 @@ node_modules: - src/node/ext/call_credentials.cc - src/node/ext/channel.cc - src/node/ext/channel_credentials.cc + - src/node/ext/completion_queue.cc - src/node/ext/completion_queue_async_worker.cc - src/node/ext/node_grpc.cc - src/node/ext/server.cc @@ -104,6 +104,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ + src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -115,28 +116,38 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ + src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ + src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ + src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ + src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ + src/core/lib/iomgr/socket_utils_uv.c \ + src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ + src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ + src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ + src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ - src/core/lib/iomgr/timer.c \ + src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ + src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -145,6 +156,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ + src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -173,6 +185,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ + src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -206,8 +219,7 @@ if test "$PHP_GRPC" != "no"; then src/core/lib/security/credentials/credentials.c \ src/core/lib/security/credentials/credentials_metadata.c \ src/core/lib/security/credentials/fake/fake_credentials.c \ - src/core/lib/security/credentials/google_default/credentials_posix.c \ - src/core/lib/security/credentials/google_default/credentials_windows.c \ + src/core/lib/security/credentials/google_default/credentials_generic.c \ src/core/lib/security/credentials/google_default/google_default_credentials.c \ src/core/lib/security/credentials/iam/iam_credentials.c \ src/core/lib/security/credentials/jwt/json_token.c \ @@ -240,12 +252,10 @@ if test "$PHP_GRPC" != "no"; then src/core/ext/client_channel/lb_policy.c \ src/core/ext/client_channel/lb_policy_factory.c \ src/core/ext/client_channel/lb_policy_registry.c \ - src/core/ext/client_channel/method_config.c \ src/core/ext/client_channel/parse_address.c \ src/core/ext/client_channel/resolver.c \ src/core/ext/client_channel/resolver_factory.c \ src/core/ext/client_channel/resolver_registry.c \ - src/core/ext/client_channel/resolver_result.c \ src/core/ext/client_channel/subchannel.c \ src/core/ext/client_channel/subchannel_index.c \ src/core/ext/client_channel/uri_parser.c \ diff --git a/doc/images/stress_test_framework.png b/doc/images/stress_test_framework.png Binary files differnew file mode 100644 index 0000000000..a5f49f8e10 --- /dev/null +++ b/doc/images/stress_test_framework.png diff --git a/doc/stress_test_framework.md b/doc/stress_test_framework.md new file mode 100644 index 0000000000..18f545e090 --- /dev/null +++ b/doc/stress_test_framework.md @@ -0,0 +1,92 @@ +# Stress Test framework for gRPC + +(Sree Kuchibhotla - sreek@) + +> Status: This is implemented. More details at [README.md](https://github.com/grpc/grpc/blob/master/tools/run_tests/stress_test/README.md) + + +**I. GOALS** + +1) Build a stress test suite for gRPC: + +* Build a stress test suite that can Identify bugs by testing the system (gRPC server/client) under extreme conditions: + * High load + * High concurrency + * Limited resources + * Intermittent failures +* Should be integrated with Jenkins CI + +2) Make it generic enough (i.e build a generic test framework) that can be used for: + +* Executing M instances of a client against N instances of a server with an arbitrarily defined connection matrix + * Execute heterogenous test configurations - for example: Java stress test clients against C++ servers or Node clients against Python servers or TSAN C++ clients vs ASAN C++ Servers etc. + * Easy and Flexible enough that Devs can use it to recreate complex test scenarios + +The implementation effort is divided into two parts: + +* Building a "Stress Test Framework" to run the stress test suites- More details in **Section II** (The idea is that the Stress Test framework is generic enough that it would be easier to modify it to run other suites like interop-tests or custom test scenarios) +* Building a 'Stress test suite' - More details in **section III** + +**Terminology:** + +GCE - Google compute engine +GKE - Google Container engine +Kubernetes - Google's open source service scheduler / orchestrator. + +**Note:** The terms GKE and Kubernetes are used interchangeably in this document + +# II. STRESS TEST FRAMEWORK + +(The details of each step are explained below)) +![image](images/stress_test_framework.png) +**Figure 1** + +### Step 1 Read the test config, generate base docker images + +**_Test Config:_** The test configuration contains the following information: + +* _GKE info:_ GKE project and cluster info +* _Docker images:_ Instructions to build docker images +* _Client templates:_ One or more client templates each containing the following information: + * Which docker image to use + * Path to the client program to launch (within the docker image) + * Parameters to the client program +* _Server templates:_ Similar to Client templates - except that these are for servers +* Test matrix containing the following: + * _Server groups:_ One or more groups of servers containing the following info for each group + * Which server template to use + * How many instances to launch + * _Client groups:_ One or more groups of clients containing the following (for each group): + * Which client template to use + * How many instances to launch + * Which server group to talk to (all clients in this group will talk to all servers in the server group) + +The first step is to read the test config and build the docker images + +**_Stress server docker image:_** The following are the main files in the server docker images + +* _Interop_server:_ The server program +* `run_server.py`: This is a python script which is the entry point of the docker image (i.e this is the script that is called when the docker image is run in GKE). This script launches the interop server and also updates the status in BigQuery. If the interop_server fails for whatever reason, the script launch_server.py logs that status in BigQuery + +**_Stress client docker image:_** + +* Stress client: The stress test client. In addition to talking to the interop_server, the stress client also exports metrics (which can be queried by the metrics_client described below) +* Metrics client: Metrics client connects to the stress_client to get the current qps metrics. +* `run_client.py`: This is a python script which is the entry point of the docker image (i.e this is the script that is called when the docker image is run in GKE). This script launches the stress client and also updates the status in BigQuery. The script then periodically launches metrics client to query the qps from the stress client and then uploads the qps to BigQuery. + +### Step 2) Upload the docker images to GKE +The docker images are uploaded to the GKE registry + +### Step 3) Launch the tests in GKE +The test driver reads the test matrix (described in step 1) and creates the necessary server and client pods in GKE. + +### Step 4) Tests are run in GKE +GKE starts running the tests by calling the entry points in *each* docker image (i.e `run_server.py` or `run_client.py` depending on whcih docker image it is) + +### Step 5) Upload the status to GKE and Monitor the status in GKE +* 5.1 The tests periodically update their status in BigQuery +* 5.2 The test driver periodically checks the status in Bigquery to see if any tests failed. If any tests failed, the driver immediately stops the tests. If not, the driver continues to run the tests for a configurable amount of time. + +### Step 6) Create a summary report +The test driver creates a final summary report containing details about any test failures and information about how to connect the failed pods in GKE for debugging. + diff --git a/gRPC-Core.podspec b/gRPC-Core.podspec index 1ee781ecdf..0e4af8ae6c 100644 --- a/gRPC-Core.podspec +++ b/gRPC-Core.podspec @@ -287,27 +287,34 @@ Pod::Spec.new do |s| 'src/core/lib/iomgr/pollset.h', 'src/core/lib/iomgr/pollset_set.h', 'src/core/lib/iomgr/pollset_set_windows.h', + 'src/core/lib/iomgr/pollset_uv.h', 'src/core/lib/iomgr/pollset_windows.h', + 'src/core/lib/iomgr/port.h', 'src/core/lib/iomgr/resolve_address.h', 'src/core/lib/iomgr/sockaddr.h', 'src/core/lib/iomgr/sockaddr_posix.h', 'src/core/lib/iomgr/sockaddr_utils.h', 'src/core/lib/iomgr/sockaddr_windows.h', + 'src/core/lib/iomgr/socket_utils.h', 'src/core/lib/iomgr/socket_utils_posix.h', 'src/core/lib/iomgr/socket_windows.h', 'src/core/lib/iomgr/tcp_client.h', 'src/core/lib/iomgr/tcp_posix.h', 'src/core/lib/iomgr/tcp_server.h', + 'src/core/lib/iomgr/tcp_uv.h', 'src/core/lib/iomgr/tcp_windows.h', 'src/core/lib/iomgr/time_averaged_stats.h', 'src/core/lib/iomgr/timer.h', + 'src/core/lib/iomgr/timer_generic.h', 'src/core/lib/iomgr/timer_heap.h', + 'src/core/lib/iomgr/timer_uv.h', 'src/core/lib/iomgr/udp_server.h', 'src/core/lib/iomgr/unix_sockets_posix.h', 'src/core/lib/iomgr/wakeup_fd_cv.h', 'src/core/lib/iomgr/wakeup_fd_pipe.h', 'src/core/lib/iomgr/wakeup_fd_posix.h', 'src/core/lib/iomgr/workqueue.h', + 'src/core/lib/iomgr/workqueue_uv.h', 'src/core/lib/iomgr/workqueue_windows.h', 'src/core/lib/json/json.h', 'src/core/lib/json/json_common.h', @@ -329,6 +336,7 @@ Pod::Spec.new do |s| 'src/core/lib/transport/mdstr_hash_table.h', 'src/core/lib/transport/metadata.h', 'src/core/lib/transport/metadata_batch.h', + 'src/core/lib/transport/method_config.h', 'src/core/lib/transport/static_metadata.h', 'src/core/lib/transport/timeout_encoding.h', 'src/core/lib/transport/transport.h', @@ -386,12 +394,10 @@ Pod::Spec.new do |s| 'src/core/ext/client_channel/lb_policy.h', 'src/core/ext/client_channel/lb_policy_factory.h', 'src/core/ext/client_channel/lb_policy_registry.h', - 'src/core/ext/client_channel/method_config.h', 'src/core/ext/client_channel/parse_address.h', 'src/core/ext/client_channel/resolver.h', 'src/core/ext/client_channel/resolver_factory.h', 'src/core/ext/client_channel/resolver_registry.h', - 'src/core/ext/client_channel/resolver_result.h', 'src/core/ext/client_channel/subchannel.h', 'src/core/ext/client_channel/subchannel_index.h', 'src/core/ext/client_channel/uri_parser.h', @@ -436,6 +442,7 @@ Pod::Spec.new do |s| 'src/core/lib/iomgr/combiner.c', 'src/core/lib/iomgr/endpoint.c', 'src/core/lib/iomgr/endpoint_pair_posix.c', + 'src/core/lib/iomgr/endpoint_pair_uv.c', 'src/core/lib/iomgr/endpoint_pair_windows.c', 'src/core/lib/iomgr/error.c', 'src/core/lib/iomgr/ev_epoll_linux.c', @@ -447,28 +454,38 @@ Pod::Spec.new do |s| 'src/core/lib/iomgr/iocp_windows.c', 'src/core/lib/iomgr/iomgr.c', 'src/core/lib/iomgr/iomgr_posix.c', + 'src/core/lib/iomgr/iomgr_uv.c', 'src/core/lib/iomgr/iomgr_windows.c', 'src/core/lib/iomgr/load_file.c', 'src/core/lib/iomgr/network_status_tracker.c', 'src/core/lib/iomgr/polling_entity.c', + 'src/core/lib/iomgr/pollset_set_uv.c', 'src/core/lib/iomgr/pollset_set_windows.c', + 'src/core/lib/iomgr/pollset_uv.c', 'src/core/lib/iomgr/pollset_windows.c', 'src/core/lib/iomgr/resolve_address_posix.c', + 'src/core/lib/iomgr/resolve_address_uv.c', 'src/core/lib/iomgr/resolve_address_windows.c', 'src/core/lib/iomgr/sockaddr_utils.c', 'src/core/lib/iomgr/socket_utils_common_posix.c', 'src/core/lib/iomgr/socket_utils_linux.c', 'src/core/lib/iomgr/socket_utils_posix.c', + 'src/core/lib/iomgr/socket_utils_uv.c', + 'src/core/lib/iomgr/socket_utils_windows.c', 'src/core/lib/iomgr/socket_windows.c', 'src/core/lib/iomgr/tcp_client_posix.c', + 'src/core/lib/iomgr/tcp_client_uv.c', 'src/core/lib/iomgr/tcp_client_windows.c', 'src/core/lib/iomgr/tcp_posix.c', 'src/core/lib/iomgr/tcp_server_posix.c', + 'src/core/lib/iomgr/tcp_server_uv.c', 'src/core/lib/iomgr/tcp_server_windows.c', + 'src/core/lib/iomgr/tcp_uv.c', 'src/core/lib/iomgr/tcp_windows.c', 'src/core/lib/iomgr/time_averaged_stats.c', - 'src/core/lib/iomgr/timer.c', + 'src/core/lib/iomgr/timer_generic.c', 'src/core/lib/iomgr/timer_heap.c', + 'src/core/lib/iomgr/timer_uv.c', 'src/core/lib/iomgr/udp_server.c', 'src/core/lib/iomgr/unix_sockets_posix.c', 'src/core/lib/iomgr/unix_sockets_posix_noop.c', @@ -477,6 +494,7 @@ Pod::Spec.new do |s| 'src/core/lib/iomgr/wakeup_fd_nospecial.c', 'src/core/lib/iomgr/wakeup_fd_pipe.c', 'src/core/lib/iomgr/wakeup_fd_posix.c', + 'src/core/lib/iomgr/workqueue_uv.c', 'src/core/lib/iomgr/workqueue_windows.c', 'src/core/lib/json/json.c', 'src/core/lib/json/json_reader.c', @@ -505,6 +523,7 @@ Pod::Spec.new do |s| 'src/core/lib/transport/mdstr_hash_table.c', 'src/core/lib/transport/metadata.c', 'src/core/lib/transport/metadata_batch.c', + 'src/core/lib/transport/method_config.c', 'src/core/lib/transport/static_metadata.c', 'src/core/lib/transport/timeout_encoding.c', 'src/core/lib/transport/transport.c', @@ -538,8 +557,7 @@ Pod::Spec.new do |s| 'src/core/lib/security/credentials/credentials.c', 'src/core/lib/security/credentials/credentials_metadata.c', 'src/core/lib/security/credentials/fake/fake_credentials.c', - 'src/core/lib/security/credentials/google_default/credentials_posix.c', - 'src/core/lib/security/credentials/google_default/credentials_windows.c', + 'src/core/lib/security/credentials/google_default/credentials_generic.c', 'src/core/lib/security/credentials/google_default/google_default_credentials.c', 'src/core/lib/security/credentials/iam/iam_credentials.c', 'src/core/lib/security/credentials/jwt/json_token.c', @@ -572,12 +590,10 @@ Pod::Spec.new do |s| 'src/core/ext/client_channel/lb_policy.c', 'src/core/ext/client_channel/lb_policy_factory.c', 'src/core/ext/client_channel/lb_policy_registry.c', - 'src/core/ext/client_channel/method_config.c', 'src/core/ext/client_channel/parse_address.c', 'src/core/ext/client_channel/resolver.c', 'src/core/ext/client_channel/resolver_factory.c', 'src/core/ext/client_channel/resolver_registry.c', - 'src/core/ext/client_channel/resolver_result.c', 'src/core/ext/client_channel/subchannel.c', 'src/core/ext/client_channel/subchannel_index.c', 'src/core/ext/client_channel/uri_parser.c', @@ -664,27 +680,34 @@ Pod::Spec.new do |s| 'src/core/lib/iomgr/pollset.h', 'src/core/lib/iomgr/pollset_set.h', 'src/core/lib/iomgr/pollset_set_windows.h', + 'src/core/lib/iomgr/pollset_uv.h', 'src/core/lib/iomgr/pollset_windows.h', + 'src/core/lib/iomgr/port.h', 'src/core/lib/iomgr/resolve_address.h', 'src/core/lib/iomgr/sockaddr.h', 'src/core/lib/iomgr/sockaddr_posix.h', 'src/core/lib/iomgr/sockaddr_utils.h', 'src/core/lib/iomgr/sockaddr_windows.h', + 'src/core/lib/iomgr/socket_utils.h', 'src/core/lib/iomgr/socket_utils_posix.h', 'src/core/lib/iomgr/socket_windows.h', 'src/core/lib/iomgr/tcp_client.h', 'src/core/lib/iomgr/tcp_posix.h', 'src/core/lib/iomgr/tcp_server.h', + 'src/core/lib/iomgr/tcp_uv.h', 'src/core/lib/iomgr/tcp_windows.h', 'src/core/lib/iomgr/time_averaged_stats.h', 'src/core/lib/iomgr/timer.h', + 'src/core/lib/iomgr/timer_generic.h', 'src/core/lib/iomgr/timer_heap.h', + 'src/core/lib/iomgr/timer_uv.h', 'src/core/lib/iomgr/udp_server.h', 'src/core/lib/iomgr/unix_sockets_posix.h', 'src/core/lib/iomgr/wakeup_fd_cv.h', 'src/core/lib/iomgr/wakeup_fd_pipe.h', 'src/core/lib/iomgr/wakeup_fd_posix.h', 'src/core/lib/iomgr/workqueue.h', + 'src/core/lib/iomgr/workqueue_uv.h', 'src/core/lib/iomgr/workqueue_windows.h', 'src/core/lib/json/json.h', 'src/core/lib/json/json_common.h', @@ -706,6 +729,7 @@ Pod::Spec.new do |s| 'src/core/lib/transport/mdstr_hash_table.h', 'src/core/lib/transport/metadata.h', 'src/core/lib/transport/metadata_batch.h', + 'src/core/lib/transport/method_config.h', 'src/core/lib/transport/static_metadata.h', 'src/core/lib/transport/timeout_encoding.h', 'src/core/lib/transport/transport.h', @@ -763,12 +787,10 @@ Pod::Spec.new do |s| 'src/core/ext/client_channel/lb_policy.h', 'src/core/ext/client_channel/lb_policy_factory.h', 'src/core/ext/client_channel/lb_policy_registry.h', - 'src/core/ext/client_channel/method_config.h', 'src/core/ext/client_channel/parse_address.h', 'src/core/ext/client_channel/resolver.h', 'src/core/ext/client_channel/resolver_factory.h', 'src/core/ext/client_channel/resolver_registry.h', - 'src/core/ext/client_channel/resolver_result.h', 'src/core/ext/client_channel/subchannel.h', 'src/core/ext/client_channel/subchannel_index.h', 'src/core/ext/client_channel/uri_parser.h', diff --git a/grpc.gemspec b/grpc.gemspec index 44e0a8700c..c5bb926cb5 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -207,27 +207,34 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/iomgr/pollset.h ) s.files += %w( src/core/lib/iomgr/pollset_set.h ) s.files += %w( src/core/lib/iomgr/pollset_set_windows.h ) + s.files += %w( src/core/lib/iomgr/pollset_uv.h ) s.files += %w( src/core/lib/iomgr/pollset_windows.h ) + s.files += %w( src/core/lib/iomgr/port.h ) s.files += %w( src/core/lib/iomgr/resolve_address.h ) s.files += %w( src/core/lib/iomgr/sockaddr.h ) s.files += %w( src/core/lib/iomgr/sockaddr_posix.h ) s.files += %w( src/core/lib/iomgr/sockaddr_utils.h ) s.files += %w( src/core/lib/iomgr/sockaddr_windows.h ) + s.files += %w( src/core/lib/iomgr/socket_utils.h ) s.files += %w( src/core/lib/iomgr/socket_utils_posix.h ) s.files += %w( src/core/lib/iomgr/socket_windows.h ) s.files += %w( src/core/lib/iomgr/tcp_client.h ) s.files += %w( src/core/lib/iomgr/tcp_posix.h ) s.files += %w( src/core/lib/iomgr/tcp_server.h ) + s.files += %w( src/core/lib/iomgr/tcp_uv.h ) s.files += %w( src/core/lib/iomgr/tcp_windows.h ) s.files += %w( src/core/lib/iomgr/time_averaged_stats.h ) s.files += %w( src/core/lib/iomgr/timer.h ) + s.files += %w( src/core/lib/iomgr/timer_generic.h ) s.files += %w( src/core/lib/iomgr/timer_heap.h ) + s.files += %w( src/core/lib/iomgr/timer_uv.h ) s.files += %w( src/core/lib/iomgr/udp_server.h ) s.files += %w( src/core/lib/iomgr/unix_sockets_posix.h ) s.files += %w( src/core/lib/iomgr/wakeup_fd_cv.h ) s.files += %w( src/core/lib/iomgr/wakeup_fd_pipe.h ) s.files += %w( src/core/lib/iomgr/wakeup_fd_posix.h ) s.files += %w( src/core/lib/iomgr/workqueue.h ) + s.files += %w( src/core/lib/iomgr/workqueue_uv.h ) s.files += %w( src/core/lib/iomgr/workqueue_windows.h ) s.files += %w( src/core/lib/json/json.h ) s.files += %w( src/core/lib/json/json_common.h ) @@ -249,6 +256,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/transport/mdstr_hash_table.h ) s.files += %w( src/core/lib/transport/metadata.h ) s.files += %w( src/core/lib/transport/metadata_batch.h ) + s.files += %w( src/core/lib/transport/method_config.h ) s.files += %w( src/core/lib/transport/static_metadata.h ) s.files += %w( src/core/lib/transport/timeout_encoding.h ) s.files += %w( src/core/lib/transport/transport.h ) @@ -306,12 +314,10 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/client_channel/lb_policy.h ) s.files += %w( src/core/ext/client_channel/lb_policy_factory.h ) s.files += %w( src/core/ext/client_channel/lb_policy_registry.h ) - s.files += %w( src/core/ext/client_channel/method_config.h ) s.files += %w( src/core/ext/client_channel/parse_address.h ) s.files += %w( src/core/ext/client_channel/resolver.h ) s.files += %w( src/core/ext/client_channel/resolver_factory.h ) s.files += %w( src/core/ext/client_channel/resolver_registry.h ) - s.files += %w( src/core/ext/client_channel/resolver_result.h ) s.files += %w( src/core/ext/client_channel/subchannel.h ) s.files += %w( src/core/ext/client_channel/subchannel_index.h ) s.files += %w( src/core/ext/client_channel/uri_parser.h ) @@ -356,6 +362,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/iomgr/combiner.c ) s.files += %w( src/core/lib/iomgr/endpoint.c ) s.files += %w( src/core/lib/iomgr/endpoint_pair_posix.c ) + s.files += %w( src/core/lib/iomgr/endpoint_pair_uv.c ) s.files += %w( src/core/lib/iomgr/endpoint_pair_windows.c ) s.files += %w( src/core/lib/iomgr/error.c ) s.files += %w( src/core/lib/iomgr/ev_epoll_linux.c ) @@ -367,28 +374,38 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/iomgr/iocp_windows.c ) s.files += %w( src/core/lib/iomgr/iomgr.c ) s.files += %w( src/core/lib/iomgr/iomgr_posix.c ) + s.files += %w( src/core/lib/iomgr/iomgr_uv.c ) s.files += %w( src/core/lib/iomgr/iomgr_windows.c ) s.files += %w( src/core/lib/iomgr/load_file.c ) s.files += %w( src/core/lib/iomgr/network_status_tracker.c ) s.files += %w( src/core/lib/iomgr/polling_entity.c ) + s.files += %w( src/core/lib/iomgr/pollset_set_uv.c ) s.files += %w( src/core/lib/iomgr/pollset_set_windows.c ) + s.files += %w( src/core/lib/iomgr/pollset_uv.c ) s.files += %w( src/core/lib/iomgr/pollset_windows.c ) s.files += %w( src/core/lib/iomgr/resolve_address_posix.c ) + s.files += %w( src/core/lib/iomgr/resolve_address_uv.c ) s.files += %w( src/core/lib/iomgr/resolve_address_windows.c ) s.files += %w( src/core/lib/iomgr/sockaddr_utils.c ) s.files += %w( src/core/lib/iomgr/socket_utils_common_posix.c ) s.files += %w( src/core/lib/iomgr/socket_utils_linux.c ) s.files += %w( src/core/lib/iomgr/socket_utils_posix.c ) + s.files += %w( src/core/lib/iomgr/socket_utils_uv.c ) + s.files += %w( src/core/lib/iomgr/socket_utils_windows.c ) s.files += %w( src/core/lib/iomgr/socket_windows.c ) s.files += %w( src/core/lib/iomgr/tcp_client_posix.c ) + s.files += %w( src/core/lib/iomgr/tcp_client_uv.c ) s.files += %w( src/core/lib/iomgr/tcp_client_windows.c ) s.files += %w( src/core/lib/iomgr/tcp_posix.c ) s.files += %w( src/core/lib/iomgr/tcp_server_posix.c ) + s.files += %w( src/core/lib/iomgr/tcp_server_uv.c ) s.files += %w( src/core/lib/iomgr/tcp_server_windows.c ) + s.files += %w( src/core/lib/iomgr/tcp_uv.c ) s.files += %w( src/core/lib/iomgr/tcp_windows.c ) s.files += %w( src/core/lib/iomgr/time_averaged_stats.c ) - s.files += %w( src/core/lib/iomgr/timer.c ) + s.files += %w( src/core/lib/iomgr/timer_generic.c ) s.files += %w( src/core/lib/iomgr/timer_heap.c ) + s.files += %w( src/core/lib/iomgr/timer_uv.c ) s.files += %w( src/core/lib/iomgr/udp_server.c ) s.files += %w( src/core/lib/iomgr/unix_sockets_posix.c ) s.files += %w( src/core/lib/iomgr/unix_sockets_posix_noop.c ) @@ -397,6 +414,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/iomgr/wakeup_fd_nospecial.c ) s.files += %w( src/core/lib/iomgr/wakeup_fd_pipe.c ) s.files += %w( src/core/lib/iomgr/wakeup_fd_posix.c ) + s.files += %w( src/core/lib/iomgr/workqueue_uv.c ) s.files += %w( src/core/lib/iomgr/workqueue_windows.c ) s.files += %w( src/core/lib/json/json.c ) s.files += %w( src/core/lib/json/json_reader.c ) @@ -425,6 +443,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/transport/mdstr_hash_table.c ) s.files += %w( src/core/lib/transport/metadata.c ) s.files += %w( src/core/lib/transport/metadata_batch.c ) + s.files += %w( src/core/lib/transport/method_config.c ) s.files += %w( src/core/lib/transport/static_metadata.c ) s.files += %w( src/core/lib/transport/timeout_encoding.c ) s.files += %w( src/core/lib/transport/transport.c ) @@ -458,8 +477,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/lib/security/credentials/credentials.c ) s.files += %w( src/core/lib/security/credentials/credentials_metadata.c ) s.files += %w( src/core/lib/security/credentials/fake/fake_credentials.c ) - s.files += %w( src/core/lib/security/credentials/google_default/credentials_posix.c ) - s.files += %w( src/core/lib/security/credentials/google_default/credentials_windows.c ) + s.files += %w( src/core/lib/security/credentials/google_default/credentials_generic.c ) s.files += %w( src/core/lib/security/credentials/google_default/google_default_credentials.c ) s.files += %w( src/core/lib/security/credentials/iam/iam_credentials.c ) s.files += %w( src/core/lib/security/credentials/jwt/json_token.c ) @@ -492,12 +510,10 @@ Gem::Specification.new do |s| s.files += %w( src/core/ext/client_channel/lb_policy.c ) s.files += %w( src/core/ext/client_channel/lb_policy_factory.c ) s.files += %w( src/core/ext/client_channel/lb_policy_registry.c ) - s.files += %w( src/core/ext/client_channel/method_config.c ) s.files += %w( src/core/ext/client_channel/parse_address.c ) s.files += %w( src/core/ext/client_channel/resolver.c ) s.files += %w( src/core/ext/client_channel/resolver_factory.c ) s.files += %w( src/core/ext/client_channel/resolver_registry.c ) - s.files += %w( src/core/ext/client_channel/resolver_result.c ) s.files += %w( src/core/ext/client_channel/subchannel.c ) s.files += %w( src/core/ext/client_channel/subchannel_index.c ) s.files += %w( src/core/ext/client_channel/uri_parser.c ) diff --git a/include/grpc/impl/codegen/grpc_types.h b/include/grpc/impl/codegen/grpc_types.h index a3fc683e57..0be7ab2ad2 100644 --- a/include/grpc/impl/codegen/grpc_types.h +++ b/include/grpc/impl/codegen/grpc_types.h @@ -204,6 +204,13 @@ typedef struct { /** Service config data, to be passed to subchannels. Not intended for external use. */ #define GRPC_ARG_SERVICE_CONFIG "grpc.service_config" +/** LB policy name. */ +#define GRPC_ARG_LB_POLICY_NAME "grpc.lb_policy_name" +/** Server name. Not intended for external use. */ +#define GRPC_ARG_SERVER_NAME "grpc.server_name" +/** Resolved addresses in a form used by the LB policy. + Not intended for external use. */ +#define GRPC_ARG_LB_ADDRESSES "grpc.lb_addresses" /** \} */ /** Result of a grpc call. If the caller satisfies the prerequisites of a diff --git a/include/grpc/impl/codegen/port_platform.h b/include/grpc/impl/codegen/port_platform.h index 4e9be4d018..34df89700d 100644 --- a/include/grpc/impl/codegen/port_platform.h +++ b/include/grpc/impl/codegen/port_platform.h @@ -90,7 +90,6 @@ #endif #define GPR_PLATFORM_STRING "windows" #define GPR_WINDOWS 1 -#define GPR_WINSOCK_SOCKET 1 #define GPR_WINDOWS_SUBPROCESS 1 #define GPR_WINDOWS_ENV #ifdef __MSYS__ @@ -124,24 +123,14 @@ #define GPR_GCC_TLS 1 #define GPR_LINUX 1 #define GPR_LINUX_LOG 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_POSIX_SOCKETADDR 1 -#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1 -#define GPR_POSIX_SOCKETUTILS 1 #define GPR_SUPPORT_CHANNELS_FROM_FD 1 -#define GPR_HAVE_UNIX_SOCKET 1 -#define GPR_HAVE_IP_PKTINFO 1 -#define GPR_HAVE_IPV6_RECVPKTINFO 1 #define GPR_LINUX_ENV 1 -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 #define GPR_POSIX_TIME 1 #define GPR_GETPID_IN_UNISTD_H 1 -#define GPR_HAVE_MSG_NOSIGNAL 1 #ifdef _LP64 #define GPR_ARCH_64 1 #else /* _LP64 */ @@ -158,14 +147,7 @@ #define GPR_CPU_POSIX 1 #define GPR_GCC_SYNC 1 #define GPR_GCC_TLS 1 -#define GPR_POSIX_MULTIPOLL_WITH_POLL 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_LINUX_EVENTFD 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_SOCKETADDR 1 -#define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_ANDROID_LOG 1 #define GPR_POSIX_STRING 1 @@ -174,10 +156,6 @@ #define GPR_POSIX_TIME 1 #define GPR_GETPID_IN_UNISTD_H 1 #define GPR_SUPPORT_CHANNELS_FROM_FD 1 -#define GPR_HAVE_MSG_NOSIGNAL 1 -#define GPR_HAVE_UNIX_SOCKET 1 -#define GPR_HAVE_IP_PKTINFO 1 -#define GPR_HAVE_IPV6_RECVPKTINFO 1 #elif defined(__linux__) #define GPR_POSIX_CRASH_HANDLER 1 #define GPR_PLATFORM_STRING "linux" @@ -196,38 +174,14 @@ #define GPR_GCC_TLS 1 #define GPR_LINUX 1 #define GPR_LINUX_LOG -#define GPR_LINUX_MULTIPOLL_WITH_EPOLL 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_SOCKETADDR 1 #define GPR_SUPPORT_CHANNELS_FROM_FD 1 -#define GPR_HAVE_UNIX_SOCKET 1 -#define GPR_HAVE_IP_PKTINFO 1 -#define GPR_HAVE_IPV6_RECVPKTINFO 1 -#ifdef __GLIBC_PREREQ -#if __GLIBC_PREREQ(2, 9) -#define GPR_LINUX_EVENTFD 1 -#define GPR_LINUX_EPOLL 1 -#endif -#if __GLIBC_PREREQ(2, 10) -#define GPR_LINUX_SOCKETUTILS 1 -#endif -#endif #define GPR_LINUX_ENV 1 -#ifndef GPR_LINUX_EVENTFD -#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1 -#endif -#ifndef GPR_LINUX_SOCKETUTILS -#define GPR_POSIX_SOCKETUTILS -#endif -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 #define GPR_POSIX_SYNC 1 #define GPR_POSIX_TIME 1 #define GPR_GETPID_IN_UNISTD_H 1 -#define GPR_HAVE_MSG_NOSIGNAL 1 #ifdef _LP64 #define GPR_ARCH_64 1 #else /* _LP64 */ @@ -239,7 +193,6 @@ #ifndef _BSD_SOURCE #define _BSD_SOURCE #endif -#define GPR_MSG_IOVLEN_TYPE int #if TARGET_OS_IPHONE #define GPR_FORBID_UNREACHABLE_CODE 1 #define GPR_PLATFORM_STRING "ios" @@ -261,16 +214,10 @@ #endif #define GPR_POSIX_CRASH_HANDLER 1 #endif +#define GPR_APPLE 1 #define GPR_GCC_ATOMIC 1 #define GPR_POSIX_LOG 1 -#define GPR_POSIX_MULTIPOLL_WITH_POLL 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_SOCKETADDR 1 -#define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 @@ -278,9 +225,6 @@ #define GPR_POSIX_TIME 1 #define GPR_GETPID_IN_UNISTD_H 1 #define GPR_SUPPORT_CHANNELS_FROM_FD 1 -#define GPR_HAVE_SO_NOSIGPIPE 1 -#define GPR_HAVE_UNIX_SOCKET 1 -#define GPR_HAVE_IP_PKTINFO 1 #ifdef _LP64 #define GPR_ARCH_64 1 #else /* _LP64 */ @@ -291,18 +235,12 @@ #ifndef _BSD_SOURCE #define _BSD_SOURCE #endif +#define GPR_FREEBSD 1 #define GPR_CPU_POSIX 1 #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 #define GPR_POSIX_LOG 1 -#define GPR_POSIX_MULTIPOLL_WITH_POLL 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_SOCKETADDR 1 -#define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 @@ -310,10 +248,6 @@ #define GPR_POSIX_TIME 1 #define GPR_GETPID_IN_UNISTD_H 1 #define GPR_SUPPORT_CHANNELS_FROM_FD 1 -#define GPR_HAVE_SO_NOSIGPIPE 1 -#define GPR_HAVE_UNIX_SOCKET 1 -#define GPR_HAVE_IP_PKTINFO 1 -#define GPR_HAVE_IPV6_RECVPKTINFO 1 #ifdef _LP64 #define GPR_ARCH_64 1 #else /* _LP64 */ @@ -330,18 +264,12 @@ #ifndef _GNU_SOURCE #define _GNU_SOURCE #endif +#define GPR_NACL 1 #define GPR_CPU_POSIX 1 #define GPR_GCC_ATOMIC 1 #define GPR_GCC_TLS 1 #define GPR_POSIX_LOG 1 -#define GPR_POSIX_MULTIPOLL_WITH_POLL 1 -#define GPR_POSIX_WAKEUP_FD 1 -#define GPR_POSIX_NO_SPECIAL_WAKEUP_FD 1 -#define GPR_POSIX_SOCKET 1 -#define GPR_POSIX_SOCKETADDR 1 -#define GPR_POSIX_SOCKETUTILS 1 #define GPR_POSIX_ENV 1 -#define GPR_POSIX_FILE 1 #define GPR_POSIX_TMPFILE 1 #define GPR_POSIX_STRING 1 #define GPR_POSIX_SUBPROCESS 1 @@ -422,16 +350,6 @@ typedef unsigned __int64 uint64_t; #error Must define exactly one of GPR_CPU_LINUX, GPR_CPU_POSIX, GPR_WINDOWS, GPR_CPU_IPHONE, GPR_CPU_CUSTOM #endif -#if defined(GPR_POSIX_MULTIPOLL_WITH_POLL) && !defined(GPR_POSIX_SOCKET) -#error Must define GPR_POSIX_SOCKET to use GPR_POSIX_MULTIPOLL_WITH_POLL -#endif - -#if defined(GPR_POSIX_SOCKET) + defined(GPR_WINSOCK_SOCKET) + \ - defined(GPR_CUSTOM_SOCKET) != \ - 1 -#error Must define exactly one of GPR_POSIX_SOCKET, GPR_WINSOCK_SOCKET, GPR_CUSTOM_SOCKET -#endif - #if defined(GPR_MSVC_TLS) + defined(GPR_GCC_TLS) + defined(GPR_PTHREAD_TLS) + \ defined(GPR_CUSTOM_TLS) != \ 1 diff --git a/package.json b/package.json index 9afba31816..c6b2600209 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,8 @@ }, "devDependencies": { "async": "^1.5.0", + "body-parser": "^1.15.2", + "express": "^4.14.0", "google-auth-library": "^0.9.2", "google-protobuf": "^3.0.0", "istanbul": "^0.3.21", diff --git a/package.xml b/package.xml index 82bdd4adb2..d4a4e3c7b9 100644 --- a/package.xml +++ b/package.xml @@ -214,27 +214,34 @@ <file baseinstalldir="/" name="src/core/lib/iomgr/pollset.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_uv.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/port.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/sockaddr.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/sockaddr_posix.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/sockaddr_utils.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/sockaddr_windows.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_posix.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_windows.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_client.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_posix.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_server.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_uv.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_windows.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/time_averaged_stats.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/timer.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/timer_generic.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/timer_heap.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/timer_uv.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/udp_server.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/unix_sockets_posix.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_cv.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_pipe.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_posix.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/workqueue.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/workqueue_uv.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/workqueue_windows.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/json/json.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/json/json_common.h" role="src" /> @@ -256,6 +263,7 @@ <file baseinstalldir="/" name="src/core/lib/transport/mdstr_hash_table.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/metadata.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/metadata_batch.h" role="src" /> + <file baseinstalldir="/" name="src/core/lib/transport/method_config.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/static_metadata.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/timeout_encoding.h" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/transport.h" role="src" /> @@ -313,12 +321,10 @@ <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy_factory.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy_registry.h" role="src" /> - <file baseinstalldir="/" name="src/core/ext/client_channel/method_config.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/parse_address.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_factory.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_registry.h" role="src" /> - <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_result.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/subchannel.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/subchannel_index.h" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/uri_parser.h" role="src" /> @@ -363,6 +369,7 @@ <file baseinstalldir="/" name="src/core/lib/iomgr/combiner.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/endpoint_pair_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/error.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/ev_epoll_linux.c" role="src" /> @@ -374,28 +381,38 @@ <file baseinstalldir="/" name="src/core/lib/iomgr/iocp_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/iomgr.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/iomgr_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/load_file.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/network_status_tracker.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/polling_entity.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_set_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/pollset_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/resolve_address_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/sockaddr_utils.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_common_posix.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_linux.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_uv.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/socket_utils_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/socket_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_client_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_client_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_client_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_posix.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_server_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_server_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_server_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/tcp_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/time_averaged_stats.c" role="src" /> - <file baseinstalldir="/" name="src/core/lib/iomgr/timer.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/timer_generic.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/timer_heap.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/timer_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/udp_server.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/unix_sockets_posix.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/unix_sockets_posix_noop.c" role="src" /> @@ -404,6 +421,7 @@ <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_nospecial.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_pipe.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/wakeup_fd_posix.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/iomgr/workqueue_uv.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/iomgr/workqueue_windows.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/json/json.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/json/json_reader.c" role="src" /> @@ -432,6 +450,7 @@ <file baseinstalldir="/" name="src/core/lib/transport/mdstr_hash_table.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/metadata.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/metadata_batch.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/transport/method_config.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/static_metadata.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/timeout_encoding.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/transport/transport.c" role="src" /> @@ -465,8 +484,7 @@ <file baseinstalldir="/" name="src/core/lib/security/credentials/credentials.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/security/credentials/credentials_metadata.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/security/credentials/fake/fake_credentials.c" role="src" /> - <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_posix.c" role="src" /> - <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_windows.c" role="src" /> + <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/credentials_generic.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/security/credentials/google_default/google_default_credentials.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/security/credentials/iam/iam_credentials.c" role="src" /> <file baseinstalldir="/" name="src/core/lib/security/credentials/jwt/json_token.c" role="src" /> @@ -499,12 +517,10 @@ <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy_factory.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/lb_policy_registry.c" role="src" /> - <file baseinstalldir="/" name="src/core/ext/client_channel/method_config.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/parse_address.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_factory.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_registry.c" role="src" /> - <file baseinstalldir="/" name="src/core/ext/client_channel/resolver_result.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/subchannel.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/subchannel_index.c" role="src" /> <file baseinstalldir="/" name="src/core/ext/client_channel/uri_parser.c" role="src" /> @@ -79,6 +79,11 @@ BUILD_WITH_CYTHON = os.environ.get('GRPC_PYTHON_BUILD_WITH_CYTHON', False) ENABLE_CYTHON_TRACING = os.environ.get( 'GRPC_PYTHON_ENABLE_CYTHON_TRACING', False) +# Environment variable specifying whether or not there's interest in setting up +# documentation building. +ENABLE_DOCUMENTATION_BUILD = os.environ.get( + 'GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD', False) + # There are some situations (like on Windows) where CC, CFLAGS, and LDFLAGS are # entirely ignored/dropped/forgotten by distutils and its Cygwin/MinGW support. # We use these environment variables to thus get around that without locking @@ -210,7 +215,8 @@ SETUP_REQUIRES = INSTALL_REQUIRES + ( 'sphinx>=1.3', 'sphinx_rtd_theme>=0.1.8', 'six>=1.10', -) + ) if ENABLE_DOCUMENTATION_BUILD else () + if BUILD_WITH_CYTHON: sys.stderr.write( "You requested a Cython build via GRPC_PYTHON_BUILD_WITH_CYTHON, " diff --git a/src/boringssl/gen_build_yaml.py b/src/boringssl/gen_build_yaml.py index 20f6413adf..c53beb0da5 100755 --- a/src/boringssl/gen_build_yaml.py +++ b/src/boringssl/gen_build_yaml.py @@ -36,7 +36,7 @@ import yaml sys.dont_write_bytecode = True boring_ssl_root = os.path.abspath(os.path.join( - os.path.dirname(sys.argv[0]), + os.path.dirname(sys.argv[0]), '../../third_party/boringssl')) sys.path.append(os.path.join(boring_ssl_root, 'util')) diff --git a/src/core/ext/client_channel/README.md b/src/core/ext/client_channel/README.md index eda01e3e71..7c209db12e 100644 --- a/src/core/ext/client_channel/README.md +++ b/src/core/ext/client_channel/README.md @@ -5,28 +5,27 @@ This library provides high level configuration machinery to construct client channels and load balance between them. Each grpc_channel is created with a grpc_resolver. It is the resolver's duty -to resolve a name into configuration data for the channel. Such configuration -data might include: +to resolve a name into a set of arguments for the channel. Such arguments +might include: - a list of (ip, port) addresses to connect to - a load balancing policy to decide which server to send a request to - a set of filters to mutate outgoing requests (say, by adding metadata) -The resolver provides this data as a stream of grpc_resolver_result objects to -the channel. We represent configuration as a stream so that it can be changed -by the resolver during execution, by reacting to external events (such as a -new configuration file being pushed to some store). +The resolver provides this data as a stream of grpc_channel_args objects to +the channel. We represent arguments as a stream so that they can be changed +by the resolver during execution, by reacting to external events (such as +new service configuration data being pushed to some store). Load Balancing -------------- -Load balancing configuration is provided by a grpc_lb_policy object, stored as -part of grpc_resolver_result. +Load balancing configuration is provided by a grpc_lb_policy object. -The primary job of the load balancing policies is to pick a target server given only the -initial metadata for a request. It does this by providing a grpc_subchannel -object to the owning channel. +The primary job of the load balancing policies is to pick a target server +given only the initial metadata for a request. It does this by providing +a grpc_subchannel object to the owning channel. Sub-Channels diff --git a/src/core/ext/client_channel/client_channel.c b/src/core/ext/client_channel/client_channel.c index 55bb877576..80b4f048c2 100644 --- a/src/core/ext/client_channel/client_channel.c +++ b/src/core/ext/client_channel/client_channel.c @@ -43,7 +43,6 @@ #include <grpc/support/useful.h> #include "src/core/ext/client_channel/lb_policy_registry.h" -#include "src/core/ext/client_channel/method_config.h" #include "src/core/ext/client_channel/subchannel.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/channel/connected_channel.h" @@ -56,6 +55,7 @@ #include "src/core/lib/transport/connectivity_state.h" #include "src/core/lib/transport/metadata.h" #include "src/core/lib/transport/metadata_batch.h" +#include "src/core/lib/transport/method_config.h" #include "src/core/lib/transport/static_metadata.h" /* Client channel implementation */ @@ -127,7 +127,7 @@ typedef struct client_channel_channel_data { /** maps method names to method_parameters structs */ grpc_mdstr_hash_table *method_params_table; /** incoming resolver result - set by resolver.next() */ - grpc_resolver_result *resolver_result; + grpc_channel_args *resolver_result; /** a list of closures that are all waiting for config to come in */ grpc_closure_list waiting_for_config_closures; /** resolver callback */ @@ -232,35 +232,42 @@ static void on_resolver_result_changed(grpc_exec_ctx *exec_ctx, void *arg, if (chand->resolver_result != NULL) { grpc_lb_policy_args lb_policy_args; - lb_policy_args.server_name = - grpc_resolver_result_get_server_name(chand->resolver_result); - lb_policy_args.addresses = - grpc_resolver_result_get_addresses(chand->resolver_result); - lb_policy_args.additional_args = - grpc_resolver_result_get_lb_policy_args(chand->resolver_result); + lb_policy_args.args = chand->resolver_result; lb_policy_args.client_channel_factory = chand->client_channel_factory; + // Find LB policy name. + const char *lb_policy_name = NULL; + const grpc_arg *channel_arg = + grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_LB_POLICY_NAME); + if (channel_arg != NULL) { + GPR_ASSERT(channel_arg->type == GRPC_ARG_STRING); + lb_policy_name = channel_arg->value.string; + } // Special case: If all of the addresses are balancer addresses, // assume that we should use the grpclb policy, regardless of what the // resolver actually specified. - const char *lb_policy_name = - grpc_resolver_result_get_lb_policy_name(chand->resolver_result); - bool found_backend_address = false; - for (size_t i = 0; i < lb_policy_args.addresses->num_addresses; ++i) { - if (!lb_policy_args.addresses->addresses[i].is_balancer) { - found_backend_address = true; - break; + channel_arg = + grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_LB_ADDRESSES); + if (channel_arg != NULL) { + GPR_ASSERT(channel_arg->type == GRPC_ARG_POINTER); + grpc_lb_addresses *addresses = channel_arg->value.pointer.p; + bool found_backend_address = false; + for (size_t i = 0; i < addresses->num_addresses; ++i) { + if (!addresses->addresses[i].is_balancer) { + found_backend_address = true; + break; + } } - } - if (!found_backend_address) { - if (lb_policy_name != NULL && strcmp(lb_policy_name, "grpclb") != 0) { - gpr_log(GPR_INFO, - "resolver requested LB policy %s but provided only balancer " - "addresses, no backend addresses -- forcing use of grpclb LB " - "policy", - (lb_policy_name == NULL ? "(none)" : lb_policy_name)); + if (!found_backend_address) { + if (lb_policy_name != NULL && strcmp(lb_policy_name, "grpclb") != 0) { + gpr_log(GPR_INFO, + "resolver requested LB policy %s but provided only balancer " + "addresses, no backend addresses -- forcing use of grpclb LB " + "policy", + lb_policy_name); + } + lb_policy_name = "grpclb"; } - lb_policy_name = "grpclb"; } // Use pick_first if nothing was specified and we didn't select grpclb // above. @@ -274,15 +281,15 @@ static void on_resolver_result_changed(grpc_exec_ctx *exec_ctx, void *arg, state = grpc_lb_policy_check_connectivity(exec_ctx, lb_policy, &state_error); } - const grpc_arg *channel_arg = grpc_channel_args_find( - lb_policy_args.additional_args, GRPC_ARG_SERVICE_CONFIG); + channel_arg = + grpc_channel_args_find(lb_policy_args.args, GRPC_ARG_SERVICE_CONFIG); if (channel_arg != NULL) { GPR_ASSERT(channel_arg->type == GRPC_ARG_POINTER); method_params_table = grpc_method_config_table_convert( (grpc_method_config_table *)channel_arg->value.pointer.p, method_config_convert_value, &method_parameters_vtable); } - grpc_resolver_result_unref(exec_ctx, chand->resolver_result); + grpc_channel_args_destroy(chand->resolver_result); chand->resolver_result = NULL; } diff --git a/src/core/ext/client_channel/client_channel_factory.c b/src/core/ext/client_channel/client_channel_factory.c index db1cc9093c..4900832d57 100644 --- a/src/core/ext/client_channel/client_channel_factory.c +++ b/src/core/ext/client_channel/client_channel_factory.c @@ -44,14 +44,14 @@ void grpc_client_channel_factory_unref(grpc_exec_ctx* exec_ctx, grpc_subchannel* grpc_client_channel_factory_create_subchannel( grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* factory, - grpc_subchannel_args* args) { + const grpc_subchannel_args* args) { return factory->vtable->create_subchannel(exec_ctx, factory, args); } grpc_channel* grpc_client_channel_factory_create_channel( grpc_exec_ctx* exec_ctx, grpc_client_channel_factory* factory, const char* target, grpc_client_channel_type type, - grpc_channel_args* args) { + const grpc_channel_args* args) { return factory->vtable->create_client_channel(exec_ctx, factory, target, type, args); } diff --git a/src/core/ext/client_channel/client_channel_factory.h b/src/core/ext/client_channel/client_channel_factory.h index 28828c2eb6..2b8fc577b3 100644 --- a/src/core/ext/client_channel/client_channel_factory.h +++ b/src/core/ext/client_channel/client_channel_factory.h @@ -60,12 +60,12 @@ struct grpc_client_channel_factory_vtable { void (*unref)(grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory); grpc_subchannel *(*create_subchannel)(grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory, - grpc_subchannel_args *args); + const grpc_subchannel_args *args); grpc_channel *(*create_client_channel)(grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory, const char *target, grpc_client_channel_type type, - grpc_channel_args *args); + const grpc_channel_args *args); }; void grpc_client_channel_factory_ref(grpc_client_channel_factory *factory); @@ -75,11 +75,12 @@ void grpc_client_channel_factory_unref(grpc_exec_ctx *exec_ctx, /** Create a new grpc_subchannel */ grpc_subchannel *grpc_client_channel_factory_create_subchannel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory, - grpc_subchannel_args *args); + const grpc_subchannel_args *args); /** Create a new grpc_channel */ grpc_channel *grpc_client_channel_factory_create_channel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *factory, - const char *target, grpc_client_channel_type type, grpc_channel_args *args); + const char *target, grpc_client_channel_type type, + const grpc_channel_args *args); #endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_CLIENT_CHANNEL_FACTORY_H */ diff --git a/src/core/ext/client_channel/connector.h b/src/core/ext/client_channel/connector.h index e08244b2c0..ed7d5450de 100644 --- a/src/core/ext/client_channel/connector.h +++ b/src/core/ext/client_channel/connector.h @@ -35,7 +35,7 @@ #define GRPC_CORE_EXT_CLIENT_CHANNEL_CONNECTOR_H #include "src/core/lib/channel/channel_stack.h" -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/transport/transport.h" typedef struct grpc_connector grpc_connector; @@ -49,7 +49,7 @@ typedef struct { /** set of pollsets interested in this connection */ grpc_pollset_set *interested_parties; /** address to connect to */ - const struct sockaddr *addr; + const grpc_resolved_address *addr; size_t addr_len; /** initial connect string to send */ gpr_slice initial_connect_string; diff --git a/src/core/ext/client_channel/default_initial_connect_string.c b/src/core/ext/client_channel/default_initial_connect_string.c index a70da4a84a..0b251372fd 100644 --- a/src/core/ext/client_channel/default_initial_connect_string.c +++ b/src/core/ext/client_channel/default_initial_connect_string.c @@ -32,8 +32,7 @@ */ #include <grpc/support/slice.h> -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" -void grpc_set_default_initial_connect_string(struct sockaddr **addr, - size_t *addr_len, +void grpc_set_default_initial_connect_string(grpc_resolved_address **addr, gpr_slice *initial_str) {} diff --git a/src/core/ext/client_channel/initial_connect_string.c b/src/core/ext/client_channel/initial_connect_string.c index fd8ddb83a8..fb1493d77d 100644 --- a/src/core/ext/client_channel/initial_connect_string.c +++ b/src/core/ext/client_channel/initial_connect_string.c @@ -35,9 +35,8 @@ #include <stddef.h> -extern void grpc_set_default_initial_connect_string(struct sockaddr **addr, - size_t *addr_len, - gpr_slice *initial_str); +extern void grpc_set_default_initial_connect_string( + grpc_resolved_address **addr, gpr_slice *initial_str); static grpc_set_initial_connect_string_func g_set_initial_connect_string_func = grpc_set_default_initial_connect_string; @@ -47,7 +46,7 @@ void grpc_test_set_initial_connect_string_function( g_set_initial_connect_string_func = func; } -void grpc_set_initial_connect_string(struct sockaddr **addr, size_t *addr_len, +void grpc_set_initial_connect_string(grpc_resolved_address **addr, gpr_slice *initial_str) { - g_set_initial_connect_string_func(addr, addr_len, initial_str); + g_set_initial_connect_string_func(addr, initial_str); } diff --git a/src/core/ext/client_channel/initial_connect_string.h b/src/core/ext/client_channel/initial_connect_string.h index 39f6465fc9..68adb0373c 100644 --- a/src/core/ext/client_channel/initial_connect_string.h +++ b/src/core/ext/client_channel/initial_connect_string.h @@ -35,16 +35,16 @@ #define GRPC_CORE_EXT_CLIENT_CHANNEL_INITIAL_CONNECT_STRING_H #include <grpc/support/slice.h> -#include "src/core/lib/iomgr/sockaddr.h" -typedef void (*grpc_set_initial_connect_string_func)(struct sockaddr **addr, - size_t *addr_len, - gpr_slice *initial_str); +#include "src/core/lib/iomgr/resolve_address.h" + +typedef void (*grpc_set_initial_connect_string_func)( + grpc_resolved_address **addr, gpr_slice *initial_str); void grpc_test_set_initial_connect_string_function( grpc_set_initial_connect_string_func func); /** Set a string to be sent once connected. Optionally reset addr. */ -void grpc_set_initial_connect_string(struct sockaddr **addr, size_t *addr_len, +void grpc_set_initial_connect_string(grpc_resolved_address **addr, gpr_slice *connect_string); #endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_INITIAL_CONNECT_STRING_H */ diff --git a/src/core/ext/client_channel/lb_policy_factory.c b/src/core/ext/client_channel/lb_policy_factory.c index 45753e6942..8a474c8818 100644 --- a/src/core/ext/client_channel/lb_policy_factory.c +++ b/src/core/ext/client_channel/lb_policy_factory.c @@ -38,19 +38,20 @@ #include "src/core/ext/client_channel/lb_policy_factory.h" -grpc_lb_addresses* grpc_lb_addresses_create(size_t num_addresses) { +grpc_lb_addresses* grpc_lb_addresses_create( + size_t num_addresses, const grpc_lb_user_data_vtable* user_data_vtable) { grpc_lb_addresses* addresses = gpr_malloc(sizeof(grpc_lb_addresses)); addresses->num_addresses = num_addresses; + addresses->user_data_vtable = user_data_vtable; const size_t addresses_size = sizeof(grpc_lb_address) * num_addresses; addresses->addresses = gpr_malloc(addresses_size); memset(addresses->addresses, 0, addresses_size); return addresses; } -grpc_lb_addresses* grpc_lb_addresses_copy(grpc_lb_addresses* addresses, - void* (*user_data_copy)(void*)) { - grpc_lb_addresses* new_addresses = - grpc_lb_addresses_create(addresses->num_addresses); +grpc_lb_addresses* grpc_lb_addresses_copy(const grpc_lb_addresses* addresses) { + grpc_lb_addresses* new_addresses = grpc_lb_addresses_create( + addresses->num_addresses, addresses->user_data_vtable); memcpy(new_addresses->addresses, addresses->addresses, sizeof(grpc_lb_address) * addresses->num_addresses); for (size_t i = 0; i < addresses->num_addresses; ++i) { @@ -58,9 +59,9 @@ grpc_lb_addresses* grpc_lb_addresses_copy(grpc_lb_addresses* addresses, new_addresses->addresses[i].balancer_name = gpr_strdup(new_addresses->addresses[i].balancer_name); } - if (user_data_copy != NULL) { - new_addresses->addresses[i].user_data = - user_data_copy(new_addresses->addresses[i].user_data); + if (new_addresses->addresses[i].user_data != NULL) { + new_addresses->addresses[i].user_data = addresses->user_data_vtable->copy( + new_addresses->addresses[i].user_data); } } return new_addresses; @@ -71,6 +72,7 @@ void grpc_lb_addresses_set_address(grpc_lb_addresses* addresses, size_t index, bool is_balancer, char* balancer_name, void* user_data) { GPR_ASSERT(index < addresses->num_addresses); + if (user_data != NULL) GPR_ASSERT(addresses->user_data_vtable != NULL); grpc_lb_address* target = &addresses->addresses[index]; memcpy(target->address.addr, address, address_len); target->address.len = address_len; @@ -79,18 +81,70 @@ void grpc_lb_addresses_set_address(grpc_lb_addresses* addresses, size_t index, target->user_data = user_data; } -void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses, - void (*user_data_destroy)(void*)) { +int grpc_lb_addresses_cmp(const grpc_lb_addresses* addresses1, + const grpc_lb_addresses* addresses2) { + if (addresses1->num_addresses > addresses2->num_addresses) return 1; + if (addresses1->num_addresses < addresses2->num_addresses) return -1; + if (addresses1->user_data_vtable > addresses2->user_data_vtable) return 1; + if (addresses1->user_data_vtable < addresses2->user_data_vtable) return -1; + for (size_t i = 0; i < addresses1->num_addresses; ++i) { + const grpc_lb_address* target1 = &addresses1->addresses[i]; + const grpc_lb_address* target2 = &addresses2->addresses[i]; + if (target1->address.len > target2->address.len) return 1; + if (target1->address.len < target2->address.len) return -1; + int retval = memcmp(target1->address.addr, target2->address.addr, + target1->address.len); + if (retval != 0) return retval; + if (target1->is_balancer > target2->is_balancer) return 1; + if (target1->is_balancer < target2->is_balancer) return -1; + const char* balancer_name1 = + target1->balancer_name != NULL ? target1->balancer_name : ""; + const char* balancer_name2 = + target2->balancer_name != NULL ? target2->balancer_name : ""; + retval = strcmp(balancer_name1, balancer_name2); + if (retval != 0) return retval; + if (addresses1->user_data_vtable != NULL) { + retval = addresses1->user_data_vtable->cmp(target1->user_data, + target2->user_data); + if (retval != 0) return retval; + } + } + return 0; +} + +void grpc_lb_addresses_destroy(grpc_lb_addresses* addresses) { for (size_t i = 0; i < addresses->num_addresses; ++i) { gpr_free(addresses->addresses[i].balancer_name); - if (user_data_destroy != NULL) { - user_data_destroy(addresses->addresses[i].user_data); + if (addresses->addresses[i].user_data != NULL) { + addresses->user_data_vtable->destroy(addresses->addresses[i].user_data); } } gpr_free(addresses->addresses); gpr_free(addresses); } +static void* lb_addresses_copy(void* addresses) { + return grpc_lb_addresses_copy(addresses); +} +static void lb_addresses_destroy(void* addresses) { + grpc_lb_addresses_destroy(addresses); +} +static int lb_addresses_cmp(void* addresses1, void* addresses2) { + return grpc_lb_addresses_cmp(addresses1, addresses2); +} +static const grpc_arg_pointer_vtable lb_addresses_arg_vtable = { + lb_addresses_copy, lb_addresses_destroy, lb_addresses_cmp}; + +grpc_arg grpc_lb_addresses_create_channel_arg( + const grpc_lb_addresses* addresses) { + grpc_arg arg; + arg.type = GRPC_ARG_POINTER; + arg.key = GRPC_ARG_LB_ADDRESSES; + arg.value.pointer.p = (void*)addresses; + arg.value.pointer.vtable = &lb_addresses_arg_vtable; + return arg; +} + void grpc_lb_policy_factory_ref(grpc_lb_policy_factory* factory) { factory->vtable->ref(factory); } diff --git a/src/core/ext/client_channel/lb_policy_factory.h b/src/core/ext/client_channel/lb_policy_factory.h index 3e53972445..e2b8080a32 100644 --- a/src/core/ext/client_channel/lb_policy_factory.h +++ b/src/core/ext/client_channel/lb_policy_factory.h @@ -59,19 +59,26 @@ typedef struct grpc_lb_address { void *user_data; } grpc_lb_address; +typedef struct grpc_lb_user_data_vtable { + void *(*copy)(void *); + void (*destroy)(void *); + int (*cmp)(void *, void *); +} grpc_lb_user_data_vtable; + typedef struct grpc_lb_addresses { size_t num_addresses; grpc_lb_address *addresses; + const grpc_lb_user_data_vtable *user_data_vtable; } grpc_lb_addresses; /** Returns a grpc_addresses struct with enough space for - * \a num_addresses addresses. */ -grpc_lb_addresses *grpc_lb_addresses_create(size_t num_addresses); + \a num_addresses addresses. The \a user_data_vtable argument may be + NULL if no user data will be added. */ +grpc_lb_addresses *grpc_lb_addresses_create( + size_t num_addresses, const grpc_lb_user_data_vtable *user_data_vtable); -/** Creates a copy of \a addresses. If \a user_data_copy is not NULL, - * it will be invoked to copy the \a user_data field of each address. */ -grpc_lb_addresses *grpc_lb_addresses_copy(grpc_lb_addresses *addresses, - void *(*user_data_copy)(void *)); +/** Creates a copy of \a addresses. */ +grpc_lb_addresses *grpc_lb_addresses_copy(const grpc_lb_addresses *addresses); /** Sets the value of the address at index \a index of \a addresses. * \a address is a socket address of length \a address_len. @@ -81,20 +88,21 @@ void grpc_lb_addresses_set_address(grpc_lb_addresses *addresses, size_t index, bool is_balancer, char *balancer_name, void *user_data); -/** Destroys \a addresses. If \a user_data_destroy is not NULL, it will - * be invoked to destroy the \a user_data field of each address. */ -void grpc_lb_addresses_destroy(grpc_lb_addresses *addresses, - void (*user_data_destroy)(void *)); +/** Compares \a addresses1 and \a addresses2. */ +int grpc_lb_addresses_cmp(const grpc_lb_addresses *addresses1, + const grpc_lb_addresses *addresses2); + +/** Destroys \a addresses. */ +void grpc_lb_addresses_destroy(grpc_lb_addresses *addresses); + +/** Returns a channel arg containing \a addresses. */ +grpc_arg grpc_lb_addresses_create_channel_arg( + const grpc_lb_addresses *addresses); /** Arguments passed to LB policies. */ -/* TODO(roth, ctiller): Consider replacing this struct with - grpc_channel_args. See comment in resolver_result.h for details. */ typedef struct grpc_lb_policy_args { - const char *server_name; - grpc_lb_addresses *addresses; grpc_client_channel_factory *client_channel_factory; - /* Can be used to pass implementation-specific parameters to the LB policy. */ - grpc_channel_args *additional_args; + grpc_channel_args *args; } grpc_lb_policy_args; struct grpc_lb_policy_factory_vtable { diff --git a/src/core/ext/client_channel/parse_address.c b/src/core/ext/client_channel/parse_address.c index 31ca44299b..b1d55ad0f5 100644 --- a/src/core/ext/client_channel/parse_address.c +++ b/src/core/ext/client_channel/parse_address.c @@ -32,10 +32,11 @@ */ #include "src/core/ext/client_channel/parse_address.h" +#include "src/core/lib/iomgr/sockaddr.h" #include <stdio.h> #include <string.h> -#ifdef GPR_HAVE_UNIX_SOCKET +#ifdef GRPC_HAVE_UNIX_SOCKET #include <sys/un.h> #endif @@ -44,33 +45,39 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#ifdef GPR_HAVE_UNIX_SOCKET -int parse_unix(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len) { - struct sockaddr_un *un = (struct sockaddr_un *)addr; +#ifdef GRPC_HAVE_UNIX_SOCKET + +int parse_unix(grpc_uri *uri, grpc_resolved_address *resolved_addr) { + struct sockaddr_un *un = (struct sockaddr_un *)resolved_addr->addr; un->sun_family = AF_UNIX; strcpy(un->sun_path, uri->path); - *len = strlen(un->sun_path) + sizeof(un->sun_family) + 1; + resolved_addr->len = strlen(un->sun_path) + sizeof(un->sun_family) + 1; return 1; } -#endif -int parse_ipv4(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len) { +#else /* GRPC_HAVE_UNIX_SOCKET */ + +int parse_unix(grpc_uri *uri, grpc_resolved_address *resolved_addr) { abort(); } + +#endif /* GRPC_HAVE_UNIX_SOCKET */ + +int parse_ipv4(grpc_uri *uri, grpc_resolved_address *resolved_addr) { const char *host_port = uri->path; char *host; char *port; int port_num; int result = 0; - struct sockaddr_in *in = (struct sockaddr_in *)addr; + struct sockaddr_in *in = (struct sockaddr_in *)resolved_addr->addr; if (*host_port == '/') ++host_port; if (!gpr_split_host_port(host_port, &host, &port)) { return 0; } - memset(in, 0, sizeof(*in)); - *len = sizeof(*in); + memset(resolved_addr, 0, sizeof(grpc_resolved_address)); + resolved_addr->len = sizeof(struct sockaddr_in); in->sin_family = AF_INET; if (inet_pton(AF_INET, host, &in->sin_addr) == 0) { gpr_log(GPR_ERROR, "invalid ipv4 address: '%s'", host); @@ -96,13 +103,13 @@ done: return result; } -int parse_ipv6(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len) { +int parse_ipv6(grpc_uri *uri, grpc_resolved_address *resolved_addr) { const char *host_port = uri->path; char *host; char *port; int port_num; int result = 0; - struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)addr; + struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)resolved_addr->addr; if (*host_port == '/') ++host_port; if (!gpr_split_host_port(host_port, &host, &port)) { @@ -110,7 +117,7 @@ int parse_ipv6(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len) { } memset(in6, 0, sizeof(*in6)); - *len = sizeof(*in6); + resolved_addr->len = sizeof(*in6); in6->sin6_family = AF_INET6; if (inet_pton(AF_INET6, host, &in6->sin6_addr) == 0) { gpr_log(GPR_ERROR, "invalid ipv6 address: '%s'", host); diff --git a/src/core/ext/client_channel/parse_address.h b/src/core/ext/client_channel/parse_address.h index 3aa6c41546..bf99c5298a 100644 --- a/src/core/ext/client_channel/parse_address.h +++ b/src/core/ext/client_channel/parse_address.h @@ -37,20 +37,18 @@ #include <stddef.h> #include "src/core/ext/client_channel/uri_parser.h" -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" -#ifdef GPR_HAVE_UNIX_SOCKET /** Populate \a addr and \a len from \a uri, whose path is expected to contain a * unix socket path. Returns true upon success. */ -int parse_unix(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len); -#endif +int parse_unix(grpc_uri *uri, grpc_resolved_address *resolved_addr); /** Populate /a addr and \a len from \a uri, whose path is expected to contain a * host:port pair. Returns true upon success. */ -int parse_ipv4(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len); +int parse_ipv4(grpc_uri *uri, grpc_resolved_address *resolved_addr); /** Populate /a addr and \a len from \a uri, whose path is expected to contain a * host:port pair. Returns true upon success. */ -int parse_ipv6(grpc_uri *uri, struct sockaddr_storage *addr, size_t *len); +int parse_ipv6(grpc_uri *uri, grpc_resolved_address *resolved_addr); #endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_PARSE_ADDRESS_H */ diff --git a/src/core/ext/client_channel/resolver.c b/src/core/ext/client_channel/resolver.c index 0c26d95f2f..2ae4fe862e 100644 --- a/src/core/ext/client_channel/resolver.c +++ b/src/core/ext/client_channel/resolver.c @@ -76,7 +76,6 @@ void grpc_resolver_channel_saw_error(grpc_exec_ctx *exec_ctx, } void grpc_resolver_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, - grpc_resolver_result **result, - grpc_closure *on_complete) { + grpc_channel_args **result, grpc_closure *on_complete) { resolver->vtable->next(exec_ctx, resolver, result, on_complete); } diff --git a/src/core/ext/client_channel/resolver.h b/src/core/ext/client_channel/resolver.h index 0951613175..96ece92b9d 100644 --- a/src/core/ext/client_channel/resolver.h +++ b/src/core/ext/client_channel/resolver.h @@ -34,15 +34,13 @@ #ifndef GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_H #define GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_H -#include "src/core/ext/client_channel/resolver_result.h" #include "src/core/ext/client_channel/subchannel.h" #include "src/core/lib/iomgr/iomgr.h" typedef struct grpc_resolver grpc_resolver; typedef struct grpc_resolver_vtable grpc_resolver_vtable; -/** grpc_resolver provides grpc_resolver_result objects to grpc_channel - objects */ +/** \a grpc_resolver provides \a grpc_channel_args objects to its caller */ struct grpc_resolver { const grpc_resolver_vtable *vtable; gpr_refcount refs; @@ -53,7 +51,7 @@ struct grpc_resolver_vtable { void (*shutdown)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver); void (*channel_saw_error)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver); void (*next)(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, - grpc_resolver_result **result, grpc_closure *on_complete); + grpc_channel_args **result, grpc_closure *on_complete); }; #ifdef GRPC_RESOLVER_REFCOUNT_DEBUG @@ -81,14 +79,12 @@ void grpc_resolver_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver); void grpc_resolver_channel_saw_error(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver); -/** Get the next client config. Called by the channel to fetch a new - configuration. Expected to set *result with a new configuration, - and then schedule on_complete for execution. +/** Get the next result from the resolver. Expected to set \a *result with + new channel args and then schedule \a on_complete for execution. - If resolution is fatally broken, set *result to NULL and - schedule on_complete. */ + If resolution is fatally broken, set \a *result to NULL and + schedule \a on_complete. */ void grpc_resolver_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, - grpc_resolver_result **result, - grpc_closure *on_complete); + grpc_channel_args **result, grpc_closure *on_complete); #endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_H */ diff --git a/src/core/ext/client_channel/resolver_factory.h b/src/core/ext/client_channel/resolver_factory.h index 1ad018ce1f..4da42e84d2 100644 --- a/src/core/ext/client_channel/resolver_factory.h +++ b/src/core/ext/client_channel/resolver_factory.h @@ -41,13 +41,14 @@ typedef struct grpc_resolver_factory grpc_resolver_factory; typedef struct grpc_resolver_factory_vtable grpc_resolver_factory_vtable; -/** grpc_resolver provides grpc_resolver_result objects to grpc_channel - objects */ struct grpc_resolver_factory { const grpc_resolver_factory_vtable *vtable; }; -typedef struct grpc_resolver_args { grpc_uri *uri; } grpc_resolver_args; +typedef struct grpc_resolver_args { + grpc_uri *uri; + const grpc_channel_args *args; +} grpc_resolver_args; struct grpc_resolver_factory_vtable { void (*ref)(grpc_resolver_factory *factory); diff --git a/src/core/ext/client_channel/resolver_registry.c b/src/core/ext/client_channel/resolver_registry.c index ee43329874..d0f0fc3f33 100644 --- a/src/core/ext/client_channel/resolver_registry.c +++ b/src/core/ext/client_channel/resolver_registry.c @@ -131,14 +131,16 @@ static grpc_resolver_factory *resolve_factory(const char *target, return factory; } -grpc_resolver *grpc_resolver_create(const char *target) { +grpc_resolver *grpc_resolver_create(const char *target, + const grpc_channel_args *args) { grpc_uri *uri = NULL; grpc_resolver_factory *factory = resolve_factory(target, &uri); grpc_resolver *resolver; - grpc_resolver_args args; - memset(&args, 0, sizeof(args)); - args.uri = uri; - resolver = grpc_resolver_factory_create_resolver(factory, &args); + grpc_resolver_args resolver_args; + memset(&resolver_args, 0, sizeof(resolver_args)); + resolver_args.uri = uri; + resolver_args.args = args; + resolver = grpc_resolver_factory_create_resolver(factory, &resolver_args); grpc_uri_destroy(uri); return resolver; } diff --git a/src/core/ext/client_channel/resolver_registry.h b/src/core/ext/client_channel/resolver_registry.h index 0a39d4a187..2a95a669f0 100644 --- a/src/core/ext/client_channel/resolver_registry.h +++ b/src/core/ext/client_channel/resolver_registry.h @@ -57,8 +57,11 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory); was not NULL). If a resolver factory was found, use it to instantiate a resolver and return it. - If a resolver factory was not found, return NULL. */ -grpc_resolver *grpc_resolver_create(const char *target); + If a resolver factory was not found, return NULL. + \a args is a set of channel arguments to be included in the result + (typically the set of arguments passed in from the client API). */ +grpc_resolver *grpc_resolver_create(const char *target, + const grpc_channel_args *args); /** Find a resolver factory given a name and return an (owned-by-the-caller) * reference to it */ diff --git a/src/core/ext/client_channel/resolver_result.c b/src/core/ext/client_channel/resolver_result.c deleted file mode 100644 index ab1c215955..0000000000 --- a/src/core/ext/client_channel/resolver_result.c +++ /dev/null @@ -1,94 +0,0 @@ -// -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// - -#include "src/core/ext/client_channel/resolver_result.h" - -#include <string.h> - -#include <grpc/support/alloc.h> -#include <grpc/support/string_util.h> - -#include "src/core/lib/channel/channel_args.h" - -struct grpc_resolver_result { - gpr_refcount refs; - char* server_name; - grpc_lb_addresses* addresses; - char* lb_policy_name; - grpc_channel_args* lb_policy_args; -}; - -grpc_resolver_result* grpc_resolver_result_create( - const char* server_name, grpc_lb_addresses* addresses, - const char* lb_policy_name, grpc_channel_args* lb_policy_args) { - grpc_resolver_result* result = gpr_malloc(sizeof(*result)); - memset(result, 0, sizeof(*result)); - gpr_ref_init(&result->refs, 1); - result->server_name = gpr_strdup(server_name); - result->addresses = addresses; - result->lb_policy_name = gpr_strdup(lb_policy_name); - result->lb_policy_args = lb_policy_args; - return result; -} - -void grpc_resolver_result_ref(grpc_resolver_result* result) { - gpr_ref(&result->refs); -} - -void grpc_resolver_result_unref(grpc_exec_ctx* exec_ctx, - grpc_resolver_result* result) { - if (gpr_unref(&result->refs)) { - gpr_free(result->server_name); - grpc_lb_addresses_destroy(result->addresses, NULL /* user_data_destroy */); - gpr_free(result->lb_policy_name); - grpc_channel_args_destroy(result->lb_policy_args); - gpr_free(result); - } -} - -const char* grpc_resolver_result_get_server_name(grpc_resolver_result* result) { - return result->server_name; -} - -grpc_lb_addresses* grpc_resolver_result_get_addresses( - grpc_resolver_result* result) { - return result->addresses; -} - -const char* grpc_resolver_result_get_lb_policy_name( - grpc_resolver_result* result) { - return result->lb_policy_name; -} - -grpc_channel_args* grpc_resolver_result_get_lb_policy_args( - grpc_resolver_result* result) { - return result->lb_policy_args; -} diff --git a/src/core/ext/client_channel/resolver_result.h b/src/core/ext/client_channel/resolver_result.h deleted file mode 100644 index 5421fd9470..0000000000 --- a/src/core/ext/client_channel/resolver_result.h +++ /dev/null @@ -1,68 +0,0 @@ -// -// Copyright 2015, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// - -#ifndef GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_RESULT_H -#define GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_RESULT_H - -#include "src/core/ext/client_channel/lb_policy_factory.h" - -// TODO(roth, ctiller): In the long term, we are considering replacing -// the resolver_result data structure with grpc_channel_args. The idea is -// that the resolver will return a set of channel args that contains the -// information that is currently in the resolver_result struct. For -// example, there will be specific args indicating the set of addresses -// and the name of the LB policy to instantiate. Note that if we did -// this, we would probably want to change the data structure of -// grpc_channel_args such to a hash table or AVL or some other data -// structure that does not require linear search to find keys. - -/// Results reported from a grpc_resolver. -typedef struct grpc_resolver_result grpc_resolver_result; - -/// Takes ownership of \a addresses and \a lb_policy_args. -grpc_resolver_result* grpc_resolver_result_create( - const char* server_name, grpc_lb_addresses* addresses, - const char* lb_policy_name, grpc_channel_args* lb_policy_args); - -void grpc_resolver_result_ref(grpc_resolver_result* result); -void grpc_resolver_result_unref(grpc_exec_ctx* exec_ctx, - grpc_resolver_result* result); - -/// Accessors. Caller does NOT take ownership of results. -const char* grpc_resolver_result_get_server_name(grpc_resolver_result* result); -grpc_lb_addresses* grpc_resolver_result_get_addresses( - grpc_resolver_result* result); -const char* grpc_resolver_result_get_lb_policy_name( - grpc_resolver_result* result); -grpc_channel_args* grpc_resolver_result_get_lb_policy_args( - grpc_resolver_result* result); - -#endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_RESOLVER_RESULT_H */ diff --git a/src/core/ext/client_channel/subchannel.c b/src/core/ext/client_channel/subchannel.c index 672e5c3a91..ab6aede23a 100644 --- a/src/core/ext/client_channel/subchannel.c +++ b/src/core/ext/client_channel/subchannel.c @@ -95,8 +95,7 @@ struct grpc_subchannel { /** channel arguments */ grpc_channel_args *args; /** address to connect to */ - struct sockaddr *addr; - size_t addr_len; + grpc_resolved_address *addr; grpc_subchannel_key *key; @@ -298,7 +297,7 @@ void grpc_subchannel_weak_unref(grpc_exec_ctx *exec_ctx, grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx, grpc_connector *connector, - grpc_subchannel_args *args) { + const grpc_subchannel_args *args) { grpc_subchannel_key *key = grpc_subchannel_key_create(connector, args); grpc_subchannel *c = grpc_subchannel_index_find(exec_ctx, key); if (c) { @@ -320,12 +319,11 @@ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx, } else { c->filters = NULL; } - c->addr = gpr_malloc(args->addr_len); - if (args->addr_len) memcpy(c->addr, args->addr, args->addr_len); + c->addr = gpr_malloc(sizeof(grpc_resolved_address)); + if (args->addr->len) + memcpy(c->addr, args->addr, sizeof(grpc_resolved_address)); c->pollset_set = grpc_pollset_set_create(); - c->addr_len = args->addr_len; - grpc_set_initial_connect_string(&c->addr, &c->addr_len, - &c->initial_connect_string); + grpc_set_initial_connect_string(&c->addr, &c->initial_connect_string); c->args = grpc_channel_args_copy(args->args); c->root_external_state_watcher.next = c->root_external_state_watcher.prev = &c->root_external_state_watcher; @@ -376,7 +374,6 @@ static void continue_connect(grpc_exec_ctx *exec_ctx, grpc_subchannel *c) { args.interested_parties = c->pollset_set; args.addr = c->addr; - args.addr_len = c->addr_len; args.deadline = c->next_attempt; args.channel_args = c->args; args.initial_connect_string = c->initial_connect_string; diff --git a/src/core/ext/client_channel/subchannel.h b/src/core/ext/client_channel/subchannel.h index c4a7da0c24..5652074074 100644 --- a/src/core/ext/client_channel/subchannel.h +++ b/src/core/ext/client_channel/subchannel.h @@ -167,13 +167,12 @@ struct grpc_subchannel_args { /** Server name */ const char *server_name; /** Address to connect to */ - struct sockaddr *addr; - size_t addr_len; + grpc_resolved_address *addr; }; /** create a subchannel given a connector */ grpc_subchannel *grpc_subchannel_create(grpc_exec_ctx *exec_ctx, grpc_connector *connector, - grpc_subchannel_args *args); + const grpc_subchannel_args *args); #endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_SUBCHANNEL_H */ diff --git a/src/core/ext/client_channel/subchannel_index.c b/src/core/ext/client_channel/subchannel_index.c index bf22975fba..227013a7d7 100644 --- a/src/core/ext/client_channel/subchannel_index.c +++ b/src/core/ext/client_channel/subchannel_index.c @@ -73,7 +73,7 @@ static grpc_exec_ctx *current_ctx() { } static grpc_subchannel_key *create_key( - grpc_connector *connector, grpc_subchannel_args *args, + grpc_connector *connector, const grpc_subchannel_args *args, grpc_channel_args *(*copy_channel_args)(const grpc_channel_args *args)) { grpc_subchannel_key *k = gpr_malloc(sizeof(*k)); k->connector = grpc_connector_ref(connector); @@ -87,17 +87,17 @@ static grpc_subchannel_key *create_key( k->args.filters = NULL; } k->args.server_name = gpr_strdup(args->server_name); - k->args.addr_len = args->addr_len; - k->args.addr = gpr_malloc(args->addr_len); - if (k->args.addr_len > 0) { - memcpy(k->args.addr, args->addr, k->args.addr_len); + k->args.addr = gpr_malloc(sizeof(grpc_resolved_address)); + k->args.addr->len = args->addr->len; + if (k->args.addr->len > 0) { + memcpy(k->args.addr, args->addr, sizeof(grpc_resolved_address)); } k->args.args = copy_channel_args(args->args); return k; } -grpc_subchannel_key *grpc_subchannel_key_create(grpc_connector *connector, - grpc_subchannel_args *args) { +grpc_subchannel_key *grpc_subchannel_key_create( + grpc_connector *connector, const grpc_subchannel_args *args) { return create_key(connector, args, grpc_channel_args_normalize); } @@ -109,14 +109,14 @@ static int subchannel_key_compare(grpc_subchannel_key *a, grpc_subchannel_key *b) { int c = GPR_ICMP(a->connector, b->connector); if (c != 0) return c; - c = GPR_ICMP(a->args.addr_len, b->args.addr_len); + c = GPR_ICMP(a->args.addr->len, b->args.addr->len); if (c != 0) return c; c = GPR_ICMP(a->args.filter_count, b->args.filter_count); if (c != 0) return c; c = strcmp(a->args.server_name, b->args.server_name); if (c != 0) return c; - if (a->args.addr_len) { - c = memcmp(a->args.addr, b->args.addr, a->args.addr_len); + if (a->args.addr->len) { + c = memcmp(a->args.addr->addr, b->args.addr->addr, a->args.addr->len); if (c != 0) return c; } if (a->args.filter_count > 0) { diff --git a/src/core/ext/client_channel/subchannel_index.h b/src/core/ext/client_channel/subchannel_index.h index 5b3af6b054..a67bd5e219 100644 --- a/src/core/ext/client_channel/subchannel_index.h +++ b/src/core/ext/client_channel/subchannel_index.h @@ -43,8 +43,8 @@ typedef struct grpc_subchannel_key grpc_subchannel_key; /** Create a key that can be used to uniquely identify a subchannel */ -grpc_subchannel_key *grpc_subchannel_key_create(grpc_connector *con, - grpc_subchannel_args *args); +grpc_subchannel_key *grpc_subchannel_key_create( + grpc_connector *con, const grpc_subchannel_args *args); /** Destroy a subchannel key */ void grpc_subchannel_key_destroy(grpc_exec_ctx *exec_ctx, diff --git a/src/core/ext/lb_policy/grpclb/grpclb.c b/src/core/ext/lb_policy/grpclb/grpclb.c index 412090158a..6da4febf26 100644 --- a/src/core/ext/lb_policy/grpclb/grpclb.c +++ b/src/core/ext/lb_policy/grpclb/grpclb.c @@ -96,6 +96,12 @@ * - Implement LB service forwarding (point 2c. in the doc's diagram). */ +/* With the addition of a libuv endpoint, sockaddr.h now includes uv.h when + using that endpoint. Because of various transitive includes in uv.h, + including windows.h on Windows, uv.h must be included before other system + headers. Therefore, sockaddr.h must always be included first */ +#include "src/core/lib/iomgr/sockaddr.h" + #include <errno.h> #include <string.h> @@ -114,7 +120,6 @@ #include "src/core/ext/lb_policy/grpclb/grpclb.h" #include "src/core/ext/lb_policy/grpclb/load_balancer_api.h" #include "src/core/lib/channel/channel_args.h" -#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/support/string.h" #include "src/core/lib/surface/call.h" @@ -338,6 +343,21 @@ static bool is_server_valid(const grpc_grpclb_server *server, size_t idx, return true; } +/* vtable for LB tokens in grpc_lb_addresses. */ +static void *lb_token_copy(void *token) { + return token == NULL ? NULL : GRPC_MDELEM_REF(token); +} +static void lb_token_destroy(void *token) { + if (token != NULL) GRPC_MDELEM_UNREF(token); +} +static int lb_token_cmp(void *token1, void *token2) { + if (token1 > token2) return 1; + if (token1 < token2) return -1; + return 0; +} +static const grpc_lb_user_data_vtable lb_token_vtable = { + lb_token_copy, lb_token_destroy, lb_token_cmp}; + /* Returns addresses extracted from \a serverlist. */ static grpc_lb_addresses *process_serverlist( const grpc_grpclb_serverlist *serverlist) { @@ -349,7 +369,8 @@ static grpc_lb_addresses *process_serverlist( } if (num_valid == 0) return NULL; - grpc_lb_addresses *lb_addresses = grpc_lb_addresses_create(num_valid); + grpc_lb_addresses *lb_addresses = + grpc_lb_addresses_create(num_valid, &lb_token_vtable); /* second pass: actually populate the addresses and LB tokens (aka user data * to the outside world) to be read by the RR policy during its creation. @@ -396,7 +417,7 @@ static grpc_lb_addresses *process_serverlist( gpr_log(GPR_ERROR, "Missing LB token for backend address '%s'. The empty token will " "be used instead", - grpc_sockaddr_to_uri((struct sockaddr *)&addr.addr)); + grpc_sockaddr_to_uri(&addr)); user_data = GRPC_MDELEM_LB_TOKEN_EMPTY; } @@ -410,11 +431,6 @@ static grpc_lb_addresses *process_serverlist( return lb_addresses; } -/* A plugin for grpc_lb_addresses_destroy that unrefs the LB token metadata. */ -static void lb_token_destroy(void *token) { - if (token != NULL) GRPC_MDELEM_UNREF(token); -} - /* perform a pick over \a rr_policy. Given that a pick can return immediately * (ignoring its completion callback) we need to perform the cleanups this * callback would be otherwise resposible for */ @@ -454,20 +470,27 @@ static grpc_lb_policy *create_rr_locked( glb_lb_policy *glb_policy) { GPR_ASSERT(serverlist != NULL && serverlist->num_servers > 0); + if (glb_policy->addresses != NULL) { + /* dispose of the previous version */ + grpc_lb_addresses_destroy(glb_policy->addresses); + } + glb_policy->addresses = process_serverlist(serverlist); + grpc_lb_policy_args args; memset(&args, 0, sizeof(args)); - args.server_name = glb_policy->server_name; args.client_channel_factory = glb_policy->cc_factory; - args.addresses = process_serverlist(serverlist); - args.additional_args = glb_policy->args; - grpc_lb_policy *rr = grpc_lb_policy_create(exec_ctx, "round_robin", &args); + // Replace the LB addresses in the channel args that we pass down to + // the subchannel. + static const char *keys_to_remove[] = {GRPC_ARG_LB_ADDRESSES}; + const grpc_arg arg = + grpc_lb_addresses_create_channel_arg(glb_policy->addresses); + args.args = grpc_channel_args_copy_and_add_and_remove( + glb_policy->args, keys_to_remove, GPR_ARRAY_SIZE(keys_to_remove), &arg, + 1); - if (glb_policy->addresses != NULL) { - /* dispose of the previous version */ - grpc_lb_addresses_destroy(glb_policy->addresses, lb_token_destroy); - } - glb_policy->addresses = args.addresses; + grpc_lb_policy *rr = grpc_lb_policy_create(exec_ctx, "round_robin", &args); + grpc_channel_args_destroy(args.args); return rr; } @@ -563,6 +586,12 @@ static void glb_rr_connectivity_changed(grpc_exec_ctx *exec_ctx, void *arg, static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx, grpc_lb_policy_factory *factory, grpc_lb_policy_args *args) { + /* Get server name. */ + const grpc_arg *arg = + grpc_channel_args_find(args->args, GRPC_ARG_SERVER_NAME); + const char *server_name = + arg != NULL && arg->type == GRPC_ARG_STRING ? arg->value.string : NULL; + /* Count the number of gRPC-LB addresses. There must be at least one. * TODO(roth): For now, we ignore non-balancer addresses, but in the * future, we may change the behavior such that we fall back to using @@ -570,24 +599,27 @@ static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx, * time, this should be changed to allow a list with no balancer addresses, * since the resolver might fail to return a balancer address even when * this is the right LB policy to use. */ + arg = grpc_channel_args_find(args->args, GRPC_ARG_LB_ADDRESSES); + GPR_ASSERT(arg != NULL && arg->type == GRPC_ARG_POINTER); + grpc_lb_addresses *addresses = arg->value.pointer.p; size_t num_grpclb_addrs = 0; - for (size_t i = 0; i < args->addresses->num_addresses; ++i) { - if (args->addresses->addresses[i].is_balancer) ++num_grpclb_addrs; + for (size_t i = 0; i < addresses->num_addresses; ++i) { + if (addresses->addresses[i].is_balancer) ++num_grpclb_addrs; } if (num_grpclb_addrs == 0) return NULL; glb_lb_policy *glb_policy = gpr_malloc(sizeof(*glb_policy)); memset(glb_policy, 0, sizeof(*glb_policy)); - /* All input addresses in args->addresses come from a resolver that claims + /* All input addresses in addresses come from a resolver that claims * they are LB services. It's the resolver's responsibility to make sure * this * policy is only instantiated and used in that case. * * Create a client channel over them to communicate with a LB service */ - glb_policy->server_name = gpr_strdup(args->server_name); + glb_policy->server_name = gpr_strdup(server_name); glb_policy->cc_factory = args->client_channel_factory; - glb_policy->args = grpc_channel_args_copy(args->additional_args); + glb_policy->args = grpc_channel_args_copy(args->args); GPR_ASSERT(glb_policy->cc_factory != NULL); /* construct a target from the addresses in args, given in the form @@ -595,22 +627,19 @@ static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx, * TODO(dgq): support mixed ip version */ char **addr_strs = gpr_malloc(sizeof(char *) * num_grpclb_addrs); size_t addr_index = 0; - for (size_t i = 0; i < args->addresses->num_addresses; i++) { - if (args->addresses->addresses[i].user_data != NULL) { + for (size_t i = 0; i < addresses->num_addresses; i++) { + if (addresses->addresses[i].user_data != NULL) { gpr_log(GPR_ERROR, "This LB policy doesn't support user data. It will be ignored"); } - if (args->addresses->addresses[i].is_balancer) { + if (addresses->addresses[i].is_balancer) { if (addr_index == 0) { - addr_strs[addr_index++] = grpc_sockaddr_to_uri( - (const struct sockaddr *)&args->addresses->addresses[i] - .address.addr); + addr_strs[addr_index++] = + grpc_sockaddr_to_uri(&addresses->addresses[i].address); } else { - GPR_ASSERT(grpc_sockaddr_to_string( - &addr_strs[addr_index++], - (const struct sockaddr *)&args->addresses->addresses[i] - .address.addr, - true) > 0); + GPR_ASSERT(grpc_sockaddr_to_string(&addr_strs[addr_index++], + &addresses->addresses[i].address, + true) > 0); } } } @@ -618,10 +647,29 @@ static grpc_lb_policy *glb_create(grpc_exec_ctx *exec_ctx, char *target_uri_str = gpr_strjoin_sep((const char **)addr_strs, num_grpclb_addrs, ",", &uri_path_len); - /* will pick using pick_first */ + /* Create a channel to talk to the LBs. + * + * We strip out the channel arg for the LB policy name, since we want + * to use the default (pick_first) in this case. + * + * We also strip out the channel arg for the resolved addresses, since + * that will be generated by the name resolver used in the LB channel. + * Note that the LB channel will use the sockaddr resolver, so this + * won't actually generate a query to DNS (or some other name service). + * However, the addresses returned by the sockaddr resolver will have + * is_balancer=false, whereas our own addresses have is_balancer=true. + * We need the LB channel to return addresses with is_balancer=false + * so that it does not wind up recursively using the grpclb LB policy, + * as per the special case logic in client_channel.c. + */ + static const char *keys_to_remove[] = {GRPC_ARG_LB_POLICY_NAME, + GRPC_ARG_LB_ADDRESSES}; + grpc_channel_args *new_args = grpc_channel_args_copy_and_remove( + args->args, keys_to_remove, GPR_ARRAY_SIZE(keys_to_remove)); glb_policy->lb_channel = grpc_client_channel_factory_create_channel( exec_ctx, glb_policy->cc_factory, target_uri_str, - GRPC_CLIENT_CHANNEL_TYPE_LOAD_BALANCING, NULL); + GRPC_CLIENT_CHANNEL_TYPE_LOAD_BALANCING, new_args); + grpc_channel_args_destroy(new_args); gpr_free(target_uri_str); for (size_t i = 0; i < num_grpclb_addrs; i++) { @@ -662,7 +710,7 @@ static void glb_destroy(grpc_exec_ctx *exec_ctx, grpc_lb_policy *pol) { grpc_grpclb_destroy_serverlist(glb_policy->serverlist); } gpr_mu_destroy(&glb_policy->mu); - grpc_lb_addresses_destroy(glb_policy->addresses, lb_token_destroy); + grpc_lb_addresses_destroy(glb_policy->addresses); gpr_free(glb_policy); } diff --git a/src/core/ext/lb_policy/pick_first/pick_first.c b/src/core/ext/lb_policy/pick_first/pick_first.c index 270fe3fe70..5d3433df74 100644 --- a/src/core/ext/lb_policy/pick_first/pick_first.c +++ b/src/core/ext/lb_policy/pick_first/pick_first.c @@ -34,7 +34,9 @@ #include <string.h> #include <grpc/support/alloc.h> + #include "src/core/ext/client_channel/lb_policy_registry.h" +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/transport/connectivity_state.h" typedef struct pending_pick { @@ -432,14 +434,22 @@ static void pick_first_factory_unref(grpc_lb_policy_factory *factory) {} static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx, grpc_lb_policy_factory *factory, grpc_lb_policy_args *args) { - GPR_ASSERT(args->addresses != NULL); GPR_ASSERT(args->client_channel_factory != NULL); + /* Get server name. */ + const grpc_arg *arg = + grpc_channel_args_find(args->args, GRPC_ARG_SERVER_NAME); + const char *server_name = + arg != NULL && arg->type == GRPC_ARG_STRING ? arg->value.string : NULL; + /* Find the number of backend addresses. We ignore balancer * addresses, since we don't know how to handle them. */ + arg = grpc_channel_args_find(args->args, GRPC_ARG_LB_ADDRESSES); + GPR_ASSERT(arg != NULL && arg->type == GRPC_ARG_POINTER); + grpc_lb_addresses *addresses = arg->value.pointer.p; size_t num_addrs = 0; - for (size_t i = 0; i < args->addresses->num_addresses; i++) { - if (!args->addresses->addresses[i].is_balancer) ++num_addrs; + for (size_t i = 0; i < addresses->num_addresses; i++) { + if (!addresses->addresses[i].is_balancer) ++num_addrs; } if (num_addrs == 0) return NULL; @@ -450,23 +460,21 @@ static grpc_lb_policy *create_pick_first(grpc_exec_ctx *exec_ctx, memset(p->subchannels, 0, sizeof(*p->subchannels) * num_addrs); grpc_subchannel_args sc_args; size_t subchannel_idx = 0; - for (size_t i = 0; i < args->addresses->num_addresses; i++) { + for (size_t i = 0; i < addresses->num_addresses; i++) { /* Skip balancer addresses, since we only know how to handle backends. */ - if (args->addresses->addresses[i].is_balancer) continue; + if (addresses->addresses[i].is_balancer) continue; - if (args->addresses->addresses[i].user_data != NULL) { + if (addresses->addresses[i].user_data != NULL) { gpr_log(GPR_ERROR, "This LB policy doesn't support user data. It will be ignored"); } memset(&sc_args, 0, sizeof(grpc_subchannel_args)); /* server_name will be copied as part of the subchannel creation. This makes - * the copying of args->server_name (a borrowed pointer) OK. */ - sc_args.server_name = args->server_name; - sc_args.addr = - (struct sockaddr *)(&args->addresses->addresses[i].address.addr); - sc_args.addr_len = args->addresses->addresses[i].address.len; - sc_args.args = args->additional_args; + * the copying of server_name (a borrowed pointer) OK. */ + sc_args.server_name = server_name; + sc_args.addr = &addresses->addresses[i].address; + sc_args.args = args->args; grpc_subchannel *subchannel = grpc_client_channel_factory_create_subchannel( exec_ctx, args->client_channel_factory, &sc_args); diff --git a/src/core/ext/lb_policy/round_robin/round_robin.c b/src/core/ext/lb_policy/round_robin/round_robin.c index b32f6be99e..c0743b00e8 100644 --- a/src/core/ext/lb_policy/round_robin/round_robin.c +++ b/src/core/ext/lb_policy/round_robin/round_robin.c @@ -64,6 +64,7 @@ #include <grpc/support/alloc.h> #include "src/core/ext/client_channel/lb_policy_registry.h" +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/debug/trace.h" #include "src/core/lib/transport/connectivity_state.h" #include "src/core/lib/transport/static_metadata.h" @@ -598,14 +599,22 @@ static void round_robin_factory_unref(grpc_lb_policy_factory *factory) {} static grpc_lb_policy *round_robin_create(grpc_exec_ctx *exec_ctx, grpc_lb_policy_factory *factory, grpc_lb_policy_args *args) { - GPR_ASSERT(args->addresses != NULL); GPR_ASSERT(args->client_channel_factory != NULL); + /* Get server name. */ + const grpc_arg *arg = + grpc_channel_args_find(args->args, GRPC_ARG_SERVER_NAME); + const char *server_name = + arg != NULL && arg->type == GRPC_ARG_STRING ? arg->value.string : NULL; + /* Find the number of backend addresses. We ignore balancer * addresses, since we don't know how to handle them. */ + arg = grpc_channel_args_find(args->args, GRPC_ARG_LB_ADDRESSES); + GPR_ASSERT(arg != NULL && arg->type == GRPC_ARG_POINTER); + grpc_lb_addresses *addresses = arg->value.pointer.p; size_t num_addrs = 0; - for (size_t i = 0; i < args->addresses->num_addresses; i++) { - if (!args->addresses->addresses[i].is_balancer) ++num_addrs; + for (size_t i = 0; i < addresses->num_addresses; i++) { + if (!addresses->addresses[i].is_balancer) ++num_addrs; } if (num_addrs == 0) return NULL; @@ -618,18 +627,16 @@ static grpc_lb_policy *round_robin_create(grpc_exec_ctx *exec_ctx, grpc_subchannel_args sc_args; size_t subchannel_idx = 0; - for (size_t i = 0; i < args->addresses->num_addresses; i++) { + for (size_t i = 0; i < addresses->num_addresses; i++) { /* Skip balancer addresses, since we only know how to handle backends. */ - if (args->addresses->addresses[i].is_balancer) continue; + if (addresses->addresses[i].is_balancer) continue; memset(&sc_args, 0, sizeof(grpc_subchannel_args)); /* server_name will be copied as part of the subchannel creation. This makes - * the copying of args->server_name (a borrowed pointer) OK. */ - sc_args.server_name = args->server_name; - sc_args.addr = - (struct sockaddr *)(&args->addresses->addresses[i].address.addr); - sc_args.addr_len = args->addresses->addresses[i].address.len; - sc_args.args = args->additional_args; + * the copying of server_name (a borrowed pointer) OK. */ + sc_args.server_name = server_name; + sc_args.addr = &addresses->addresses[i].address; + sc_args.args = args->args; grpc_subchannel *subchannel = grpc_client_channel_factory_create_subchannel( exec_ctx, args->client_channel_factory, &sc_args); @@ -641,7 +648,7 @@ static grpc_lb_policy *round_robin_create(grpc_exec_ctx *exec_ctx, sd->policy = p; sd->index = subchannel_idx; sd->subchannel = subchannel; - sd->user_data = args->addresses->addresses[i].user_data; + sd->user_data = addresses->addresses[i].user_data; ++subchannel_idx; grpc_closure_init(&sd->connectivity_changed_closure, rr_connectivity_changed, sd); diff --git a/src/core/ext/resolver/dns/native/dns_resolver.c b/src/core/ext/resolver/dns/native/dns_resolver.c index b4ceee340e..958b8af8b2 100644 --- a/src/core/ext/resolver/dns/native/dns_resolver.c +++ b/src/core/ext/resolver/dns/native/dns_resolver.c @@ -40,6 +40,7 @@ #include "src/core/ext/client_channel/http_connect_handshaker.h" #include "src/core/ext/client_channel/lb_policy_registry.h" #include "src/core/ext/client_channel/resolver_registry.h" +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/timer.h" #include "src/core/lib/support/backoff.h" @@ -53,12 +54,12 @@ typedef struct { /** base class: must be first */ grpc_resolver base; - /** target name */ - char *target_name; - /** name to resolve (usually the same as target_name) */ + /** name to resolve */ char *name_to_resolve; /** default port to use */ char *default_port; + /** channel args. */ + grpc_channel_args *channel_args; /** mutex guarding the rest of the state */ gpr_mu mu; @@ -71,9 +72,9 @@ typedef struct { /** pending next completion, or NULL */ grpc_closure *next_completion; /** target result address for next completion */ - grpc_resolver_result **target_result; + grpc_channel_args **target_result; /** current (fully resolved) result */ - grpc_resolver_result *resolved_result; + grpc_channel_args *resolved_result; /** retry timer */ bool have_retry_timer; grpc_timer retry_timer; @@ -94,7 +95,7 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, static void dns_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *r); static void dns_channel_saw_error(grpc_exec_ctx *exec_ctx, grpc_resolver *r); static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *r, - grpc_resolver_result **target_result, + grpc_channel_args **target_result, grpc_closure *on_complete); static const grpc_resolver_vtable dns_resolver_vtable = { @@ -127,7 +128,7 @@ static void dns_channel_saw_error(grpc_exec_ctx *exec_ctx, } static void dns_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, - grpc_resolver_result **target_result, + grpc_channel_args **target_result, grpc_closure *on_complete) { dns_resolver *r = (dns_resolver *)resolver; gpr_mu_lock(&r->mu); @@ -162,22 +163,23 @@ static void dns_on_retry_timer(grpc_exec_ctx *exec_ctx, void *arg, static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { dns_resolver *r = arg; - grpc_resolver_result *result = NULL; + grpc_channel_args *result = NULL; gpr_mu_lock(&r->mu); GPR_ASSERT(r->resolving); r->resolving = false; if (r->addresses != NULL) { - grpc_lb_addresses *addresses = - grpc_lb_addresses_create(r->addresses->naddrs); + grpc_lb_addresses *addresses = grpc_lb_addresses_create( + r->addresses->naddrs, NULL /* user_data_vtable */); for (size_t i = 0; i < r->addresses->naddrs; ++i) { grpc_lb_addresses_set_address( addresses, i, &r->addresses->addrs[i].addr, r->addresses->addrs[i].len, false /* is_balancer */, NULL /* balancer_name */, NULL /* user_data */); } + grpc_arg new_arg = grpc_lb_addresses_create_channel_arg(addresses); + result = grpc_channel_args_copy_and_add(r->channel_args, &new_arg, 1); grpc_resolved_addresses_destroy(r->addresses); - result = grpc_resolver_result_create(r->target_name, addresses, - NULL /* lb_policy_name */, NULL); + grpc_lb_addresses_destroy(addresses); } else { gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC); gpr_timespec next_try = gpr_backoff_step(&r->backoff_state, now); @@ -197,8 +199,8 @@ static void dns_on_resolved(grpc_exec_ctx *exec_ctx, void *arg, grpc_timer_init(exec_ctx, &r->retry_timer, next_try, dns_on_retry_timer, r, now); } - if (r->resolved_result) { - grpc_resolver_result_unref(exec_ctx, r->resolved_result); + if (r->resolved_result != NULL) { + grpc_channel_args_destroy(r->resolved_result); } r->resolved_result = result; r->resolved_version++; @@ -222,10 +224,9 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, dns_resolver *r) { if (r->next_completion != NULL && r->resolved_version != r->published_version) { - *r->target_result = r->resolved_result; - if (r->resolved_result) { - grpc_resolver_result_ref(r->resolved_result); - } + *r->target_result = r->resolved_result == NULL + ? NULL + : grpc_channel_args_copy(r->resolved_result); grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL); r->next_completion = NULL; r->published_version = r->resolved_version; @@ -235,12 +236,12 @@ static void dns_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, static void dns_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) { dns_resolver *r = (dns_resolver *)gr; gpr_mu_destroy(&r->mu); - if (r->resolved_result) { - grpc_resolver_result_unref(exec_ctx, r->resolved_result); + if (r->resolved_result != NULL) { + grpc_channel_args_destroy(r->resolved_result); } - gpr_free(r->target_name); gpr_free(r->name_to_resolve); gpr_free(r->default_port); + grpc_channel_args_destroy(r->channel_args); gpr_free(r); } @@ -260,9 +261,14 @@ static grpc_resolver *dns_create(grpc_resolver_args *args, memset(r, 0, sizeof(*r)); gpr_mu_init(&r->mu); grpc_resolver_init(&r->base, &dns_resolver_vtable); - r->target_name = gpr_strdup(path); r->name_to_resolve = proxy_name == NULL ? gpr_strdup(path) : proxy_name; r->default_port = gpr_strdup(default_port); + grpc_arg server_name_arg; + server_name_arg.type = GRPC_ARG_STRING; + server_name_arg.key = GRPC_ARG_SERVER_NAME; + server_name_arg.value.string = (char *)path; + r->channel_args = + grpc_channel_args_copy_and_add(args->args, &server_name_arg, 1); gpr_backoff_init(&r->backoff_state, BACKOFF_MULTIPLIER, BACKOFF_JITTER, BACKOFF_MIN_SECONDS * 1000, BACKOFF_MAX_SECONDS * 1000); return &r->base; diff --git a/src/core/ext/resolver/sockaddr/sockaddr_resolver.c b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c index 9924fc6fec..5fec03a8e4 100644 --- a/src/core/ext/resolver/sockaddr/sockaddr_resolver.c +++ b/src/core/ext/resolver/sockaddr/sockaddr_resolver.c @@ -41,8 +41,10 @@ #include <grpc/support/port_platform.h> #include <grpc/support/string_util.h> +#include "src/core/ext/client_channel/lb_policy_factory.h" #include "src/core/ext/client_channel/parse_address.h" #include "src/core/ext/client_channel/resolver_registry.h" +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" #include "src/core/lib/support/string.h" @@ -50,10 +52,10 @@ typedef struct { /** base class: must be first */ grpc_resolver base; - /** the path component of the uri passed in */ - char *target_name; /** the addresses that we've 'resolved' */ grpc_lb_addresses *addresses; + /** channel args */ + grpc_channel_args *channel_args; /** mutex guarding the rest of the state */ gpr_mu mu; /** have we published? */ @@ -61,7 +63,7 @@ typedef struct { /** pending next completion, or NULL */ grpc_closure *next_completion; /** target result address for next completion */ - grpc_resolver_result **target_result; + grpc_channel_args **target_result; } sockaddr_resolver; static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *r); @@ -73,7 +75,7 @@ static void sockaddr_shutdown(grpc_exec_ctx *exec_ctx, grpc_resolver *r); static void sockaddr_channel_saw_error(grpc_exec_ctx *exec_ctx, grpc_resolver *r); static void sockaddr_next(grpc_exec_ctx *exec_ctx, grpc_resolver *r, - grpc_resolver_result **target_result, + grpc_channel_args **target_result, grpc_closure *on_complete); static const grpc_resolver_vtable sockaddr_resolver_vtable = { @@ -102,7 +104,7 @@ static void sockaddr_channel_saw_error(grpc_exec_ctx *exec_ctx, } static void sockaddr_next(grpc_exec_ctx *exec_ctx, grpc_resolver *resolver, - grpc_resolver_result **target_result, + grpc_channel_args **target_result, grpc_closure *on_complete) { sockaddr_resolver *r = (sockaddr_resolver *)resolver; gpr_mu_lock(&r->mu); @@ -117,10 +119,9 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, sockaddr_resolver *r) { if (r->next_completion != NULL && !r->published) { r->published = true; - *r->target_result = grpc_resolver_result_create( - r->target_name, - grpc_lb_addresses_copy(r->addresses, NULL /* user_data_copy */), - NULL /* lb_policy_name */, NULL /* lb_policy_args */); + grpc_arg arg = grpc_lb_addresses_create_channel_arg(r->addresses); + *r->target_result = + grpc_channel_args_copy_and_add(r->channel_args, &arg, 1); grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL); r->next_completion = NULL; } @@ -129,8 +130,8 @@ static void sockaddr_maybe_finish_next_locked(grpc_exec_ctx *exec_ctx, static void sockaddr_destroy(grpc_exec_ctx *exec_ctx, grpc_resolver *gr) { sockaddr_resolver *r = (sockaddr_resolver *)gr; gpr_mu_destroy(&r->mu); - gpr_free(r->target_name); - grpc_lb_addresses_destroy(r->addresses, NULL /* user_data_destroy */); + grpc_lb_addresses_destroy(r->addresses); + grpc_channel_args_destroy(r->channel_args); gpr_free(r); } @@ -150,7 +151,7 @@ static char *ipv6_get_default_authority(grpc_resolver_factory *factory, return ip_get_default_authority(uri); } -#ifdef GPR_HAVE_UNIX_SOCKET +#ifdef GRPC_HAVE_UNIX_SOCKET char *unix_get_default_authority(grpc_resolver_factory *factory, grpc_uri *uri) { return gpr_strdup("localhost"); @@ -161,8 +162,7 @@ static void do_nothing(void *ignored) {} static grpc_resolver *sockaddr_create(grpc_resolver_args *args, int parse(grpc_uri *uri, - struct sockaddr_storage *dst, - size_t *len)) { + grpc_resolved_address *dst)) { if (0 != strcmp(args->uri->authority, "")) { gpr_log(GPR_ERROR, "authority based uri's not supported by the %s scheme", args->uri->scheme); @@ -174,17 +174,15 @@ static grpc_resolver *sockaddr_create(grpc_resolver_args *args, gpr_slice_buffer path_parts; gpr_slice_buffer_init(&path_parts); gpr_slice_split(path_slice, ",", &path_parts); - grpc_lb_addresses *addresses = grpc_lb_addresses_create(path_parts.count); + grpc_lb_addresses *addresses = + grpc_lb_addresses_create(path_parts.count, NULL /* user_data_vtable */); bool errors_found = false; for (size_t i = 0; i < addresses->num_addresses; i++) { grpc_uri ith_uri = *args->uri; char *part_str = gpr_dump_slice(path_parts.slices[i], GPR_DUMP_ASCII); ith_uri.path = part_str; - if (!parse( - &ith_uri, - (struct sockaddr_storage *)(&addresses->addresses[i].address.addr), - &addresses->addresses[i].address.len)) { - errors_found = true; + if (!parse(&ith_uri, &addresses->addresses[i].address)) { + errors_found = true; /* GPR_TRUE */ } gpr_free(part_str); if (errors_found) break; @@ -192,14 +190,19 @@ static grpc_resolver *sockaddr_create(grpc_resolver_args *args, gpr_slice_buffer_destroy(&path_parts); gpr_slice_unref(path_slice); if (errors_found) { - grpc_lb_addresses_destroy(addresses, NULL /* user_data_destroy */); + grpc_lb_addresses_destroy(addresses); return NULL; } /* Instantiate resolver. */ sockaddr_resolver *r = gpr_malloc(sizeof(sockaddr_resolver)); memset(r, 0, sizeof(*r)); - r->target_name = gpr_strdup(args->uri->path); r->addresses = addresses; + grpc_arg server_name_arg; + server_name_arg.type = GRPC_ARG_STRING; + server_name_arg.key = GRPC_ARG_SERVER_NAME; + server_name_arg.value.string = args->uri->path; + r->channel_args = + grpc_channel_args_copy_and_add(args->args, &server_name_arg, 1); gpr_mu_init(&r->mu); grpc_resolver_init(&r->base, &sockaddr_resolver_vtable); return &r->base; @@ -224,7 +227,7 @@ static void sockaddr_factory_unref(grpc_resolver_factory *factory) {} static grpc_resolver_factory name##_resolver_factory = { \ &name##_factory_vtable} -#ifdef GPR_HAVE_UNIX_SOCKET +#ifdef GRPC_HAVE_UNIX_SOCKET DECL_FACTORY(unix); #endif DECL_FACTORY(ipv4); @@ -233,7 +236,7 @@ DECL_FACTORY(ipv6); void grpc_resolver_sockaddr_init(void) { grpc_register_resolver_type(&ipv4_resolver_factory); grpc_register_resolver_type(&ipv6_resolver_factory); -#ifdef GPR_HAVE_UNIX_SOCKET +#ifdef GRPC_HAVE_UNIX_SOCKET grpc_register_resolver_type(&unix_resolver_factory); #endif } diff --git a/src/core/ext/transport/chttp2/alpn/alpn.c b/src/core/ext/transport/chttp2/alpn/alpn.c index 48b0217265..55710dc5ae 100644 --- a/src/core/ext/transport/chttp2/alpn/alpn.c +++ b/src/core/ext/transport/chttp2/alpn/alpn.c @@ -36,7 +36,7 @@ #include <grpc/support/useful.h> /* in order of preference */ -static const char *const supported_versions[] = {"h2"}; +static const char *const supported_versions[] = {"grpc-exp", "h2"}; int grpc_chttp2_is_alpn_version_supported(const char *version, size_t size) { size_t i; diff --git a/src/core/ext/transport/chttp2/client/insecure/channel_create.c b/src/core/ext/transport/chttp2/client/insecure/channel_create.c index 4b1764ad43..372fb7bf4c 100644 --- a/src/core/ext/transport/chttp2/client/insecure/channel_create.c +++ b/src/core/ext/transport/chttp2/client/insecure/channel_create.c @@ -52,6 +52,10 @@ #include "src/core/lib/surface/api_trace.h" #include "src/core/lib/surface/channel.h" +// +// connector +// + typedef struct { grpc_connector base; gpr_refcount refs; @@ -150,42 +154,26 @@ static void connector_connect(grpc_exec_ctx *exec_ctx, grpc_connector *con, c->tcp = NULL; grpc_closure_init(&c->connected, connected, c); grpc_tcp_client_connect(exec_ctx, &c->connected, &c->tcp, - args->interested_parties, args->addr, args->addr_len, - args->deadline); + args->interested_parties, args->addr, args->deadline); } static const grpc_connector_vtable connector_vtable = { connector_ref, connector_unref, connector_shutdown, connector_connect}; -typedef struct { - grpc_client_channel_factory base; - gpr_refcount refs; - grpc_channel_args *merge_args; -} client_channel_factory; +// +// client_channel_factory +// static void client_channel_factory_ref( - grpc_client_channel_factory *cc_factory) { - client_channel_factory *f = (client_channel_factory *)cc_factory; - gpr_ref(&f->refs); -} + grpc_client_channel_factory *cc_factory) {} static void client_channel_factory_unref( - grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory) { - client_channel_factory *f = (client_channel_factory *)cc_factory; - if (gpr_unref(&f->refs)) { - grpc_channel_args_destroy(f->merge_args); - gpr_free(f); - } -} + grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory) {} static grpc_subchannel *client_channel_factory_create_subchannel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory, - grpc_subchannel_args *args) { - client_channel_factory *f = (client_channel_factory *)cc_factory; + const grpc_subchannel_args *args) { connector *c = gpr_malloc(sizeof(*c)); - grpc_channel_args *final_args = - grpc_channel_args_merge(args->args, f->merge_args); - grpc_subchannel *s; memset(c, 0, sizeof(*c)); c->base.vtable = &connector_vtable; gpr_ref_init(&c->refs, 1); @@ -197,23 +185,18 @@ static grpc_subchannel *client_channel_factory_create_subchannel( grpc_http_connect_handshaker_create(proxy_name, args->server_name)); gpr_free(proxy_name); } - args->args = final_args; - s = grpc_subchannel_create(exec_ctx, &c->base, args); + grpc_subchannel *s = grpc_subchannel_create(exec_ctx, &c->base, args); grpc_connector_unref(exec_ctx, &c->base); - grpc_channel_args_destroy(final_args); return s; } static grpc_channel *client_channel_factory_create_channel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory, const char *target, grpc_client_channel_type type, - grpc_channel_args *args) { - client_channel_factory *f = (client_channel_factory *)cc_factory; - grpc_channel_args *final_args = grpc_channel_args_merge(args, f->merge_args); - grpc_channel *channel = grpc_channel_create(exec_ctx, target, final_args, - GRPC_CLIENT_CHANNEL, NULL); - grpc_channel_args_destroy(final_args); - grpc_resolver *resolver = grpc_resolver_create(target); + const grpc_channel_args *args) { + grpc_channel *channel = + grpc_channel_create(exec_ctx, target, args, GRPC_CLIENT_CHANNEL, NULL); + grpc_resolver *resolver = grpc_resolver_create(target, args); if (!resolver) { GRPC_CHANNEL_INTERNAL_UNREF(exec_ctx, channel, "client_channel_factory_create_channel"); @@ -221,7 +204,7 @@ static grpc_channel *client_channel_factory_create_channel( } grpc_client_channel_finish_initialization( - exec_ctx, grpc_channel_get_channel_stack(channel), resolver, &f->base); + exec_ctx, grpc_channel_get_channel_stack(channel), resolver, cc_factory); GRPC_RESOLVER_UNREF(exec_ctx, resolver, "create_channel"); return channel; @@ -232,6 +215,9 @@ static const grpc_client_channel_factory_vtable client_channel_factory_vtable = client_channel_factory_create_subchannel, client_channel_factory_create_channel}; +static grpc_client_channel_factory client_channel_factory = { + &client_channel_factory_vtable}; + /* Create a client channel: Asynchronously: - resolve target - connect to it (trying alternatives as presented) @@ -245,16 +231,12 @@ grpc_channel *grpc_insecure_channel_create(const char *target, (target, args, reserved)); GPR_ASSERT(!reserved); - client_channel_factory *f = gpr_malloc(sizeof(*f)); - memset(f, 0, sizeof(*f)); - f->base.vtable = &client_channel_factory_vtable; - gpr_ref_init(&f->refs, 1); - f->merge_args = grpc_channel_args_copy(args); - + grpc_client_channel_factory *factory = + (grpc_client_channel_factory *)&client_channel_factory; grpc_channel *channel = client_channel_factory_create_channel( - &exec_ctx, &f->base, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, NULL); + &exec_ctx, factory, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, args); - grpc_client_channel_factory_unref(&exec_ctx, &f->base); + grpc_client_channel_factory_unref(&exec_ctx, factory); grpc_exec_ctx_finish(&exec_ctx); return channel != NULL ? channel : grpc_lame_client_channel_create( diff --git a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c index 1e27d88fe6..29095af207 100644 --- a/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c +++ b/src/core/ext/transport/chttp2/client/secure/secure_channel_create.c @@ -54,6 +54,10 @@ #include "src/core/lib/surface/channel.h" #include "src/core/lib/tsi/transport_security_interface.h" +// +// connector +// + typedef struct { grpc_connector base; gpr_refcount refs; @@ -208,18 +212,21 @@ static void connector_connect(grpc_exec_ctx *exec_ctx, grpc_connector *con, GPR_ASSERT(c->connecting_endpoint == NULL); gpr_mu_unlock(&c->mu); grpc_closure_init(&c->connected_closure, connected, c); - grpc_tcp_client_connect( - exec_ctx, &c->connected_closure, &c->newly_connecting_endpoint, - args->interested_parties, args->addr, args->addr_len, args->deadline); + grpc_tcp_client_connect(exec_ctx, &c->connected_closure, + &c->newly_connecting_endpoint, + args->interested_parties, args->addr, args->deadline); } static const grpc_connector_vtable connector_vtable = { connector_ref, connector_unref, connector_shutdown, connector_connect}; +// +// client_channel_factory +// + typedef struct { grpc_client_channel_factory base; gpr_refcount refs; - grpc_channel_args *merge_args; grpc_channel_security_connector *security_connector; } client_channel_factory; @@ -235,19 +242,15 @@ static void client_channel_factory_unref( if (gpr_unref(&f->refs)) { GRPC_SECURITY_CONNECTOR_UNREF(&f->security_connector->base, "client_channel_factory"); - grpc_channel_args_destroy(f->merge_args); gpr_free(f); } } static grpc_subchannel *client_channel_factory_create_subchannel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory, - grpc_subchannel_args *args) { + const grpc_subchannel_args *args) { client_channel_factory *f = (client_channel_factory *)cc_factory; connector *c = gpr_malloc(sizeof(*c)); - grpc_channel_args *final_args = - grpc_channel_args_merge(args->args, f->merge_args); - grpc_subchannel *s; memset(c, 0, sizeof(*c)); c->base.vtable = &connector_vtable; c->security_connector = f->security_connector; @@ -261,25 +264,19 @@ static grpc_subchannel *client_channel_factory_create_subchannel( } gpr_mu_init(&c->mu); gpr_ref_init(&c->refs, 1); - args->args = final_args; - s = grpc_subchannel_create(exec_ctx, &c->base, args); + grpc_subchannel *s = grpc_subchannel_create(exec_ctx, &c->base, args); grpc_connector_unref(exec_ctx, &c->base); - grpc_channel_args_destroy(final_args); return s; } static grpc_channel *client_channel_factory_create_channel( grpc_exec_ctx *exec_ctx, grpc_client_channel_factory *cc_factory, const char *target, grpc_client_channel_type type, - grpc_channel_args *args) { + const grpc_channel_args *args) { client_channel_factory *f = (client_channel_factory *)cc_factory; - - grpc_channel_args *final_args = grpc_channel_args_merge(args, f->merge_args); - grpc_channel *channel = grpc_channel_create(exec_ctx, target, final_args, - GRPC_CLIENT_CHANNEL, NULL); - grpc_channel_args_destroy(final_args); - - grpc_resolver *resolver = grpc_resolver_create(target); + grpc_channel *channel = + grpc_channel_create(exec_ctx, target, args, GRPC_CLIENT_CHANNEL, NULL); + grpc_resolver *resolver = grpc_resolver_create(target, args); if (resolver != NULL) { grpc_client_channel_finish_initialization( exec_ctx, grpc_channel_get_channel_stack(channel), resolver, &f->base); @@ -289,7 +286,6 @@ static grpc_channel *client_channel_factory_create_channel( "client_channel_factory_create_channel"); channel = NULL; } - return channel; } @@ -306,19 +302,13 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds, const char *target, const grpc_channel_args *args, void *reserved) { - grpc_arg connector_arg; - grpc_channel_args *args_copy; - grpc_channel_args *new_args_from_connector; - grpc_channel_security_connector *security_connector; - client_channel_factory *f; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - GRPC_API_TRACE( "grpc_secure_channel_create(creds=%p, target=%s, args=%p, " "reserved=%p)", 4, (creds, target, args, reserved)); GPR_ASSERT(reserved == NULL); - + // Make sure security connector does not already exist in args. if (grpc_find_security_connector_in_args(args) != NULL) { gpr_log(GPR_ERROR, "Cannot set security context in channel args."); grpc_exec_ctx_finish(&exec_ctx); @@ -326,7 +316,9 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds, target, GRPC_STATUS_INTERNAL, "Security connector exists in channel args."); } - + // Create security connector and construct new channel args. + grpc_channel_security_connector *security_connector; + grpc_channel_args *new_args_from_connector; if (grpc_channel_credentials_create_security_connector( creds, target, args, &security_connector, &new_args_from_connector) != GRPC_SECURITY_OK) { @@ -334,35 +326,30 @@ grpc_channel *grpc_secure_channel_create(grpc_channel_credentials *creds, return grpc_lame_client_channel_create( target, GRPC_STATUS_INTERNAL, "Failed to create security connector."); } - - connector_arg = grpc_security_connector_to_arg(&security_connector->base); - args_copy = grpc_channel_args_copy_and_add( + grpc_arg connector_arg = + grpc_security_connector_to_arg(&security_connector->base); + grpc_channel_args *new_args = grpc_channel_args_copy_and_add( new_args_from_connector != NULL ? new_args_from_connector : args, &connector_arg, 1); - - f = gpr_malloc(sizeof(*f)); - memset(f, 0, sizeof(*f)); - f->base.vtable = &client_channel_factory_vtable; - gpr_ref_init(&f->refs, 1); - - f->merge_args = grpc_channel_args_copy(args_copy); - grpc_channel_args_destroy(args_copy); if (new_args_from_connector != NULL) { grpc_channel_args_destroy(new_args_from_connector); } - + // Create client channel factory. + client_channel_factory *f = gpr_malloc(sizeof(*f)); + memset(f, 0, sizeof(*f)); + f->base.vtable = &client_channel_factory_vtable; + gpr_ref_init(&f->refs, 1); GRPC_SECURITY_CONNECTOR_REF(&security_connector->base, "grpc_secure_channel_create"); f->security_connector = security_connector; - + // Create channel. grpc_channel *channel = client_channel_factory_create_channel( - &exec_ctx, &f->base, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, NULL); - + &exec_ctx, &f->base, target, GRPC_CLIENT_CHANNEL_TYPE_REGULAR, new_args); + // Clean up. GRPC_SECURITY_CONNECTOR_UNREF(&f->security_connector->base, "client_channel_factory_create_channel"); - + grpc_channel_args_destroy(new_args); grpc_client_channel_factory_unref(&exec_ctx, &f->base); grpc_exec_ctx_finish(&exec_ctx); - return channel; /* may be NULL */ } diff --git a/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c index f0e07429fa..e4967c2f08 100644 --- a/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c +++ b/src/core/ext/transport/chttp2/server/insecure/server_chttp2.c @@ -148,9 +148,7 @@ int grpc_server_add_insecure_http2_port(grpc_server *server, const char *addr) { const size_t naddrs = resolved->naddrs; errors = gpr_malloc(sizeof(*errors) * naddrs); for (i = 0; i < naddrs; i++) { - errors[i] = grpc_tcp_server_add_port( - tcp, (struct sockaddr *)&resolved->addrs[i].addr, - resolved->addrs[i].len, &port_temp); + errors[i] = grpc_tcp_server_add_port(tcp, &resolved->addrs[i], &port_temp); if (errors[i] == GRPC_ERROR_NONE) { if (port_num == -1) { port_num = port_temp; diff --git a/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c index 563271f4f8..0fab888541 100644 --- a/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c +++ b/src/core/ext/transport/chttp2/server/secure/server_secure_chttp2.c @@ -286,9 +286,7 @@ int grpc_server_add_secure_http2_port(grpc_server *server, const char *addr, errors = gpr_malloc(sizeof(*errors) * resolved->naddrs); for (i = 0; i < resolved->naddrs; i++) { - errors[i] = grpc_tcp_server_add_port( - tcp, (struct sockaddr *)&resolved->addrs[i].addr, - resolved->addrs[i].len, &port_temp); + errors[i] = grpc_tcp_server_add_port(tcp, &resolved->addrs[i], &port_temp); if (errors[i] == GRPC_ERROR_NONE) { if (port_num == -1) { port_num = port_temp; diff --git a/src/core/ext/transport/chttp2/transport/chttp2_transport.c b/src/core/ext/transport/chttp2/transport/chttp2_transport.c index 97780d90f2..ecf3aea870 100644 --- a/src/core/ext/transport/chttp2/transport/chttp2_transport.c +++ b/src/core/ext/transport/chttp2/transport/chttp2_transport.c @@ -853,53 +853,51 @@ static bool contains_non_ok_status(grpc_metadata_batch *batch) { static void add_fetched_slice_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, - grpc_chttp2_stream *s); + grpc_chttp2_stream *s) { + s->fetched_send_message_length += + (uint32_t)GPR_SLICE_LENGTH(s->fetching_slice); + gpr_slice_buffer_add(&s->flow_controlled_buffer, s->fetching_slice); + if (s->id != 0) { + grpc_chttp2_become_writable(exec_ctx, t, s, true, "op.send_message"); + } +} static void continue_fetching_send_locked(grpc_exec_ctx *exec_ctx, grpc_chttp2_transport *t, grpc_chttp2_stream *s) { - if (s->fetching_send_message == NULL) { - /* Stream was cancelled before message fetch completed */ - abort(); /* TODO(ctiller): what cleanup here? */ - return; - } - if (s->fetched_send_message_length == s->fetching_send_message->length) { - int64_t notify_offset = s->next_message_end_offset; - if (notify_offset <= s->flow_controlled_bytes_written) { - grpc_chttp2_complete_closure_step( - exec_ctx, t, s, &s->fetching_send_message_finished, GRPC_ERROR_NONE, - "fetching_send_message_finished"); - } else { - grpc_chttp2_write_cb *cb = t->write_cb_pool; - if (cb == NULL) { - cb = gpr_malloc(sizeof(*cb)); + for (;;) { + if (s->fetching_send_message == NULL) { + /* Stream was cancelled before message fetch completed */ + abort(); /* TODO(ctiller): what cleanup here? */ + return; /* early out */ + } + if (s->fetched_send_message_length == s->fetching_send_message->length) { + int64_t notify_offset = s->next_message_end_offset; + if (notify_offset <= s->flow_controlled_bytes_written) { + grpc_chttp2_complete_closure_step( + exec_ctx, t, s, &s->fetching_send_message_finished, GRPC_ERROR_NONE, + "fetching_send_message_finished"); } else { - t->write_cb_pool = cb->next; + grpc_chttp2_write_cb *cb = t->write_cb_pool; + if (cb == NULL) { + cb = gpr_malloc(sizeof(*cb)); + } else { + t->write_cb_pool = cb->next; + } + cb->call_at_byte = notify_offset; + cb->closure = s->fetching_send_message_finished; + s->fetching_send_message_finished = NULL; + cb->next = s->on_write_finished_cbs; + s->on_write_finished_cbs = cb; } - cb->call_at_byte = notify_offset; - cb->closure = s->fetching_send_message_finished; - s->fetching_send_message_finished = NULL; - cb->next = s->on_write_finished_cbs; - s->on_write_finished_cbs = cb; + s->fetching_send_message = NULL; + return; /* early out */ + } else if (grpc_byte_stream_next(exec_ctx, s->fetching_send_message, + &s->fetching_slice, UINT32_MAX, + &s->complete_fetch)) { + add_fetched_slice_locked(exec_ctx, t, s); } - s->fetching_send_message = NULL; - } else if (grpc_byte_stream_next(exec_ctx, s->fetching_send_message, - &s->fetching_slice, UINT32_MAX, - &s->complete_fetch)) { - add_fetched_slice_locked(exec_ctx, t, s); - } -} - -static void add_fetched_slice_locked(grpc_exec_ctx *exec_ctx, - grpc_chttp2_transport *t, - grpc_chttp2_stream *s) { - s->fetched_send_message_length += - (uint32_t)GPR_SLICE_LENGTH(s->fetching_slice); - gpr_slice_buffer_add(&s->flow_controlled_buffer, s->fetching_slice); - if (s->id != 0) { - grpc_chttp2_become_writable(exec_ctx, t, s, true, "op.send_message"); } - continue_fetching_send_locked(exec_ctx, t, s); } static void complete_fetch_locked(grpc_exec_ctx *exec_ctx, void *gs, @@ -908,6 +906,7 @@ static void complete_fetch_locked(grpc_exec_ctx *exec_ctx, void *gs, grpc_chttp2_transport *t = s->t; if (error == GRPC_ERROR_NONE) { add_fetched_slice_locked(exec_ctx, t, s); + continue_fetching_send_locked(exec_ctx, t, s); } else { /* TODO(ctiller): what to do here */ abort(); diff --git a/src/core/lib/channel/channel_args.c b/src/core/lib/channel/channel_args.c index 2957d2c818..cfc072c0b5 100644 --- a/src/core/lib/channel/channel_args.c +++ b/src/core/lib/channel/channel_args.c @@ -66,22 +66,59 @@ static grpc_arg copy_arg(const grpc_arg *src) { grpc_channel_args *grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add) { + return grpc_channel_args_copy_and_add_and_remove(src, NULL, 0, to_add, + num_to_add); +} + +grpc_channel_args *grpc_channel_args_copy_and_remove( + const grpc_channel_args *src, const char **to_remove, + size_t num_to_remove) { + return grpc_channel_args_copy_and_add_and_remove(src, to_remove, + num_to_remove, NULL, 0); +} + +static bool should_remove_arg(const grpc_arg *arg, const char **to_remove, + size_t num_to_remove) { + for (size_t i = 0; i < num_to_remove; ++i) { + if (strcmp(arg->key, to_remove[i]) == 0) return true; + } + return false; +} + +grpc_channel_args *grpc_channel_args_copy_and_add_and_remove( + const grpc_channel_args *src, const char **to_remove, size_t num_to_remove, + const grpc_arg *to_add, size_t num_to_add) { + // Figure out how many args we'll be copying. + size_t num_args_to_copy = 0; + if (src != NULL) { + for (size_t i = 0; i < src->num_args; ++i) { + if (!should_remove_arg(&src->args[i], to_remove, num_to_remove)) { + ++num_args_to_copy; + } + } + } + // Create result. grpc_channel_args *dst = gpr_malloc(sizeof(grpc_channel_args)); - size_t i; - size_t src_num_args = (src == NULL) ? 0 : src->num_args; - if (!src && !to_add) { - dst->num_args = 0; + dst->num_args = num_args_to_copy + num_to_add; + if (dst->num_args == 0) { dst->args = NULL; return dst; } - dst->num_args = src_num_args + num_to_add; dst->args = gpr_malloc(sizeof(grpc_arg) * dst->num_args); - for (i = 0; i < src_num_args; i++) { - dst->args[i] = copy_arg(&src->args[i]); + // Copy args from src that are not being removed. + size_t dst_idx = 0; + if (src != NULL) { + for (size_t i = 0; i < src->num_args; ++i) { + if (!should_remove_arg(&src->args[i], to_remove, num_to_remove)) { + dst->args[dst_idx++] = copy_arg(&src->args[i]); + } + } } - for (i = 0; i < num_to_add; i++) { - dst->args[i + src_num_args] = copy_arg(&to_add[i]); + // Add args from to_add. + for (size_t i = 0; i < num_to_add; ++i) { + dst->args[dst_idx++] = copy_arg(&to_add[i]); } + GPR_ASSERT(dst_idx == dst->num_args); return dst; } diff --git a/src/core/lib/channel/channel_args.h b/src/core/lib/channel/channel_args.h index a80340c0fa..1e05303471 100644 --- a/src/core/lib/channel/channel_args.h +++ b/src/core/lib/channel/channel_args.h @@ -51,6 +51,17 @@ grpc_channel_args *grpc_channel_args_copy_and_add(const grpc_channel_args *src, const grpc_arg *to_add, size_t num_to_add); +/** Copies the arguments in \a src except for those whose keys are in + \a to_remove. */ +grpc_channel_args *grpc_channel_args_copy_and_remove( + const grpc_channel_args *src, const char **to_remove, size_t num_to_remove); + +/** Copies the arguments from \a src except for those whose keys are in + \a to_remove and appends the arguments in \a to_add. */ +grpc_channel_args *grpc_channel_args_copy_and_add_and_remove( + const grpc_channel_args *src, const char **to_remove, size_t num_to_remove, + const grpc_arg *to_add, size_t num_to_add); + /** Concatenate args from \a a and \a b into a new instance */ grpc_channel_args *grpc_channel_args_merge(const grpc_channel_args *a, const grpc_channel_args *b); diff --git a/src/core/lib/channel/message_size_filter.c b/src/core/lib/channel/message_size_filter.c index b8b2546035..7dc5ae0df1 100644 --- a/src/core/lib/channel/message_size_filter.c +++ b/src/core/lib/channel/message_size_filter.c @@ -38,8 +38,8 @@ #include <grpc/support/log.h> #include <grpc/support/string_util.h> -#include "src/core/ext/client_channel/method_config.h" #include "src/core/lib/channel/channel_args.h" +#include "src/core/lib/transport/method_config.h" #define DEFAULT_MAX_SEND_MESSAGE_LENGTH -1 // Unlimited. // The protobuf library will (by default) start warning at 100 megs. diff --git a/src/core/lib/http/httpcli.c b/src/core/lib/http/httpcli.c index 7f3c2d120d..55de1b5990 100644 --- a/src/core/lib/http/httpcli.c +++ b/src/core/lib/http/httpcli.c @@ -32,7 +32,6 @@ */ #include "src/core/lib/http/httpcli.h" -#include "src/core/lib/iomgr/sockaddr.h" #include <string.h> @@ -126,7 +125,7 @@ static void append_error(internal_request *req, grpc_error *error) { req->overall_error = GRPC_ERROR_CREATE("Failed HTTP/1 client request"); } grpc_resolved_address *addr = &req->addresses->addrs[req->next_address - 1]; - char *addr_text = grpc_sockaddr_to_uri((struct sockaddr *)addr->addr); + char *addr_text = grpc_sockaddr_to_uri(addr); req->overall_error = grpc_error_add_child( req->overall_error, grpc_error_set_str(error, GRPC_ERROR_STR_TARGET_ADDRESS, addr_text)); @@ -224,9 +223,8 @@ static void next_address(grpc_exec_ctx *exec_ctx, internal_request *req, } addr = &req->addresses->addrs[req->next_address++]; grpc_closure_init(&req->connected, on_connected, req); - grpc_tcp_client_connect( - exec_ctx, &req->connected, &req->ep, req->context->pollset_set, - (struct sockaddr *)&addr->addr, addr->len, req->deadline); + grpc_tcp_client_connect(exec_ctx, &req->connected, &req->ep, + req->context->pollset_set, addr, req->deadline); } static void on_resolved(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { diff --git a/src/core/lib/iomgr/endpoint_pair_posix.c b/src/core/lib/iomgr/endpoint_pair_posix.c index e295fb4867..ec2cd782b1 100644 --- a/src/core/lib/iomgr/endpoint_pair_posix.c +++ b/src/core/lib/iomgr/endpoint_pair_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/endpoint_pair.h" #include "src/core/lib/iomgr/socket_utils_posix.h" diff --git a/src/core/lib/security/credentials/google_default/credentials_windows.c b/src/core/lib/iomgr/endpoint_pair_uv.c index 208b8fd9ad..7941e20388 100644 --- a/src/core/lib/security/credentials/google_default/credentials_windows.c +++ b/src/core/lib/iomgr/endpoint_pair_uv.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,31 +31,23 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINDOWS +#ifdef GRPC_UV -#include "src/core/lib/security/credentials/google_default/google_default_credentials.h" +#include <stdlib.h> -#include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/string_util.h> -#include "src/core/lib/support/env.h" -#include "src/core/lib/support/string.h" +#include "src/core/lib/iomgr/endpoint_pair.h" -char *grpc_get_well_known_google_credentials_file_path_impl(void) { - char *result = NULL; - char *appdata_path = gpr_getenv("APPDATA"); - if (appdata_path == NULL) { - gpr_log(GPR_ERROR, "Could not get APPDATA environment variable."); - return NULL; - } - gpr_asprintf(&result, "%s/%s/%s", appdata_path, - GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY, - GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE); - gpr_free(appdata_path); - return result; +grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char *name, + size_t read_slice_size) { + grpc_endpoint_pair endpoint_pair; + // TODO(mlumish): implement this properly under libuv + GPR_ASSERT(false && + "grpc_iomgr_create_endpoint_pair is not suppoted with libuv"); + return endpoint_pair; } -#endif /* GPR_WINDOWS */ +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/endpoint_pair_windows.c b/src/core/lib/iomgr/endpoint_pair_windows.c index 582704e267..5c78c95492 100644 --- a/src/core/lib/iomgr/endpoint_pair_windows.c +++ b/src/core/lib/iomgr/endpoint_pair_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include "src/core/lib/iomgr/endpoint_pair.h" #include "src/core/lib/iomgr/sockaddr_utils.h" diff --git a/src/core/lib/iomgr/ev_epoll_linux.c b/src/core/lib/iomgr/ev_epoll_linux.c index e5909d9380..db51ec4939 100644 --- a/src/core/lib/iomgr/ev_epoll_linux.c +++ b/src/core/lib/iomgr/ev_epoll_linux.c @@ -32,10 +32,10 @@ */ #include <grpc/grpc_posix.h> -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" /* This polling engine is only relevant on linux kernels supporting epoll() */ -#ifdef GPR_LINUX_EPOLL +#ifdef GRPC_LINUX_EPOLL #include "src/core/lib/iomgr/ev_epoll_linux.h" @@ -1711,6 +1711,12 @@ retry: "pollset_add_fd: Raced creating new polling island. pi_new: %p " "(fd: %d, pollset: %p)", (void *)pi_new, fd->fd, (void *)pollset); + + /* No need to lock 'pi_new' here since this is a new polling island and + * no one has a reference to it yet */ + polling_island_remove_all_fds_locked(pi_new, true, &error); + + /* Ref and unref so that the polling island gets deleted during unref */ PI_ADD_REF(pi_new, "dance_of_destruction"); PI_UNREF(exec_ctx, pi_new, "dance_of_destruction"); goto retry; @@ -2049,13 +2055,13 @@ const grpc_event_engine_vtable *grpc_init_epoll_linux(void) { return &vtable; } -#else /* defined(GPR_LINUX_EPOLL) */ -#if defined(GPR_POSIX_SOCKET) +#else /* defined(GRPC_LINUX_EPOLL) */ +#if defined(GRPC_POSIX_SOCKET) #include "src/core/lib/iomgr/ev_posix.h" -/* If GPR_LINUX_EPOLL is not defined, it means epoll is not available. Return +/* If GRPC_LINUX_EPOLL is not defined, it means epoll is not available. Return * NULL */ const grpc_event_engine_vtable *grpc_init_epoll_linux(void) { return NULL; } -#endif /* defined(GPR_POSIX_SOCKET) */ +#endif /* defined(GRPC_POSIX_SOCKET) */ void grpc_use_signal(int signum) {} -#endif /* !defined(GPR_LINUX_EPOLL) */ +#endif /* !defined(GRPC_LINUX_EPOLL) */ diff --git a/src/core/lib/iomgr/ev_epoll_linux.h b/src/core/lib/iomgr/ev_epoll_linux.h index 7a494aba19..8fc3ff59a3 100644 --- a/src/core/lib/iomgr/ev_epoll_linux.h +++ b/src/core/lib/iomgr/ev_epoll_linux.h @@ -35,13 +35,14 @@ #define GRPC_CORE_LIB_IOMGR_EV_EPOLL_LINUX_H #include "src/core/lib/iomgr/ev_posix.h" +#include "src/core/lib/iomgr/port.h" const grpc_event_engine_vtable *grpc_init_epoll_linux(void); -#ifdef GPR_LINUX_EPOLL +#ifdef GRPC_LINUX_EPOLL void *grpc_fd_get_polling_island(grpc_fd *fd); void *grpc_pollset_get_polling_island(grpc_pollset *ps); bool grpc_are_polling_islands_equal(void *p, void *q); -#endif /* defined(GPR_LINUX_EPOLL) */ +#endif /* defined(GRPC_LINUX_EPOLL) */ #endif /* GRPC_CORE_LIB_IOMGR_EV_EPOLL_LINUX_H */ diff --git a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c index 1829440a6e..bf51404203 100644 --- a/src/core/lib/iomgr/ev_poll_and_epoll_posix.c +++ b/src/core/lib/iomgr/ev_poll_and_epoll_posix.c @@ -42,9 +42,9 @@ * - ev_epoll_posix.{h,c} */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/ev_poll_and_epoll_posix.h" @@ -1338,7 +1338,7 @@ static void become_basic_pollset(grpc_pollset *pollset, grpc_fd *fd_or_null) { * pollset_multipoller_with_poll_posix.c */ -#ifndef GPR_LINUX_MULTIPOLL_WITH_EPOLL +#ifndef GRPC_LINUX_MULTIPOLL_WITH_EPOLL typedef struct { /* all polled fds */ @@ -1520,13 +1520,13 @@ static void poll_become_multipoller(grpc_exec_ctx *exec_ctx, } } -#endif /* !GPR_LINUX_MULTIPOLL_WITH_EPOLL */ +#endif /* !GRPC_LINUX_MULTIPOLL_WITH_EPOLL */ /******************************************************************************* * pollset_multipoller_with_epoll_posix.c */ -#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL +#ifdef GRPC_LINUX_MULTIPOLL_WITH_EPOLL #include <errno.h> #include <poll.h> @@ -1839,11 +1839,11 @@ static void epoll_become_multipoller(grpc_exec_ctx *exec_ctx, } } -#else /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */ +#else /* GRPC_LINUX_MULTIPOLL_WITH_EPOLL */ static void remove_fd_from_all_epoll_sets(int fd) {} -#endif /* GPR_LINUX_MULTIPOLL_WITH_EPOLL */ +#endif /* GRPC_LINUX_MULTIPOLL_WITH_EPOLL */ /******************************************************************************* * pollset_set_posix.c @@ -2063,7 +2063,7 @@ static const grpc_event_engine_vtable vtable = { }; const grpc_event_engine_vtable *grpc_init_poll_and_epoll_posix(void) { -#ifdef GPR_LINUX_MULTIPOLL_WITH_EPOLL +#ifdef GRPC_LINUX_MULTIPOLL_WITH_EPOLL platform_become_multipoller = epoll_become_multipoller; #else platform_become_multipoller = poll_become_multipoller; diff --git a/src/core/lib/iomgr/ev_poll_posix.c b/src/core/lib/iomgr/ev_poll_posix.c index 27e966c18c..e1d620cfff 100644 --- a/src/core/lib/iomgr/ev_poll_posix.c +++ b/src/core/lib/iomgr/ev_poll_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/ev_poll_posix.h" diff --git a/src/core/lib/iomgr/ev_posix.c b/src/core/lib/iomgr/ev_posix.c index 9857b0bce9..ef36ba89b2 100644 --- a/src/core/lib/iomgr/ev_posix.c +++ b/src/core/lib/iomgr/ev_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/ev_posix.h" @@ -282,4 +282,4 @@ void grpc_workqueue_enqueue(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue, g_event_engine->workqueue_enqueue(exec_ctx, workqueue, closure, error); } -#endif // GPR_POSIX_SOCKET +#endif // GRPC_POSIX_SOCKET diff --git a/src/core/lib/iomgr/iocp_windows.c b/src/core/lib/iomgr/iocp_windows.c index 2532e52e48..60ebe43676 100644 --- a/src/core/lib/iomgr/iocp_windows.c +++ b/src/core/lib/iomgr/iocp_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include <winsock2.h> @@ -166,4 +166,4 @@ void grpc_iocp_add_socket(grpc_winsocket *socket) { GPR_ASSERT(ret == g_iocp); } -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/iomgr.h b/src/core/lib/iomgr/iomgr.h index 6c82de78ac..c1cfaf302e 100644 --- a/src/core/lib/iomgr/iomgr.h +++ b/src/core/lib/iomgr/iomgr.h @@ -34,6 +34,8 @@ #ifndef GRPC_CORE_LIB_IOMGR_IOMGR_H #define GRPC_CORE_LIB_IOMGR_IOMGR_H +#include "src/core/lib/iomgr/port.h" + /** Initializes the iomgr. */ void grpc_iomgr_init(void); diff --git a/src/core/lib/iomgr/iomgr_posix.c b/src/core/lib/iomgr/iomgr_posix.c index cede97f4c6..f5ee0c9ee4 100644 --- a/src/core/lib/iomgr/iomgr_posix.c +++ b/src/core/lib/iomgr/iomgr_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/debug/trace.h" #include "src/core/lib/iomgr/ev_posix.h" diff --git a/src/core/lib/iomgr/iomgr_uv.c b/src/core/lib/iomgr/iomgr_uv.c new file mode 100644 index 0000000000..96516ff167 --- /dev/null +++ b/src/core/lib/iomgr/iomgr_uv.c @@ -0,0 +1,49 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include "src/core/lib/debug/trace.h" +#include "src/core/lib/iomgr/pollset_uv.h" +#include "src/core/lib/iomgr/tcp_uv.h" + +void grpc_iomgr_platform_init(void) { + grpc_pollset_global_init(); + grpc_register_tracer("tcp", &grpc_tcp_trace); +} +void grpc_iomgr_platform_flush(void) {} +void grpc_iomgr_platform_shutdown(void) { grpc_pollset_global_shutdown(); } + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/iomgr_windows.c b/src/core/lib/iomgr/iomgr_windows.c index 7653f6e635..b659264ede 100644 --- a/src/core/lib/iomgr/iomgr_windows.c +++ b/src/core/lib/iomgr/iomgr_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include "src/core/lib/iomgr/sockaddr_windows.h" diff --git a/src/core/lib/iomgr/pollset_set_uv.c b/src/core/lib/iomgr/pollset_set_uv.c new file mode 100644 index 0000000000..e5ef8b29e0 --- /dev/null +++ b/src/core/lib/iomgr/pollset_set_uv.c @@ -0,0 +1,62 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include "src/core/lib/iomgr/pollset_set.h" + +grpc_pollset_set* grpc_pollset_set_create(void) { + return (grpc_pollset_set*)((intptr_t)0xdeafbeef); +} + +void grpc_pollset_set_destroy(grpc_pollset_set* pollset_set) {} + +void grpc_pollset_set_add_pollset(grpc_exec_ctx* exec_ctx, + grpc_pollset_set* pollset_set, + grpc_pollset* pollset) {} + +void grpc_pollset_set_del_pollset(grpc_exec_ctx* exec_ctx, + grpc_pollset_set* pollset_set, + grpc_pollset* pollset) {} + +void grpc_pollset_set_add_pollset_set(grpc_exec_ctx* exec_ctx, + grpc_pollset_set* bag, + grpc_pollset_set* item) {} + +void grpc_pollset_set_del_pollset_set(grpc_exec_ctx* exec_ctx, + grpc_pollset_set* bag, + grpc_pollset_set* item) {} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/pollset_set_windows.c b/src/core/lib/iomgr/pollset_set_windows.c index a35a9766fc..645650db9b 100644 --- a/src/core/lib/iomgr/pollset_set_windows.c +++ b/src/core/lib/iomgr/pollset_set_windows.c @@ -31,10 +31,10 @@ * */ -#include <grpc/support/port_platform.h> #include <stdint.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include "src/core/lib/iomgr/pollset_set_windows.h" @@ -60,4 +60,4 @@ void grpc_pollset_set_del_pollset_set(grpc_exec_ctx* exec_ctx, grpc_pollset_set* bag, grpc_pollset_set* item) {} -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/pollset_uv.c b/src/core/lib/iomgr/pollset_uv.c new file mode 100644 index 0000000000..3a74b842b6 --- /dev/null +++ b/src/core/lib/iomgr/pollset_uv.c @@ -0,0 +1,142 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include <uv.h> + +#include <string.h> + +#include <grpc/support/log.h> +#include <grpc/support/sync.h> + +#include "src/core/lib/iomgr/pollset.h" +#include "src/core/lib/iomgr/pollset_uv.h" + +struct grpc_pollset { + uv_timer_t timer; + int shutting_down; +}; + +/* Indicates that grpc_pollset_work should run an iteration of the UV loop + before running callbacks. This defaults to 1, and should be disabled if + grpc_pollset_work will be called within the callstack of uv_run */ +int grpc_pollset_work_run_loop; + +gpr_mu grpc_polling_mu; + +size_t grpc_pollset_size() { return sizeof(grpc_pollset); } + +void grpc_pollset_global_init(void) { + gpr_mu_init(&grpc_polling_mu); + grpc_pollset_work_run_loop = 1; +} + +void grpc_pollset_global_shutdown(void) { gpr_mu_destroy(&grpc_polling_mu); } + +void grpc_pollset_init(grpc_pollset *pollset, gpr_mu **mu) { + *mu = &grpc_polling_mu; + memset(pollset, 0, sizeof(grpc_pollset)); + uv_timer_init(uv_default_loop(), &pollset->timer); + pollset->shutting_down = 0; +} + +static void timer_close_cb(uv_handle_t *handle) { handle->data = (void *)1; } + +void grpc_pollset_shutdown(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, + grpc_closure *closure) { + GPR_ASSERT(!pollset->shutting_down); + pollset->shutting_down = 1; + if (grpc_pollset_work_run_loop) { + // Drain any pending UV callbacks without blocking + uv_run(uv_default_loop(), UV_RUN_NOWAIT); + } + grpc_exec_ctx_sched(exec_ctx, closure, GRPC_ERROR_NONE, NULL); +} + +void grpc_pollset_destroy(grpc_pollset *pollset) { + uv_close((uv_handle_t *)&pollset->timer, timer_close_cb); + // timer.data is a boolean indicating that the timer has finished closing + pollset->timer.data = (void *)0; + if (grpc_pollset_work_run_loop) { + while (!pollset->timer.data) { + uv_run(uv_default_loop(), UV_RUN_NOWAIT); + } + } +} + +void grpc_pollset_reset(grpc_pollset *pollset) { + GPR_ASSERT(pollset->shutting_down); + pollset->shutting_down = 0; +} + +static void timer_run_cb(uv_timer_t *timer) {} + +grpc_error *grpc_pollset_work(grpc_exec_ctx *exec_ctx, grpc_pollset *pollset, + grpc_pollset_worker **worker_hdl, + gpr_timespec now, gpr_timespec deadline) { + uint64_t timeout; + gpr_mu_unlock(&grpc_polling_mu); + if (grpc_pollset_work_run_loop) { + if (gpr_time_cmp(deadline, now) >= 0) { + timeout = (uint64_t)gpr_time_to_millis(gpr_time_sub(deadline, now)); + } else { + timeout = 0; + } + /* We special-case timeout=0 so that we don't bother with the timer when + the loop won't block anyway */ + if (timeout > 0) { + uv_timer_start(&pollset->timer, timer_run_cb, timeout, 0); + /* Run until there is some I/O activity or the timer triggers. It doesn't + matter which happens */ + uv_run(uv_default_loop(), UV_RUN_ONCE); + uv_timer_stop(&pollset->timer); + } else { + uv_run(uv_default_loop(), UV_RUN_NOWAIT); + } + } + if (!grpc_closure_list_empty(exec_ctx->closure_list)) { + grpc_exec_ctx_flush(exec_ctx); + } + gpr_mu_lock(&grpc_polling_mu); + return GRPC_ERROR_NONE; +} + +grpc_error *grpc_pollset_kick(grpc_pollset *pollset, + grpc_pollset_worker *specific_worker) { + return GRPC_ERROR_NONE; +} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/pollset_uv.h b/src/core/lib/iomgr/pollset_uv.h new file mode 100644 index 0000000000..0715eb4295 --- /dev/null +++ b/src/core/lib/iomgr/pollset_uv.h @@ -0,0 +1,42 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_POLLSET_UV_H +#define GRPC_CORE_LIB_IOMGR_POLLSET_UV_H + +extern int grpc_pollset_work_run_loop; + +void grpc_pollset_global_init(void); +void grpc_pollset_global_shutdown(void); + +#endif /* GRPC_CORE_LIB_IOMGR_POLLSET_UV_H */ diff --git a/src/core/lib/iomgr/pollset_windows.c b/src/core/lib/iomgr/pollset_windows.c index 626dd784b3..5540303e49 100644 --- a/src/core/lib/iomgr/pollset_windows.c +++ b/src/core/lib/iomgr/pollset_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include <grpc/support/log.h> #include <grpc/support/thd.h> @@ -241,4 +241,4 @@ grpc_error *grpc_pollset_kick(grpc_pollset *p, void grpc_kick_poller(void) { grpc_iocp_kick(); } -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/port.h b/src/core/lib/iomgr/port.h new file mode 100644 index 0000000000..c0bb3b5a23 --- /dev/null +++ b/src/core/lib/iomgr/port.h @@ -0,0 +1,131 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <grpc/support/port_platform.h> + +#ifndef GRPC_CORE_LIB_IOMGR_PORT_H +#define GRPC_CORE_LIB_IOMGR_PORT_H + +#if defined(GRPC_UV) +// Do nothing +#elif defined(GPR_MANYLINUX1) +#define GRPC_HAVE_IPV6_RECVPKTINFO 1 +#define GRPC_HAVE_IP_PKTINFO 1 +#define GRPC_HAVE_MSG_NOSIGNAL 1 +#define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_SOCKETUTILS 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#elif defined(GPR_WINDOWS) +#define GRPC_TIMER_USE_GENERIC 1 +#define GRPC_WINSOCK_SOCKET 1 +#define GRPC_WINDOWS_SOCKETUTILS 1 +#elif defined(GPR_ANDROID) +#define GRPC_HAVE_IPV6_RECVPKTINFO 1 +#define GRPC_HAVE_IP_PKTINFO 1 +#define GRPC_HAVE_MSG_NOSIGNAL 1 +#define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_LINUX_EVENTFD 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_SOCKETUTILS 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#elif defined(GPR_LINUX) +#define GRPC_HAVE_IPV6_RECVPKTINFO 1 +#define GRPC_HAVE_IP_PKTINFO 1 +#define GRPC_HAVE_MSG_NOSIGNAL 1 +#define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_LINUX_MULTIPOLL_WITH_EPOLL 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#ifdef __GLIBC_PREREQ +#if __GLIBC_PREREQ(2, 9) +#define GRPC_LINUX_EPOLL 1 +#define GRPC_LINUX_EVENTFD 1 +#endif +#if __GLIBC_PREREQ(2, 10) +#define GRPC_LINUX_SOCKETUTILS 1 +#endif +#endif +#ifndef GRPC_LINUX_EVENTFD +#define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 +#endif +#ifndef GRPC_LINUX_SOCKETUTILS +#define GRPC_POSIX_SOCKETUTILS +#endif +#elif defined(GPR_APPLE) +#define GRPC_HAVE_IP_PKTINFO 1 +#define GRPC_HAVE_SO_NOSIGPIPE 1 +#define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_MSG_IOVLEN_TYPE int +#define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_SOCKETUTILS 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#elif defined(GPR_FREEBSD) +#define GRPC_HAVE_IPV6_RECVPKTINFO 1 +#define GRPC_HAVE_IP_PKTINFO 1 +#define GRPC_HAVE_SO_NOSIGPIPE 1 +#define GRPC_HAVE_UNIX_SOCKET 1 +#define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_SOCKETUTILS 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#elif defined(GPR_NACL) +#define GRPC_POSIX_NO_SPECIAL_WAKEUP_FD 1 +#define GRPC_POSIX_SOCKET 1 +#define GRPC_POSIX_SOCKETADDR 1 +#define GRPC_POSIX_SOCKETUTILS 1 +#define GRPC_POSIX_WAKEUP_FD 1 +#define GRPC_TIMER_USE_GENERIC 1 +#elif !defined(GPR_NO_AUTODETECT_PLATFORM) +#error "Platform not recognized" +#endif + +#if defined(GRPC_POSIX_SOCKET) + defined(GRPC_WINSOCK_SOCKET) + \ + defined(GRPC_CUSTOM_SOCKET) + defined(GRPC_UV) != \ + 1 +#error Must define exactly one of GRPC_POSIX_SOCKET, GRPC_WINSOCK_SOCKET, GPR_CUSTOM_SOCKET +#endif + +#endif /* GRPC_CORE_LIB_IOMGR_PORT_H */ diff --git a/src/core/lib/iomgr/resolve_address.h b/src/core/lib/iomgr/resolve_address.h index ddbe375755..275924448a 100644 --- a/src/core/lib/iomgr/resolve_address.h +++ b/src/core/lib/iomgr/resolve_address.h @@ -36,7 +36,6 @@ #include <stddef.h> #include "src/core/lib/iomgr/exec_ctx.h" -#include "src/core/lib/iomgr/iomgr.h" #define GRPC_MAX_SOCKADDR_SIZE 128 diff --git a/src/core/lib/iomgr/resolve_address_posix.c b/src/core/lib/iomgr/resolve_address_posix.c index 4e9f978584..de791b2b67 100644 --- a/src/core/lib/iomgr/resolve_address_posix.c +++ b/src/core/lib/iomgr/resolve_address_posix.c @@ -31,12 +31,13 @@ * */ -#include <grpc/support/port_platform.h> -#ifdef GPR_POSIX_SOCKET +#include "src/core/lib/iomgr/port.h" +#ifdef GRPC_POSIX_SOCKET -#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" + #include <string.h> #include <sys/types.h> @@ -49,7 +50,6 @@ #include <grpc/support/useful.h> #include "src/core/lib/iomgr/executor.h" #include "src/core/lib/iomgr/iomgr_internal.h" -#include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" #include "src/core/lib/support/block_annotate.h" #include "src/core/lib/support/string.h" diff --git a/src/core/lib/iomgr/resolve_address_uv.c b/src/core/lib/iomgr/resolve_address_uv.c new file mode 100644 index 0000000000..b8295acfa1 --- /dev/null +++ b/src/core/lib/iomgr/resolve_address_uv.c @@ -0,0 +1,231 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" +#ifdef GRPC_UV + +#include <uv.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/host_port.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> + +#include "src/core/lib/iomgr/closure.h" +#include "src/core/lib/iomgr/error.h" +#include "src/core/lib/iomgr/exec_ctx.h" +#include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/sockaddr_utils.h" + +#include <string.h> + +typedef struct request { + grpc_closure *on_done; + grpc_resolved_addresses **addresses; + struct addrinfo *hints; +} request; + +static grpc_error *handle_addrinfo_result(int status, struct addrinfo *result, + grpc_resolved_addresses **addresses) { + struct addrinfo *resp; + size_t i; + if (status != 0) { + grpc_error *error; + *addresses = NULL; + error = GRPC_ERROR_CREATE("getaddrinfo failed"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + return error; + } + (*addresses) = gpr_malloc(sizeof(grpc_resolved_addresses)); + (*addresses)->naddrs = 0; + for (resp = result; resp != NULL; resp = resp->ai_next) { + (*addresses)->naddrs++; + } + (*addresses)->addrs = + gpr_malloc(sizeof(grpc_resolved_address) * (*addresses)->naddrs); + i = 0; + for (resp = result; resp != NULL; resp = resp->ai_next) { + memcpy(&(*addresses)->addrs[i].addr, resp->ai_addr, resp->ai_addrlen); + (*addresses)->addrs[i].len = resp->ai_addrlen; + i++; + } + + { + for (i = 0; i < (*addresses)->naddrs; i++) { + char *buf; + grpc_sockaddr_to_string(&buf, &(*addresses)->addrs[i], 0); + gpr_free(buf); + } + } + return GRPC_ERROR_NONE; +} + +static void getaddrinfo_callback(uv_getaddrinfo_t *req, int status, + struct addrinfo *res) { + request *r = (request *)req->data; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_error *error; + error = handle_addrinfo_result(status, res, r->addresses); + grpc_exec_ctx_sched(&exec_ctx, r->on_done, error, NULL); + grpc_exec_ctx_finish(&exec_ctx); + + gpr_free(r->hints); + gpr_free(r); + gpr_free(req); + uv_freeaddrinfo(res); +} + +static grpc_error *try_split_host_port(const char *name, + const char *default_port, char **host, + char **port) { + /* parse name, splitting it into host and port parts */ + grpc_error *error; + gpr_split_host_port(name, host, port); + if (host == NULL) { + char *msg; + gpr_asprintf(&msg, "unparseable host:port: '%s'", name); + error = GRPC_ERROR_CREATE(msg); + gpr_free(msg); + return error; + } + if (port == NULL) { + if (default_port == NULL) { + char *msg; + gpr_asprintf(&msg, "no port in name '%s'", name); + error = GRPC_ERROR_CREATE(msg); + gpr_free(msg); + return error; + } + *port = gpr_strdup(default_port); + } + return GRPC_ERROR_NONE; +} + +static grpc_error *blocking_resolve_address_impl( + const char *name, const char *default_port, + grpc_resolved_addresses **addresses) { + char *host; + char *port; + struct addrinfo hints; + uv_getaddrinfo_t req; + int s; + grpc_error *err; + + req.addrinfo = NULL; + + err = try_split_host_port(name, default_port, &host, &port); + if (err != GRPC_ERROR_NONE) { + goto done; + } + + /* Call getaddrinfo */ + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_UNSPEC; /* ipv4 or ipv6 */ + hints.ai_socktype = SOCK_STREAM; /* stream socket */ + hints.ai_flags = AI_PASSIVE; /* for wildcard IP address */ + + s = uv_getaddrinfo(uv_default_loop(), &req, NULL, host, port, &hints); + err = handle_addrinfo_result(s, req.addrinfo, addresses); + +done: + gpr_free(host); + gpr_free(port); + if (req.addrinfo) { + uv_freeaddrinfo(req.addrinfo); + } + return err; +} + +grpc_error *(*grpc_blocking_resolve_address)( + const char *name, const char *default_port, + grpc_resolved_addresses **addresses) = blocking_resolve_address_impl; + +void grpc_resolved_addresses_destroy(grpc_resolved_addresses *addrs) { + if (addrs != NULL) { + gpr_free(addrs->addrs); + } + gpr_free(addrs); +} + +static void resolve_address_impl(grpc_exec_ctx *exec_ctx, const char *name, + const char *default_port, + grpc_closure *on_done, + grpc_resolved_addresses **addrs) { + uv_getaddrinfo_t *req; + request *r; + struct addrinfo *hints; + char *host; + char *port; + grpc_error *err; + int s; + err = try_split_host_port(name, default_port, &host, &port); + if (err != GRPC_ERROR_NONE) { + grpc_exec_ctx_sched(exec_ctx, on_done, err, NULL); + return; + } + r = gpr_malloc(sizeof(request)); + r->on_done = on_done; + r->addresses = addrs; + req = gpr_malloc(sizeof(uv_getaddrinfo_t)); + req->data = r; + + /* Call getaddrinfo */ + hints = gpr_malloc(sizeof(struct addrinfo)); + memset(hints, 0, sizeof(struct addrinfo)); + hints->ai_family = AF_UNSPEC; /* ipv4 or ipv6 */ + hints->ai_socktype = SOCK_STREAM; /* stream socket */ + hints->ai_flags = AI_PASSIVE; /* for wildcard IP address */ + r->hints = hints; + + s = uv_getaddrinfo(uv_default_loop(), req, getaddrinfo_callback, host, port, + hints); + + if (s != 0) { + *addrs = NULL; + err = GRPC_ERROR_CREATE("getaddrinfo failed"); + err = grpc_error_set_str(err, GRPC_ERROR_STR_OS_ERROR, uv_strerror(s)); + grpc_exec_ctx_sched(exec_ctx, on_done, err, NULL); + gpr_free(r); + gpr_free(req); + gpr_free(hints); + } +} + +void (*grpc_resolve_address)(grpc_exec_ctx *exec_ctx, const char *name, + const char *default_port, grpc_closure *on_done, + grpc_resolved_addresses **addrs) = + resolve_address_impl; + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/resolve_address_windows.c b/src/core/lib/iomgr/resolve_address_windows.c index 2af8af82dc..e139293c03 100644 --- a/src/core/lib/iomgr/resolve_address_windows.c +++ b/src/core/lib/iomgr/resolve_address_windows.c @@ -31,12 +31,13 @@ * */ -#include <grpc/support/port_platform.h> -#ifdef GPR_WINSOCK_SOCKET +#include "src/core/lib/iomgr/port.h" +#ifdef GRPC_WINSOCK_SOCKET -#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" + #include <string.h> #include <sys/types.h> @@ -124,8 +125,7 @@ static grpc_error *blocking_resolve_address_impl( { for (i = 0; i < (*addresses)->naddrs; i++) { char *buf; - grpc_sockaddr_to_string( - &buf, (struct sockaddr *)&(*addresses)->addrs[i].addr, 0); + grpc_sockaddr_to_string(&buf, &(*addresses)->addrs[i], 0); gpr_free(buf); } } diff --git a/src/core/lib/iomgr/sockaddr.h b/src/core/lib/iomgr/sockaddr.h index 5563d0b8a6..52b504390d 100644 --- a/src/core/lib/iomgr/sockaddr.h +++ b/src/core/lib/iomgr/sockaddr.h @@ -31,16 +31,24 @@ * */ +/* This header transitively includes other headers that care about include + * order, so it should be included first. As a consequence, it should not be + * included in any other header. */ + #ifndef GRPC_CORE_LIB_IOMGR_SOCKADDR_H #define GRPC_CORE_LIB_IOMGR_SOCKADDR_H -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV +#include <uv.h> +#endif #ifdef GPR_WINDOWS #include "src/core/lib/iomgr/sockaddr_windows.h" #endif -#ifdef GPR_POSIX_SOCKETADDR +#ifdef GRPC_POSIX_SOCKETADDR #include "src/core/lib/iomgr/sockaddr_posix.h" #endif diff --git a/src/core/lib/iomgr/sockaddr_utils.c b/src/core/lib/iomgr/sockaddr_utils.c index 127d95c618..44bc2f968b 100644 --- a/src/core/lib/iomgr/sockaddr_utils.c +++ b/src/core/lib/iomgr/sockaddr_utils.c @@ -42,26 +42,32 @@ #include <grpc/support/port_platform.h> #include <grpc/support/string_util.h> +#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/socket_utils.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" #include "src/core/lib/support/string.h" static const uint8_t kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff}; -int grpc_sockaddr_is_v4mapped(const struct sockaddr *addr, - struct sockaddr_in *addr4_out) { - GPR_ASSERT(addr != (struct sockaddr *)addr4_out); +int grpc_sockaddr_is_v4mapped(const grpc_resolved_address *resolved_addr, + grpc_resolved_address *resolved_addr4_out) { + GPR_ASSERT(resolved_addr != resolved_addr4_out); + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; + struct sockaddr_in *addr4_out = + (struct sockaddr_in *)resolved_addr4_out->addr; if (addr->sa_family == AF_INET6) { const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6 *)addr; if (memcmp(addr6->sin6_addr.s6_addr, kV4MappedPrefix, sizeof(kV4MappedPrefix)) == 0) { - if (addr4_out != NULL) { + if (resolved_addr4_out != NULL) { /* Normalize ::ffff:0.0.0.0/96 to IPv4. */ - memset(addr4_out, 0, sizeof(*addr4_out)); + memset(resolved_addr4_out, 0, sizeof(*resolved_addr4_out)); addr4_out->sin_family = AF_INET; /* s6_addr32 would be nice, but it's non-standard. */ memcpy(&addr4_out->sin_addr, &addr6->sin6_addr.s6_addr[12], 4); addr4_out->sin_port = addr6->sin6_port; + resolved_addr4_out->len = sizeof(struct sockaddr_in); } return 1; } @@ -69,26 +75,33 @@ int grpc_sockaddr_is_v4mapped(const struct sockaddr *addr, return 0; } -int grpc_sockaddr_to_v4mapped(const struct sockaddr *addr, - struct sockaddr_in6 *addr6_out) { - GPR_ASSERT(addr != (struct sockaddr *)addr6_out); +int grpc_sockaddr_to_v4mapped(const grpc_resolved_address *resolved_addr, + grpc_resolved_address *resolved_addr6_out) { + GPR_ASSERT(resolved_addr != resolved_addr6_out); + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; + struct sockaddr_in6 *addr6_out = + (struct sockaddr_in6 *)resolved_addr6_out->addr; if (addr->sa_family == AF_INET) { const struct sockaddr_in *addr4 = (const struct sockaddr_in *)addr; - memset(addr6_out, 0, sizeof(*addr6_out)); + memset(resolved_addr6_out, 0, sizeof(*resolved_addr6_out)); addr6_out->sin6_family = AF_INET6; memcpy(&addr6_out->sin6_addr.s6_addr[0], kV4MappedPrefix, 12); memcpy(&addr6_out->sin6_addr.s6_addr[12], &addr4->sin_addr, 4); addr6_out->sin6_port = addr4->sin_port; + resolved_addr6_out->len = sizeof(struct sockaddr_in6); return 1; } return 0; } -int grpc_sockaddr_is_wildcard(const struct sockaddr *addr, int *port_out) { - struct sockaddr_in addr4_normalized; - if (grpc_sockaddr_is_v4mapped(addr, &addr4_normalized)) { - addr = (struct sockaddr *)&addr4_normalized; +int grpc_sockaddr_is_wildcard(const grpc_resolved_address *resolved_addr, + int *port_out) { + const struct sockaddr *addr; + grpc_resolved_address addr4_normalized; + if (grpc_sockaddr_is_v4mapped(resolved_addr, &addr4_normalized)) { + resolved_addr = &addr4_normalized; } + addr = (const struct sockaddr *)resolved_addr->addr; if (addr->sa_family == AF_INET) { /* Check for 0.0.0.0 */ const struct sockaddr_in *addr4 = (const struct sockaddr_in *)addr; @@ -113,39 +126,49 @@ int grpc_sockaddr_is_wildcard(const struct sockaddr *addr, int *port_out) { } } -void grpc_sockaddr_make_wildcards(int port, struct sockaddr_in *wild4_out, - struct sockaddr_in6 *wild6_out) { +void grpc_sockaddr_make_wildcards(int port, grpc_resolved_address *wild4_out, + grpc_resolved_address *wild6_out) { grpc_sockaddr_make_wildcard4(port, wild4_out); grpc_sockaddr_make_wildcard6(port, wild6_out); } -void grpc_sockaddr_make_wildcard4(int port, struct sockaddr_in *wild_out) { +void grpc_sockaddr_make_wildcard4(int port, + grpc_resolved_address *resolved_wild_out) { + struct sockaddr_in *wild_out = (struct sockaddr_in *)resolved_wild_out->addr; GPR_ASSERT(port >= 0 && port < 65536); - memset(wild_out, 0, sizeof(*wild_out)); + memset(resolved_wild_out, 0, sizeof(*resolved_wild_out)); wild_out->sin_family = AF_INET; wild_out->sin_port = htons((uint16_t)port); + resolved_wild_out->len = sizeof(struct sockaddr_in); } -void grpc_sockaddr_make_wildcard6(int port, struct sockaddr_in6 *wild_out) { +void grpc_sockaddr_make_wildcard6(int port, + grpc_resolved_address *resolved_wild_out) { + struct sockaddr_in6 *wild_out = + (struct sockaddr_in6 *)resolved_wild_out->addr; GPR_ASSERT(port >= 0 && port < 65536); - memset(wild_out, 0, sizeof(*wild_out)); + memset(resolved_wild_out, 0, sizeof(*resolved_wild_out)); wild_out->sin6_family = AF_INET6; wild_out->sin6_port = htons((uint16_t)port); + resolved_wild_out->len = sizeof(struct sockaddr_in6); } -int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr, +int grpc_sockaddr_to_string(char **out, + const grpc_resolved_address *resolved_addr, int normalize) { + const struct sockaddr *addr; const int save_errno = errno; - struct sockaddr_in addr_normalized; + grpc_resolved_address addr_normalized; char ntop_buf[INET6_ADDRSTRLEN]; const void *ip = NULL; int port; int ret; *out = NULL; - if (normalize && grpc_sockaddr_is_v4mapped(addr, &addr_normalized)) { - addr = (const struct sockaddr *)&addr_normalized; + if (normalize && grpc_sockaddr_is_v4mapped(resolved_addr, &addr_normalized)) { + resolved_addr = &addr_normalized; } + addr = (const struct sockaddr *)resolved_addr->addr; if (addr->sa_family == AF_INET) { const struct sockaddr_in *addr4 = (const struct sockaddr_in *)addr; ip = &addr4->sin_addr; @@ -155,10 +178,8 @@ int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr, ip = &addr6->sin6_addr; port = ntohs(addr6->sin6_port); } - /* Windows inet_ntop wants a mutable ip pointer */ if (ip != NULL && - inet_ntop(addr->sa_family, (void *)ip, ntop_buf, sizeof(ntop_buf)) != - NULL) { + grpc_inet_ntop(addr->sa_family, ip, ntop_buf, sizeof(ntop_buf)) != NULL) { ret = gpr_join_host_port(out, ntop_buf, port); } else { ret = gpr_asprintf(out, "(sockaddr family=%d)", addr->sa_family); @@ -168,39 +189,43 @@ int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr, return ret; } -char *grpc_sockaddr_to_uri(const struct sockaddr *addr) { +char *grpc_sockaddr_to_uri(const grpc_resolved_address *resolved_addr) { char *temp; char *result; - struct sockaddr_in addr_normalized; + grpc_resolved_address addr_normalized; + const struct sockaddr *addr; - if (grpc_sockaddr_is_v4mapped(addr, &addr_normalized)) { - addr = (const struct sockaddr *)&addr_normalized; + if (grpc_sockaddr_is_v4mapped(resolved_addr, &addr_normalized)) { + resolved_addr = &addr_normalized; } + addr = (const struct sockaddr *)resolved_addr->addr; + switch (addr->sa_family) { case AF_INET: - grpc_sockaddr_to_string(&temp, addr, 0); + grpc_sockaddr_to_string(&temp, resolved_addr, 0); gpr_asprintf(&result, "ipv4:%s", temp); gpr_free(temp); return result; case AF_INET6: - grpc_sockaddr_to_string(&temp, addr, 0); + grpc_sockaddr_to_string(&temp, resolved_addr, 0); gpr_asprintf(&result, "ipv6:%s", temp); gpr_free(temp); return result; default: - return grpc_sockaddr_to_uri_unix_if_possible(addr); + return grpc_sockaddr_to_uri_unix_if_possible(resolved_addr); } } -int grpc_sockaddr_get_port(const struct sockaddr *addr) { +int grpc_sockaddr_get_port(const grpc_resolved_address *resolved_addr) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; switch (addr->sa_family) { case AF_INET: return ntohs(((struct sockaddr_in *)addr)->sin_port); case AF_INET6: return ntohs(((struct sockaddr_in6 *)addr)->sin6_port); default: - if (grpc_is_unix_socket(addr)) { + if (grpc_is_unix_socket(resolved_addr)) { return 1; } gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port", @@ -209,7 +234,9 @@ int grpc_sockaddr_get_port(const struct sockaddr *addr) { } } -int grpc_sockaddr_set_port(const struct sockaddr *addr, int port) { +int grpc_sockaddr_set_port(const grpc_resolved_address *resolved_addr, + int port) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; switch (addr->sa_family) { case AF_INET: GPR_ASSERT(port >= 0 && port < 65536); diff --git a/src/core/lib/iomgr/sockaddr_utils.h b/src/core/lib/iomgr/sockaddr_utils.h index 9f81992e6b..5371e360c5 100644 --- a/src/core/lib/iomgr/sockaddr_utils.h +++ b/src/core/lib/iomgr/sockaddr_utils.h @@ -34,40 +34,40 @@ #ifndef GRPC_CORE_LIB_IOMGR_SOCKADDR_UTILS_H #define GRPC_CORE_LIB_IOMGR_SOCKADDR_UTILS_H -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" /* Returns true if addr is an IPv4-mapped IPv6 address within the ::ffff:0.0.0.0/96 range, or false otherwise. If addr4_out is non-NULL, the inner IPv4 address will be copied here when returning true. */ -int grpc_sockaddr_is_v4mapped(const struct sockaddr *addr, - struct sockaddr_in *addr4_out); +int grpc_sockaddr_is_v4mapped(const grpc_resolved_address *addr, + grpc_resolved_address *addr4_out); /* If addr is an AF_INET address, writes the corresponding ::ffff:0.0.0.0/96 address to addr6_out and returns true. Otherwise returns false. */ -int grpc_sockaddr_to_v4mapped(const struct sockaddr *addr, - struct sockaddr_in6 *addr6_out); +int grpc_sockaddr_to_v4mapped(const grpc_resolved_address *addr, + grpc_resolved_address *addr6_out); /* If addr is ::, 0.0.0.0, or ::ffff:0.0.0.0, writes the port number to *port_out (if not NULL) and returns true, otherwise returns false. */ -int grpc_sockaddr_is_wildcard(const struct sockaddr *addr, int *port_out); +int grpc_sockaddr_is_wildcard(const grpc_resolved_address *addr, int *port_out); /* Writes 0.0.0.0:port and [::]:port to separate sockaddrs. */ -void grpc_sockaddr_make_wildcards(int port, struct sockaddr_in *wild4_out, - struct sockaddr_in6 *wild6_out); +void grpc_sockaddr_make_wildcards(int port, grpc_resolved_address *wild4_out, + grpc_resolved_address *wild6_out); /* Writes 0.0.0.0:port. */ -void grpc_sockaddr_make_wildcard4(int port, struct sockaddr_in *wild_out); +void grpc_sockaddr_make_wildcard4(int port, grpc_resolved_address *wild_out); /* Writes [::]:port. */ -void grpc_sockaddr_make_wildcard6(int port, struct sockaddr_in6 *wild_out); +void grpc_sockaddr_make_wildcard6(int port, grpc_resolved_address *wild_out); /* Return the IP port number of a sockaddr */ -int grpc_sockaddr_get_port(const struct sockaddr *addr); +int grpc_sockaddr_get_port(const grpc_resolved_address *addr); /* Set IP port number of a sockaddr */ -int grpc_sockaddr_set_port(const struct sockaddr *addr, int port); +int grpc_sockaddr_set_port(const grpc_resolved_address *addr, int port); /* Converts a sockaddr into a newly-allocated human-readable string. @@ -81,9 +81,9 @@ int grpc_sockaddr_set_port(const struct sockaddr *addr, int port); In the unlikely event of an error, returns -1 and sets *out to NULL. The existing value of errno is always preserved. */ -int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr, +int grpc_sockaddr_to_string(char **out, const grpc_resolved_address *addr, int normalize); -char *grpc_sockaddr_to_uri(const struct sockaddr *addr); +char *grpc_sockaddr_to_uri(const grpc_resolved_address *addr); #endif /* GRPC_CORE_LIB_IOMGR_SOCKADDR_UTILS_H */ diff --git a/src/core/lib/iomgr/socket_utils.h b/src/core/lib/iomgr/socket_utils.h new file mode 100644 index 0000000000..cc3ee2e30c --- /dev/null +++ b/src/core/lib/iomgr/socket_utils.h @@ -0,0 +1,42 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_H +#define GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_H + +#include <stddef.h> + +/* A wrapper for inet_ntop on POSIX systems and InetNtop on Windows systems */ +const char *grpc_inet_ntop(int af, const void *src, char *dst, size_t size); + +#endif /* GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_H */ diff --git a/src/core/lib/iomgr/socket_utils_common_posix.c b/src/core/lib/iomgr/socket_utils_common_posix.c index d2f6261e2a..bc28bbe316 100644 --- a/src/core/lib/iomgr/socket_utils_common_posix.c +++ b/src/core/lib/iomgr/socket_utils_common_posix.c @@ -31,10 +31,11 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET +#include "src/core/lib/iomgr/socket_utils.h" #include "src/core/lib/iomgr/socket_utils_posix.h" #include <arpa/inet.h> @@ -78,7 +79,7 @@ grpc_error *grpc_set_socket_nonblocking(int fd, int non_blocking) { } grpc_error *grpc_set_socket_no_sigpipe_if_possible(int fd) { -#ifdef GPR_HAVE_SO_NOSIGPIPE +#ifdef GRPC_HAVE_SO_NOSIGPIPE int val = 1; int newval; socklen_t intlen = sizeof(newval); @@ -96,7 +97,7 @@ grpc_error *grpc_set_socket_no_sigpipe_if_possible(int fd) { } grpc_error *grpc_set_socket_ip_pktinfo_if_possible(int fd) { -#ifdef GPR_HAVE_IP_PKTINFO +#ifdef GRPC_HAVE_IP_PKTINFO int get_local_ip = 1; if (0 != setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip, sizeof(get_local_ip))) { @@ -107,7 +108,7 @@ grpc_error *grpc_set_socket_ip_pktinfo_if_possible(int fd) { } grpc_error *grpc_set_socket_ipv6_recvpktinfo_if_possible(int fd) { -#ifdef GPR_HAVE_IPV6_RECVPKTINFO +#ifdef GRPC_HAVE_IPV6_RECVPKTINFO int get_local_ip = 1; if (0 != setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &get_local_ip, sizeof(get_local_ip))) { @@ -253,7 +254,7 @@ static int set_socket_dualstack(int fd) { } } -static grpc_error *error_for_fd(int fd, const struct sockaddr *addr) { +static grpc_error *error_for_fd(int fd, const grpc_resolved_address *addr) { if (fd >= 0) return GRPC_ERROR_NONE; char *addr_str; grpc_sockaddr_to_string(&addr_str, addr, 0); @@ -263,10 +264,10 @@ static grpc_error *error_for_fd(int fd, const struct sockaddr *addr) { return err; } -grpc_error *grpc_create_dualstack_socket(const struct sockaddr *addr, int type, - int protocol, - grpc_dualstack_mode *dsmode, - int *newfd) { +grpc_error *grpc_create_dualstack_socket( + const grpc_resolved_address *resolved_addr, int type, int protocol, + grpc_dualstack_mode *dsmode, int *newfd) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; int family = addr->sa_family; if (family == AF_INET6) { if (grpc_ipv6_loopback_available()) { @@ -281,9 +282,9 @@ grpc_error *grpc_create_dualstack_socket(const struct sockaddr *addr, int type, return GRPC_ERROR_NONE; } /* If this isn't an IPv4 address, then return whatever we've got. */ - if (!grpc_sockaddr_is_v4mapped(addr, NULL)) { + if (!grpc_sockaddr_is_v4mapped(resolved_addr, NULL)) { *dsmode = GRPC_DSMODE_IPV6; - return error_for_fd(*newfd, addr); + return error_for_fd(*newfd, resolved_addr); } /* Fall back to AF_INET. */ if (*newfd >= 0) { @@ -293,7 +294,12 @@ grpc_error *grpc_create_dualstack_socket(const struct sockaddr *addr, int type, } *dsmode = family == AF_INET ? GRPC_DSMODE_IPV4 : GRPC_DSMODE_NONE; *newfd = socket(family, type, protocol); - return error_for_fd(*newfd, addr); + return error_for_fd(*newfd, resolved_addr); +} + +const char *grpc_inet_ntop(int af, const void *src, char *dst, size_t size) { + GPR_ASSERT(size <= (socklen_t)-1); + return inet_ntop(af, src, dst, (socklen_t)size); } #endif diff --git a/src/core/lib/iomgr/socket_utils_linux.c b/src/core/lib/iomgr/socket_utils_linux.c index 144e3110c8..bf6e9e4f55 100644 --- a/src/core/lib/iomgr/socket_utils_linux.c +++ b/src/core/lib/iomgr/socket_utils_linux.c @@ -31,21 +31,27 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_LINUX_SOCKETUTILS +#ifdef GRPC_LINUX_SOCKETUTILS +#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/socket_utils_posix.h" +#include <grpc/support/log.h> + #include <sys/socket.h> #include <sys/types.h> -int grpc_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, - int nonblock, int cloexec) { +int grpc_accept4(int sockfd, grpc_resolved_address *resolved_addr, int nonblock, + int cloexec) { int flags = 0; + GPR_ASSERT(sizeof(socklen_t) <= sizeof(size_t)); + GPR_ASSERT(resolved_addr->len <= (socklen_t)-1); flags |= nonblock ? SOCK_NONBLOCK : 0; flags |= cloexec ? SOCK_CLOEXEC : 0; - return accept4(sockfd, addr, addrlen, flags); + return accept4(sockfd, (struct sockaddr *)resolved_addr->addr, + (socklen_t *)&resolved_addr->len, flags); } #endif diff --git a/src/core/lib/iomgr/socket_utils_posix.c b/src/core/lib/iomgr/socket_utils_posix.c index 57ae64c103..9dea0c0cd8 100644 --- a/src/core/lib/iomgr/socket_utils_posix.c +++ b/src/core/lib/iomgr/socket_utils_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKETUTILS +#ifdef GRPC_POSIX_SOCKETUTILS #include "src/core/lib/iomgr/socket_utils_posix.h" @@ -42,12 +42,15 @@ #include <unistd.h> #include <grpc/support/log.h> +#include "src/core/lib/iomgr/sockaddr.h" -int grpc_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, - int nonblock, int cloexec) { +int grpc_accept4(int sockfd, grpc_resolved_address *resolved_addr, int nonblock, + int cloexec) { int fd, flags; - - fd = accept(sockfd, addr, addrlen); + GPR_ASSERT(sizeof(socklen_t) <= sizeof(size_t)); + GPR_ASSERT(resolved_addr->len <= (socklen_t)-1); + fd = accept(sockfd, (struct sockaddr *)resolved_addr->addr, + (socklen_t *)&resolved_addr->len); if (fd >= 0) { if (nonblock) { flags = fcntl(fd, F_GETFL, 0); @@ -67,4 +70,4 @@ close_and_error: return -1; } -#endif /* GPR_POSIX_SOCKETUTILS */ +#endif /* GRPC_POSIX_SOCKETUTILS */ diff --git a/src/core/lib/iomgr/socket_utils_posix.h b/src/core/lib/iomgr/socket_utils_posix.h index 7bcc2219ae..175fb2b717 100644 --- a/src/core/lib/iomgr/socket_utils_posix.h +++ b/src/core/lib/iomgr/socket_utils_posix.h @@ -34,14 +34,16 @@ #ifndef GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_POSIX_H #define GRPC_CORE_LIB_IOMGR_SOCKET_UTILS_POSIX_H +#include "src/core/lib/iomgr/resolve_address.h" + #include <sys/socket.h> #include <unistd.h> #include "src/core/lib/iomgr/error.h" /* a wrapper for accept or accept4 */ -int grpc_accept4(int sockfd, struct sockaddr *addr, socklen_t *addrlen, - int nonblock, int cloexec); +int grpc_accept4(int sockfd, grpc_resolved_address *resolved_addr, int nonblock, + int cloexec); /* set a socket to non blocking mode */ grpc_error *grpc_set_socket_nonblocking(int fd, int non_blocking); @@ -125,8 +127,8 @@ extern int grpc_forbid_dualstack_sockets_for_testing; IPv4, so that bind() or connect() see the correct family. Also, it's important to distinguish between DUALSTACK and IPV6 when listening on the [::] wildcard address. */ -grpc_error *grpc_create_dualstack_socket(const struct sockaddr *addr, int type, - int protocol, +grpc_error *grpc_create_dualstack_socket(const grpc_resolved_address *addr, + int type, int protocol, grpc_dualstack_mode *dsmode, int *newfd); diff --git a/src/core/lib/iomgr/socket_utils_uv.c b/src/core/lib/iomgr/socket_utils_uv.c new file mode 100644 index 0000000000..741bf28969 --- /dev/null +++ b/src/core/lib/iomgr/socket_utils_uv.c @@ -0,0 +1,49 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include <uv.h> + +#include "src/core/lib/iomgr/socket_utils.h" + +#include <grpc/support/log.h> + +const char *grpc_inet_ntop(int af, const void *src, char *dst, size_t size) { + uv_inet_ntop(af, src, dst, size); + return dst; +} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/socket_utils_windows.c b/src/core/lib/iomgr/socket_utils_windows.c new file mode 100644 index 0000000000..628ad4a45b --- /dev/null +++ b/src/core/lib/iomgr/socket_utils_windows.c @@ -0,0 +1,48 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_WINDOWS_SOCKETUTILS + +#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/socket_utils.h" + +#include <grpc/support/log.h> + +const char *grpc_inet_ntop(int af, const void *src, char *dst, size_t size) { + /* Windows InetNtopA wants a mutable ip pointer */ + return InetNtopA(af, (void *)src, dst, size); +} + +#endif /* GRPC_WINDOWS_SOCKETUTILS */ diff --git a/src/core/lib/iomgr/socket_windows.c b/src/core/lib/iomgr/socket_windows.c index 78ef46d042..35f23300dc 100644 --- a/src/core/lib/iomgr/socket_windows.c +++ b/src/core/lib/iomgr/socket_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include <winsock2.h> @@ -156,4 +156,4 @@ void grpc_socket_become_ready(grpc_exec_ctx *exec_ctx, grpc_winsocket *socket, if (should_destroy) destroy(socket); } -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/tcp_client.h b/src/core/lib/iomgr/tcp_client.h index a07e0b9f0c..fe1e7f4d3e 100644 --- a/src/core/lib/iomgr/tcp_client.h +++ b/src/core/lib/iomgr/tcp_client.h @@ -37,7 +37,7 @@ #include <grpc/support/time.h> #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/pollset_set.h" -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" /* Asynchronously connect to an address (specified as (addr, len)), and call cb with arg and the completed connection when done (or call cb with arg and @@ -47,7 +47,7 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_connect, grpc_endpoint **endpoint, grpc_pollset_set *interested_parties, - const struct sockaddr *addr, size_t addr_len, + const grpc_resolved_address *addr, gpr_timespec deadline); #endif /* GRPC_CORE_LIB_IOMGR_TCP_CLIENT_H */ diff --git a/src/core/lib/iomgr/tcp_client_posix.c b/src/core/lib/iomgr/tcp_client_posix.c index 3496b6094f..e7ae1ef695 100644 --- a/src/core/lib/iomgr/tcp_client_posix.c +++ b/src/core/lib/iomgr/tcp_client_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/tcp_client.h" @@ -71,7 +71,7 @@ typedef struct { grpc_closure *closure; } async_connect; -static grpc_error *prepare_socket(const struct sockaddr *addr, int fd) { +static grpc_error *prepare_socket(const grpc_resolved_address *addr, int fd) { grpc_error *err = GRPC_ERROR_NONE; GPR_ASSERT(fd >= 0); @@ -223,14 +223,14 @@ finish: static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, grpc_pollset_set *interested_parties, - const struct sockaddr *addr, - size_t addr_len, gpr_timespec deadline) { + const grpc_resolved_address *addr, + gpr_timespec deadline) { int fd; grpc_dualstack_mode dsmode; int err; async_connect *ac; - struct sockaddr_in6 addr6_v4mapped; - struct sockaddr_in addr4_copy; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address addr4_copy; grpc_fd *fdobj; char *name; char *addr_str; @@ -240,8 +240,7 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx, /* Use dualstack sockets where available. */ if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { - addr = (const struct sockaddr *)&addr6_v4mapped; - addr_len = sizeof(addr6_v4mapped); + addr = &addr6_v4mapped; } error = grpc_create_dualstack_socket(addr, SOCK_STREAM, 0, &dsmode, &fd); @@ -252,8 +251,7 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx, if (dsmode == GRPC_DSMODE_IPV4) { /* If we got an AF_INET socket, map the address back to IPv4. */ GPR_ASSERT(grpc_sockaddr_is_v4mapped(addr, &addr4_copy)); - addr = (struct sockaddr *)&addr4_copy; - addr_len = sizeof(addr4_copy); + addr = &addr4_copy; } if ((error = prepare_socket(addr, fd)) != GRPC_ERROR_NONE) { grpc_exec_ctx_sched(exec_ctx, closure, error, NULL); @@ -261,8 +259,9 @@ static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx, } do { - GPR_ASSERT(addr_len < ~(socklen_t)0); - err = connect(fd, addr, (socklen_t)addr_len); + GPR_ASSERT(addr->len < ~(socklen_t)0); + err = + connect(fd, (const struct sockaddr *)addr->addr, (socklen_t)addr->len); } while (err < 0 && errno == EINTR); addr_str = grpc_sockaddr_to_uri(addr); @@ -317,16 +316,16 @@ done: // overridden by api_fuzzer.c void (*grpc_tcp_client_connect_impl)( grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, - grpc_pollset_set *interested_parties, const struct sockaddr *addr, - size_t addr_len, gpr_timespec deadline) = tcp_client_connect_impl; + grpc_pollset_set *interested_parties, const grpc_resolved_address *addr, + gpr_timespec deadline) = tcp_client_connect_impl; void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, grpc_pollset_set *interested_parties, - const struct sockaddr *addr, size_t addr_len, + const grpc_resolved_address *addr, gpr_timespec deadline) { grpc_tcp_client_connect_impl(exec_ctx, closure, ep, interested_parties, addr, - addr_len, deadline); + deadline); } #endif diff --git a/src/core/lib/iomgr/tcp_client_uv.c b/src/core/lib/iomgr/tcp_client_uv.c new file mode 100644 index 0000000000..6274667042 --- /dev/null +++ b/src/core/lib/iomgr/tcp_client_uv.c @@ -0,0 +1,153 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "src/core/lib/iomgr/error.h" +#include "src/core/lib/iomgr/sockaddr_utils.h" +#include "src/core/lib/iomgr/tcp_client.h" +#include "src/core/lib/iomgr/tcp_uv.h" +#include "src/core/lib/iomgr/timer.h" + +typedef struct grpc_uv_tcp_connect { + uv_connect_t connect_req; + grpc_timer alarm; + uv_tcp_t *tcp_handle; + grpc_closure *closure; + grpc_endpoint **endpoint; + int refs; + char *addr_name; +} grpc_uv_tcp_connect; + +static void uv_tcp_connect_cleanup(grpc_uv_tcp_connect *connect) { + gpr_free(connect); +} + +static void tcp_close_callback(uv_handle_t *handle) { gpr_free(handle); } + +static void uv_tc_on_alarm(grpc_exec_ctx *exec_ctx, void *acp, + grpc_error *error) { + int done; + grpc_uv_tcp_connect *connect = acp; + if (error == GRPC_ERROR_NONE) { + /* error == NONE implies that the timer ran out, and wasn't cancelled. If + it was cancelled, then the handler that cancelled it also should close + the handle, if applicable */ + uv_close((uv_handle_t *)connect->tcp_handle, tcp_close_callback); + } + done = (--connect->refs == 0); + if (done) { + uv_tcp_connect_cleanup(connect); + } +} + +static void uv_tc_on_connect(uv_connect_t *req, int status) { + grpc_uv_tcp_connect *connect = req->data; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_error *error = GRPC_ERROR_NONE; + int done; + grpc_closure *closure = connect->closure; + grpc_timer_cancel(&exec_ctx, &connect->alarm); + if (status == 0) { + *connect->endpoint = + grpc_tcp_create(connect->tcp_handle, connect->addr_name); + } else { + error = GRPC_ERROR_CREATE("Failed to connect to remote host"); + error = grpc_error_set_int(error, GRPC_ERROR_INT_ERRNO, -status); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + if (status == UV_ECANCELED) { + error = grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, + "Timeout occurred"); + // This should only happen if the handle is already closed + } else { + error = grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, + uv_strerror(status)); + uv_close((uv_handle_t *)connect->tcp_handle, tcp_close_callback); + } + } + done = (--connect->refs == 0); + if (done) { + uv_tcp_connect_cleanup(connect); + } + grpc_exec_ctx_sched(&exec_ctx, closure, error, NULL); + grpc_exec_ctx_finish(&exec_ctx); +} + +static void tcp_client_connect_impl(grpc_exec_ctx *exec_ctx, + grpc_closure *closure, grpc_endpoint **ep, + grpc_pollset_set *interested_parties, + const grpc_resolved_address *resolved_addr, + gpr_timespec deadline) { + grpc_uv_tcp_connect *connect; + (void)interested_parties; + connect = gpr_malloc(sizeof(grpc_uv_tcp_connect)); + memset(connect, 0, sizeof(grpc_uv_tcp_connect)); + connect->closure = closure; + connect->endpoint = ep; + connect->tcp_handle = gpr_malloc(sizeof(uv_tcp_t)); + connect->addr_name = grpc_sockaddr_to_uri(resolved_addr); + uv_tcp_init(uv_default_loop(), connect->tcp_handle); + connect->connect_req.data = connect; + // TODO(murgatroid99): figure out what the return value here means + uv_tcp_connect(&connect->connect_req, connect->tcp_handle, + (const struct sockaddr *)resolved_addr->addr, + uv_tc_on_connect); + grpc_timer_init(exec_ctx, &connect->alarm, + gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC), + uv_tc_on_alarm, connect, gpr_now(GPR_CLOCK_MONOTONIC)); +} + +// overridden by api_fuzzer.c +void (*grpc_tcp_client_connect_impl)( + grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, + grpc_pollset_set *interested_parties, const grpc_resolved_address *addr, + gpr_timespec deadline) = tcp_client_connect_impl; + +void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *closure, + grpc_endpoint **ep, + grpc_pollset_set *interested_parties, + const grpc_resolved_address *addr, + gpr_timespec deadline) { + grpc_tcp_client_connect_impl(exec_ctx, closure, ep, interested_parties, addr, + deadline); +} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/tcp_client_windows.c b/src/core/lib/iomgr/tcp_client_windows.c index 562cb9c6bf..fdd8c1a1f8 100644 --- a/src/core/lib/iomgr/tcp_client_windows.c +++ b/src/core/lib/iomgr/tcp_client_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include "src/core/lib/iomgr/sockaddr_windows.h" @@ -129,13 +129,13 @@ static void on_connect(grpc_exec_ctx *exec_ctx, void *acp, grpc_error *error) { void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, grpc_endpoint **endpoint, grpc_pollset_set *interested_parties, - const struct sockaddr *addr, size_t addr_len, + const grpc_resolved_address *addr, gpr_timespec deadline) { SOCKET sock = INVALID_SOCKET; BOOL success; int status; - struct sockaddr_in6 addr6_v4mapped; - struct sockaddr_in6 local_address; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address local_address; async_connect *ac; grpc_winsocket *socket = NULL; LPFN_CONNECTEX ConnectEx; @@ -148,8 +148,7 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, /* Use dualstack sockets where available. */ if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { - addr = (const struct sockaddr *)&addr6_v4mapped; - addr_len = sizeof(addr6_v4mapped); + addr = &addr6_v4mapped; } sock = WSASocket(AF_INET6, SOCK_STREAM, IPPROTO_TCP, NULL, 0, @@ -178,7 +177,8 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, grpc_sockaddr_make_wildcard6(0, &local_address); - status = bind(sock, (struct sockaddr *)&local_address, sizeof(local_address)); + status = + bind(sock, (struct sockaddr *)&local_address.addr, local_address.len); if (status != 0) { error = GRPC_WSA_ERROR(WSAGetLastError(), "bind"); goto failure; @@ -186,8 +186,8 @@ void grpc_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *on_done, socket = grpc_winsocket_create(sock, "client"); info = &socket->write_info; - success = - ConnectEx(sock, addr, (int)addr_len, NULL, 0, NULL, &info->overlapped); + success = ConnectEx(sock, (struct sockaddr *)&addr->addr, (int)addr->len, + NULL, 0, NULL, &info->overlapped); /* It wouldn't be unusual to get a success immediately. But we'll still get an IOCP notification, so let's ignore it. */ @@ -228,4 +228,4 @@ failure: grpc_exec_ctx_sched(exec_ctx, on_done, final_error, NULL); } -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/tcp_posix.c b/src/core/lib/iomgr/tcp_posix.c index 00fd77679a..18c63cfbae 100644 --- a/src/core/lib/iomgr/tcp_posix.c +++ b/src/core/lib/iomgr/tcp_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/network_status_tracker.h" #include "src/core/lib/iomgr/tcp_posix.h" @@ -58,14 +58,14 @@ #include "src/core/lib/profiling/timers.h" #include "src/core/lib/support/string.h" -#ifdef GPR_HAVE_MSG_NOSIGNAL +#ifdef GRPC_HAVE_MSG_NOSIGNAL #define SENDMSG_FLAGS MSG_NOSIGNAL #else #define SENDMSG_FLAGS 0 #endif -#ifdef GPR_MSG_IOVLEN_TYPE -typedef GPR_MSG_IOVLEN_TYPE msg_iovlen_type; +#ifdef GRPC_MSG_IOVLEN_TYPE +typedef GRPC_MSG_IOVLEN_TYPE msg_iovlen_type; #else typedef size_t msg_iovlen_type; #endif diff --git a/src/core/lib/iomgr/tcp_server.h b/src/core/lib/iomgr/tcp_server.h index 9a390699b4..0c2a4f41da 100644 --- a/src/core/lib/iomgr/tcp_server.h +++ b/src/core/lib/iomgr/tcp_server.h @@ -38,6 +38,7 @@ #include "src/core/lib/iomgr/closure.h" #include "src/core/lib/iomgr/endpoint.h" +#include "src/core/lib/iomgr/resolve_address.h" /* Forward decl of grpc_tcp_server */ typedef struct grpc_tcp_server grpc_tcp_server; @@ -78,8 +79,9 @@ void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *server, but not dualstack sockets. */ /* TODO(ctiller): deprecate this, and make grpc_tcp_server_add_ports to handle all of the multiple socket port matching logic in one place */ -grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, - size_t addr_len, int *out_port); +grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, + const grpc_resolved_address *addr, + int *out_port); /* Number of fds at the given port_index, or 0 if port_index is out of bounds. */ diff --git a/src/core/lib/iomgr/tcp_server_posix.c b/src/core/lib/iomgr/tcp_server_posix.c index 73df5477e6..127f8595d1 100644 --- a/src/core/lib/iomgr/tcp_server_posix.c +++ b/src/core/lib/iomgr/tcp_server_posix.c @@ -36,9 +36,9 @@ #define _GNU_SOURCE #endif -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/tcp_server.h" @@ -62,6 +62,7 @@ #include <grpc/support/useful.h> #include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/iomgr/socket_utils_posix.h" #include "src/core/lib/iomgr/tcp_posix.h" @@ -79,11 +80,7 @@ struct grpc_tcp_listener { int fd; grpc_fd *emfd; grpc_tcp_server *server; - union { - uint8_t untyped[GRPC_MAX_SOCKADDR_SIZE]; - struct sockaddr sockaddr; - } addr; - size_t addr_len; + grpc_resolved_address addr; int port; unsigned port_index; unsigned fd_index; @@ -238,7 +235,7 @@ static void deactivated_all_ports(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) { if (s->head) { grpc_tcp_listener *sp; for (sp = s->head; sp; sp = sp->next) { - grpc_unlink_if_unix_domain_socket(&sp->addr.sockaddr); + grpc_unlink_if_unix_domain_socket(&sp->addr); sp->destroyed_closure.cb = destroyed_port; sp->destroyed_closure.cb_arg = s; grpc_fd_orphan(exec_ctx, sp->emfd, &sp->destroyed_closure, NULL, @@ -304,11 +301,9 @@ static int get_max_accept_queue_size(void) { } /* Prepare a recently-created socket for listening. */ -static grpc_error *prepare_socket(int fd, const struct sockaddr *addr, - size_t addr_len, bool so_reuseport, - int *port) { - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; +static grpc_error *prepare_socket(int fd, const grpc_resolved_address *addr, + bool so_reuseport, int *port) { + grpc_resolved_address sockname_temp; grpc_error *err = GRPC_ERROR_NONE; GPR_ASSERT(fd >= 0); @@ -331,8 +326,8 @@ static grpc_error *prepare_socket(int fd, const struct sockaddr *addr, err = grpc_set_socket_no_sigpipe_if_possible(fd); if (err != GRPC_ERROR_NONE) goto error; - GPR_ASSERT(addr_len < ~(socklen_t)0); - if (bind(fd, addr, (socklen_t)addr_len) < 0) { + GPR_ASSERT(addr->len < ~(socklen_t)0); + if (bind(fd, (struct sockaddr *)addr->addr, (socklen_t)addr->len) < 0) { err = GRPC_OS_ERROR(errno, "bind"); goto error; } @@ -342,13 +337,15 @@ static grpc_error *prepare_socket(int fd, const struct sockaddr *addr, goto error; } - sockname_len = sizeof(sockname_temp); - if (getsockname(fd, (struct sockaddr *)&sockname_temp, &sockname_len) < 0) { + sockname_temp.len = sizeof(struct sockaddr_storage); + + if (getsockname(fd, (struct sockaddr *)sockname_temp.addr, + (socklen_t *)&sockname_temp.len) < 0) { err = GRPC_OS_ERROR(errno, "getsockname"); goto error; } - *port = grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + *port = grpc_sockaddr_get_port(&sockname_temp); return GRPC_ERROR_NONE; error: @@ -382,13 +379,13 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *err) { /* loop until accept4 returns EAGAIN, and then re-arm notification */ for (;;) { - struct sockaddr_storage addr; - socklen_t addrlen = sizeof(addr); + grpc_resolved_address addr; char *addr_str; char *name; + addr.len = sizeof(struct sockaddr_storage); /* Note: If we ever decide to return this address to the user, remember to strip off the ::ffff:0.0.0.0/96 prefix first. */ - int fd = grpc_accept4(sp->fd, (struct sockaddr *)&addr, &addrlen, 1, 1); + int fd = grpc_accept4(sp->fd, &addr, 1, 1); if (fd < 0) { switch (errno) { case EINTR: @@ -404,7 +401,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *err) { grpc_set_socket_no_sigpipe_if_possible(fd); - addr_str = grpc_sockaddr_to_uri((struct sockaddr *)&addr); + addr_str = grpc_sockaddr_to_uri(&addr); gpr_asprintf(&name, "tcp-server-connection:%s", addr_str); if (grpc_tcp_trace) { @@ -442,19 +439,18 @@ error: } static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd, - const struct sockaddr *addr, - size_t addr_len, unsigned port_index, - unsigned fd_index, + const grpc_resolved_address *addr, + unsigned port_index, unsigned fd_index, grpc_tcp_listener **listener) { grpc_tcp_listener *sp = NULL; int port = -1; char *addr_str; char *name; - grpc_error *err = prepare_socket(fd, addr, addr_len, s->so_reuseport, &port); + grpc_error *err = prepare_socket(fd, addr, s->so_reuseport, &port); if (err == GRPC_ERROR_NONE) { GPR_ASSERT(port > 0); - grpc_sockaddr_to_string(&addr_str, (struct sockaddr *)&addr, 1); + grpc_sockaddr_to_string(&addr_str, addr, 1); gpr_asprintf(&name, "tcp-server-listener:%s", addr_str); gpr_mu_lock(&s->mu); s->nports++; @@ -470,8 +466,7 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, int fd, sp->server = s; sp->fd = fd; sp->emfd = grpc_fd_create(fd, name); - memcpy(sp->addr.untyped, addr, addr_len); - sp->addr_len = addr_len; + memcpy(&sp->addr, addr, sizeof(grpc_resolved_address)); sp->port = port; sp->port_index = port_index; sp->fd_index = fd_index; @@ -504,14 +499,13 @@ static grpc_error *clone_port(grpc_tcp_listener *listener, unsigned count) { int fd = -1; int port = -1; grpc_dualstack_mode dsmode; - err = grpc_create_dualstack_socket(&listener->addr.sockaddr, SOCK_STREAM, 0, - &dsmode, &fd); + err = grpc_create_dualstack_socket(&listener->addr, SOCK_STREAM, 0, &dsmode, + &fd); if (err != GRPC_ERROR_NONE) return err; - err = prepare_socket(fd, &listener->addr.sockaddr, listener->addr_len, true, - &port); + err = prepare_socket(fd, &listener->addr, true, &port); if (err != GRPC_ERROR_NONE) return err; listener->server->nports++; - grpc_sockaddr_to_string(&addr_str, &listener->addr.sockaddr, 1); + grpc_sockaddr_to_string(&addr_str, &listener->addr, 1); gpr_asprintf(&name, "tcp-server-listener:%s/clone-%d", addr_str, i); sp = gpr_malloc(sizeof(grpc_tcp_listener)); sp->next = listener->next; @@ -524,8 +518,7 @@ static grpc_error *clone_port(grpc_tcp_listener *listener, unsigned count) { sp->server = listener->server; sp->fd = fd; sp->emfd = grpc_fd_create(fd, name); - memcpy(sp->addr.untyped, listener->addr.untyped, listener->addr_len); - sp->addr_len = listener->addr_len; + memcpy(&sp->addr, &listener->addr, sizeof(grpc_resolved_address)); sp->port = port; sp->port_index = listener->port_index; sp->fd_index = listener->fd_index + count - i; @@ -540,19 +533,19 @@ static grpc_error *clone_port(grpc_tcp_listener *listener, unsigned count) { return GRPC_ERROR_NONE; } -grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, - size_t addr_len, int *out_port) { +grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, + const grpc_resolved_address *addr, + int *out_port) { grpc_tcp_listener *sp; grpc_tcp_listener *sp2 = NULL; int fd; grpc_dualstack_mode dsmode; - struct sockaddr_in6 addr6_v4mapped; - struct sockaddr_in wild4; - struct sockaddr_in6 wild6; - struct sockaddr_in addr4_copy; - struct sockaddr *allocated_addr = NULL; - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address wild4; + grpc_resolved_address wild6; + grpc_resolved_address addr4_copy; + grpc_resolved_address *allocated_addr = NULL; + grpc_resolved_address sockname_temp; int port; unsigned port_index = 0; unsigned fd_index = 0; @@ -560,19 +553,19 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, if (s->tail != NULL) { port_index = s->tail->port_index + 1; } - grpc_unlink_if_unix_domain_socket((struct sockaddr *)addr); + grpc_unlink_if_unix_domain_socket(addr); /* Check if this is a wildcard port, and if so, try to keep the port the same as some previously created listener. */ if (grpc_sockaddr_get_port(addr) == 0) { for (sp = s->head; sp; sp = sp->next) { - sockname_len = sizeof(sockname_temp); - if (0 == getsockname(sp->fd, (struct sockaddr *)&sockname_temp, - &sockname_len)) { - port = grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + sockname_temp.len = sizeof(struct sockaddr_storage); + if (0 == getsockname(sp->fd, (struct sockaddr *)sockname_temp.addr, + (socklen_t *)&sockname_temp.len)) { + port = grpc_sockaddr_get_port(&sockname_temp); if (port > 0) { - allocated_addr = gpr_malloc(addr_len); - memcpy(allocated_addr, addr, addr_len); + allocated_addr = gpr_malloc(sizeof(grpc_resolved_address)); + memcpy(allocated_addr, addr, addr->len); grpc_sockaddr_set_port(allocated_addr, port); addr = allocated_addr; break; @@ -584,8 +577,7 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, sp = NULL; if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { - addr = (const struct sockaddr *)&addr6_v4mapped; - addr_len = sizeof(addr6_v4mapped); + addr = &addr6_v4mapped; } /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */ @@ -593,12 +585,10 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, grpc_sockaddr_make_wildcards(port, &wild4, &wild6); /* Try listening on IPv6 first. */ - addr = (struct sockaddr *)&wild6; - addr_len = sizeof(wild6); + addr = &wild6; errs[0] = grpc_create_dualstack_socket(addr, SOCK_STREAM, 0, &dsmode, &fd); if (errs[0] == GRPC_ERROR_NONE) { - errs[0] = add_socket_to_server(s, fd, addr, addr_len, port_index, - fd_index, &sp); + errs[0] = add_socket_to_server(s, fd, addr, port_index, fd_index, &sp); if (fd >= 0 && dsmode == GRPC_DSMODE_DUALSTACK) { goto done; } @@ -607,23 +597,20 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, } /* If we didn't get a dualstack socket, also listen on 0.0.0.0. */ if (port == 0 && sp != NULL) { - grpc_sockaddr_set_port((struct sockaddr *)&wild4, sp->port); + grpc_sockaddr_set_port(&wild4, sp->port); } } - addr = (struct sockaddr *)&wild4; - addr_len = sizeof(wild4); + addr = &wild4; } errs[1] = grpc_create_dualstack_socket(addr, SOCK_STREAM, 0, &dsmode, &fd); if (errs[1] == GRPC_ERROR_NONE) { if (dsmode == GRPC_DSMODE_IPV4 && grpc_sockaddr_is_v4mapped(addr, &addr4_copy)) { - addr = (struct sockaddr *)&addr4_copy; - addr_len = sizeof(addr4_copy); + addr = &addr4_copy; } sp2 = sp; - errs[1] = - add_socket_to_server(s, fd, addr, addr_len, port_index, fd_index, &sp); + errs[1] = add_socket_to_server(s, fd, addr, port_index, fd_index, &sp); if (sp2 != NULL && sp != NULL) { sp2->sibling = sp; sp->is_sibling = 1; @@ -704,7 +691,7 @@ void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s, s->pollset_count = pollset_count; sp = s->head; while (sp != NULL) { - if (s->so_reuseport && !grpc_is_unix_socket(&sp->addr.sockaddr) && + if (s->so_reuseport && !grpc_is_unix_socket(&sp->addr) && pollset_count > 1) { GPR_ASSERT(GRPC_LOG_IF_ERROR( "clone_port", clone_port(sp, (unsigned)(pollset_count - 1)))); diff --git a/src/core/lib/iomgr/tcp_server_uv.c b/src/core/lib/iomgr/tcp_server_uv.c new file mode 100644 index 0000000000..73e4db3d65 --- /dev/null +++ b/src/core/lib/iomgr/tcp_server_uv.c @@ -0,0 +1,365 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "src/core/lib/iomgr/error.h" +#include "src/core/lib/iomgr/exec_ctx.h" +#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/sockaddr_utils.h" +#include "src/core/lib/iomgr/tcp_server.h" +#include "src/core/lib/iomgr/tcp_uv.h" + +/* one listening port */ +typedef struct grpc_tcp_listener grpc_tcp_listener; +struct grpc_tcp_listener { + uv_tcp_t *handle; + grpc_tcp_server *server; + unsigned port_index; + int port; + /* linked list */ + struct grpc_tcp_listener *next; +}; + +struct grpc_tcp_server { + gpr_refcount refs; + + /* Called whenever accept() succeeds on a server port. */ + grpc_tcp_server_cb on_accept_cb; + void *on_accept_cb_arg; + + int open_ports; + + /* linked list of server ports */ + grpc_tcp_listener *head; + grpc_tcp_listener *tail; + + /* List of closures passed to shutdown_starting_add(). */ + grpc_closure_list shutdown_starting; + + /* shutdown callback */ + grpc_closure *shutdown_complete; +}; + +grpc_error *grpc_tcp_server_create(grpc_closure *shutdown_complete, + const grpc_channel_args *args, + grpc_tcp_server **server) { + grpc_tcp_server *s = gpr_malloc(sizeof(grpc_tcp_server)); + (void)args; + gpr_ref_init(&s->refs, 1); + s->on_accept_cb = NULL; + s->on_accept_cb_arg = NULL; + s->open_ports = 0; + s->head = NULL; + s->tail = NULL; + s->shutdown_starting.head = NULL; + s->shutdown_starting.tail = NULL; + s->shutdown_complete = shutdown_complete; + *server = s; + return GRPC_ERROR_NONE; +} + +grpc_tcp_server *grpc_tcp_server_ref(grpc_tcp_server *s) { + gpr_ref(&s->refs); + return s; +} + +void grpc_tcp_server_shutdown_starting_add(grpc_tcp_server *s, + grpc_closure *shutdown_starting) { + grpc_closure_list_append(&s->shutdown_starting, shutdown_starting, + GRPC_ERROR_NONE); +} + +static void finish_shutdown(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) { + if (s->shutdown_complete != NULL) { + grpc_exec_ctx_sched(exec_ctx, s->shutdown_complete, GRPC_ERROR_NONE, NULL); + } + + while (s->head) { + grpc_tcp_listener *sp = s->head; + s->head = sp->next; + sp->next = NULL; + gpr_free(sp->handle); + gpr_free(sp); + } + gpr_free(s); +} + +static void handle_close_callback(uv_handle_t *handle) { + grpc_tcp_listener *sp = (grpc_tcp_listener *)handle->data; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + sp->server->open_ports--; + if (sp->server->open_ports == 0) { + finish_shutdown(&exec_ctx, sp->server); + } + grpc_exec_ctx_finish(&exec_ctx); +} + +static void tcp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) { + int immediately_done = 0; + grpc_tcp_listener *sp; + + if (s->open_ports == 0) { + immediately_done = 1; + } + for (sp = s->head; sp; sp = sp->next) { + uv_close((uv_handle_t *)sp->handle, handle_close_callback); + } + + if (immediately_done) { + finish_shutdown(exec_ctx, s); + } +} + +void grpc_tcp_server_unref(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) { + if (gpr_unref(&s->refs)) { + /* Complete shutdown_starting work before destroying. */ + grpc_exec_ctx local_exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_exec_ctx_enqueue_list(&local_exec_ctx, &s->shutdown_starting, NULL); + if (exec_ctx == NULL) { + grpc_exec_ctx_flush(&local_exec_ctx); + tcp_server_destroy(&local_exec_ctx, s); + grpc_exec_ctx_finish(&local_exec_ctx); + } else { + grpc_exec_ctx_finish(&local_exec_ctx); + tcp_server_destroy(exec_ctx, s); + } + } +} + +static void accepted_connection_close_cb(uv_handle_t *handle) { + gpr_free(handle); +} + +static void on_connect(uv_stream_t *server, int status) { + grpc_tcp_listener *sp = (grpc_tcp_listener *)server->data; + grpc_tcp_server_acceptor acceptor = {sp->server, sp->port_index, 0}; + uv_tcp_t *client; + grpc_endpoint *ep = NULL; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_resolved_address peer_name; + char *peer_name_string; + int err; + + if (status < 0) { + gpr_log(GPR_INFO, "Skipping on_accept due to error: %s", + uv_strerror(status)); + return; + } + client = gpr_malloc(sizeof(uv_tcp_t)); + uv_tcp_init(uv_default_loop(), client); + // UV documentation says this is guaranteed to succeed + uv_accept((uv_stream_t *)server, (uv_stream_t *)client); + // If the server has not been started, we discard incoming connections + if (sp->server->on_accept_cb == NULL) { + uv_close((uv_handle_t *)client, accepted_connection_close_cb); + } else { + peer_name_string = NULL; + memset(&peer_name, 0, sizeof(grpc_resolved_address)); + peer_name.len = sizeof(struct sockaddr_storage); + err = uv_tcp_getpeername(client, (struct sockaddr *)&peer_name.addr, + (int *)&peer_name.len); + if (err == 0) { + peer_name_string = grpc_sockaddr_to_uri(&peer_name); + } else { + gpr_log(GPR_INFO, "uv_tcp_getpeername error: %s", uv_strerror(status)); + } + ep = grpc_tcp_create(client, peer_name_string); + sp->server->on_accept_cb(&exec_ctx, sp->server->on_accept_cb_arg, ep, NULL, + &acceptor); + grpc_exec_ctx_finish(&exec_ctx); + } +} + +static grpc_error *add_socket_to_server(grpc_tcp_server *s, uv_tcp_t *handle, + const grpc_resolved_address *addr, + unsigned port_index, + grpc_tcp_listener **listener) { + grpc_tcp_listener *sp = NULL; + int port = -1; + int status; + grpc_error *error; + grpc_resolved_address sockname_temp; + + // The last argument to uv_tcp_bind is flags + status = uv_tcp_bind(handle, (struct sockaddr *)addr->addr, 0); + if (status != 0) { + error = GRPC_ERROR_CREATE("Failed to bind to port"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + return error; + } + + status = uv_listen((uv_stream_t *)handle, SOMAXCONN, on_connect); + if (status != 0) { + error = GRPC_ERROR_CREATE("Failed to listen to port"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + return error; + } + + sockname_temp.len = (int)sizeof(struct sockaddr_storage); + status = uv_tcp_getsockname(handle, (struct sockaddr *)&sockname_temp.addr, + (int *)&sockname_temp.len); + if (status != 0) { + error = GRPC_ERROR_CREATE("getsockname failed"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + return error; + } + + port = grpc_sockaddr_get_port(&sockname_temp); + + GPR_ASSERT(port >= 0); + GPR_ASSERT(!s->on_accept_cb && "must add ports before starting server"); + sp = gpr_malloc(sizeof(grpc_tcp_listener)); + sp->next = NULL; + if (s->head == NULL) { + s->head = sp; + } else { + s->tail->next = sp; + } + s->tail = sp; + sp->server = s; + sp->handle = handle; + sp->port = port; + sp->port_index = port_index; + handle->data = sp; + s->open_ports++; + GPR_ASSERT(sp->handle); + *listener = sp; + + return GRPC_ERROR_NONE; +} + +grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, + const grpc_resolved_address *addr, + int *port) { + // This function is mostly copied from tcp_server_windows.c + grpc_tcp_listener *sp = NULL; + uv_tcp_t *handle; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address wildcard; + grpc_resolved_address *allocated_addr = NULL; + grpc_resolved_address sockname_temp; + unsigned port_index = 0; + int status; + grpc_error *error = GRPC_ERROR_NONE; + + if (s->tail != NULL) { + port_index = s->tail->port_index + 1; + } + + /* Check if this is a wildcard port, and if so, try to keep the port the same + as some previously created listener. */ + if (grpc_sockaddr_get_port(addr) == 0) { + for (sp = s->head; sp; sp = sp->next) { + sockname_temp.len = sizeof(struct sockaddr_storage); + if (0 == uv_tcp_getsockname(sp->handle, + (struct sockaddr *)&sockname_temp.addr, + (int *)&sockname_temp.len)) { + *port = grpc_sockaddr_get_port(&sockname_temp); + if (*port > 0) { + allocated_addr = gpr_malloc(sizeof(grpc_resolved_address)); + memcpy(allocated_addr, addr, sizeof(grpc_resolved_address)); + grpc_sockaddr_set_port(allocated_addr, *port); + addr = allocated_addr; + break; + } + } + } + } + + if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { + addr = &addr6_v4mapped; + } + + /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */ + if (grpc_sockaddr_is_wildcard(addr, port)) { + grpc_sockaddr_make_wildcard6(*port, &wildcard); + + addr = &wildcard; + } + + handle = gpr_malloc(sizeof(uv_tcp_t)); + status = uv_tcp_init(uv_default_loop(), handle); + if (status == 0) { + error = add_socket_to_server(s, handle, addr, port_index, &sp); + } else { + error = GRPC_ERROR_CREATE("Failed to initialize UV tcp handle"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + } + + gpr_free(allocated_addr); + + if (error != GRPC_ERROR_NONE) { + grpc_error *error_out = GRPC_ERROR_CREATE_REFERENCING( + "Failed to add port to server", &error, 1); + GRPC_ERROR_UNREF(error); + error = error_out; + *port = -1; + } else { + GPR_ASSERT(sp != NULL); + *port = sp->port; + } + return error; +} + +void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *server, + grpc_pollset **pollsets, size_t pollset_count, + grpc_tcp_server_cb on_accept_cb, void *cb_arg) { + grpc_tcp_listener *sp; + (void)pollsets; + (void)pollset_count; + GPR_ASSERT(on_accept_cb); + GPR_ASSERT(!server->on_accept_cb); + server->on_accept_cb = on_accept_cb; + server->on_accept_cb_arg = cb_arg; + for (sp = server->head; sp; sp = sp->next) { + GPR_ASSERT(uv_listen((uv_stream_t *)sp->handle, SOMAXCONN, on_connect) == + 0); + } +} + +void grpc_tcp_server_shutdown_listeners(grpc_exec_ctx *exec_ctx, + grpc_tcp_server *s) {} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/tcp_server_windows.c b/src/core/lib/iomgr/tcp_server_windows.c index 4ff05601fa..ad6769a6ba 100644 --- a/src/core/lib/iomgr/tcp_server_windows.c +++ b/src/core/lib/iomgr/tcp_server_windows.c @@ -31,13 +31,13 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET -#include <io.h> +#include "src/core/lib/iomgr/sockaddr.h" -#include "src/core/lib/iomgr/sockaddr_utils.h" +#include <io.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> @@ -48,6 +48,8 @@ #include "src/core/lib/iomgr/iocp_windows.h" #include "src/core/lib/iomgr/pollset_windows.h" +#include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/iomgr/socket_windows.h" #include "src/core/lib/iomgr/tcp_server.h" #include "src/core/lib/iomgr/tcp_windows.h" @@ -183,10 +185,10 @@ void grpc_tcp_server_unref(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) { } /* Prepare (bind) a recently-created socket for listening. */ -static grpc_error *prepare_socket(SOCKET sock, const struct sockaddr *addr, - size_t addr_len, int *port) { - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; +static grpc_error *prepare_socket(SOCKET sock, + const grpc_resolved_address *addr, + int *port) { + grpc_resolved_address sockname_temp; grpc_error *error = GRPC_ERROR_NONE; error = grpc_tcp_prepare_socket(sock); @@ -194,7 +196,8 @@ static grpc_error *prepare_socket(SOCKET sock, const struct sockaddr *addr, goto failure; } - if (bind(sock, addr, (int)addr_len) == SOCKET_ERROR) { + if (bind(sock, (const struct sockaddr *)addr->addr, (int)addr->len) == + SOCKET_ERROR) { error = GRPC_WSA_ERROR(WSAGetLastError(), "bind"); goto failure; } @@ -204,14 +207,14 @@ static grpc_error *prepare_socket(SOCKET sock, const struct sockaddr *addr, goto failure; } - sockname_len = sizeof(sockname_temp); - if (getsockname(sock, (struct sockaddr *)&sockname_temp, &sockname_len) == - SOCKET_ERROR) { + sockname_temp.len = sizeof(struct sockaddr_storage); + if (getsockname(sock, (struct sockaddr *)sockname_temp.addr, + &sockname_temp.len) == SOCKET_ERROR) { error = GRPC_WSA_ERROR(WSAGetLastError(), "getsockname"); goto failure; } - *port = grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + *port = grpc_sockaddr_get_port(&sockname_temp); return GRPC_ERROR_NONE; failure: @@ -307,15 +310,16 @@ static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { SOCKET sock = sp->new_socket; grpc_winsocket_callback_info *info = &sp->socket->read_info; grpc_endpoint *ep = NULL; - struct sockaddr_storage peer_name; + grpc_resolved_address peer_name; char *peer_name_string; char *fd_name; - int peer_name_len = sizeof(peer_name); DWORD transfered_bytes; DWORD flags; BOOL wsa_success; int err; + peer_name.len = sizeof(struct sockaddr_storage); + /* The general mechanism for shutting down is to queue abortion calls. While this is necessary in the read/write case, it's useless for the accept case. We only need to adjust the pending callback count */ @@ -353,9 +357,10 @@ static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { gpr_log(GPR_ERROR, "setsockopt error: %s", utf8_message); gpr_free(utf8_message); } - err = getpeername(sock, (struct sockaddr *)&peer_name, &peer_name_len); + err = + getpeername(sock, (struct sockaddr *)peer_name.addr, &peer_name.len); if (!err) { - peer_name_string = grpc_sockaddr_to_uri((struct sockaddr *)&peer_name); + peer_name_string = grpc_sockaddr_to_uri(&peer_name); } else { char *utf8_message = gpr_format_message(WSAGetLastError()); gpr_log(GPR_ERROR, "getpeername error: %s", utf8_message); @@ -385,8 +390,8 @@ static void on_accept(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { } static grpc_error *add_socket_to_server(grpc_tcp_server *s, SOCKET sock, - const struct sockaddr *addr, - size_t addr_len, unsigned port_index, + const grpc_resolved_address *addr, + unsigned port_index, grpc_tcp_listener **listener) { grpc_tcp_listener *sp = NULL; int port = -1; @@ -410,7 +415,7 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, SOCKET sock, return NULL; } - error = prepare_socket(sock, addr, addr_len, &port); + error = prepare_socket(sock, addr, &port); if (error != GRPC_ERROR_NONE) { return error; } @@ -441,15 +446,15 @@ static grpc_error *add_socket_to_server(grpc_tcp_server *s, SOCKET sock, return GRPC_ERROR_NONE; } -grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, - size_t addr_len, int *port) { +grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, + const grpc_resolved_address *addr, + int *port) { grpc_tcp_listener *sp = NULL; SOCKET sock; - struct sockaddr_in6 addr6_v4mapped; - struct sockaddr_in6 wildcard; - struct sockaddr *allocated_addr = NULL; - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address wildcard; + grpc_resolved_address *allocated_addr = NULL; + grpc_resolved_address sockname_temp; unsigned port_index = 0; grpc_error *error = GRPC_ERROR_NONE; @@ -461,13 +466,14 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, as some previously created listener. */ if (grpc_sockaddr_get_port(addr) == 0) { for (sp = s->head; sp; sp = sp->next) { - sockname_len = sizeof(sockname_temp); + sockname_temp.len = sizeof(struct sockaddr_storage); if (0 == getsockname(sp->socket->socket, - (struct sockaddr *)&sockname_temp, &sockname_len)) { - *port = grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + (struct sockaddr *)sockname_temp.addr, + &sockname_temp.len)) { + *port = grpc_sockaddr_get_port(&sockname_temp); if (*port > 0) { - allocated_addr = gpr_malloc(addr_len); - memcpy(allocated_addr, addr, addr_len); + allocated_addr = gpr_malloc(sizeof(grpc_resolved_address)); + memcpy(allocated_addr, addr, sizeof(grpc_resolved_address)); grpc_sockaddr_set_port(allocated_addr, *port); addr = allocated_addr; break; @@ -477,16 +483,14 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, } if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { - addr = (const struct sockaddr *)&addr6_v4mapped; - addr_len = sizeof(addr6_v4mapped); + addr = &addr6_v4mapped; } /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */ if (grpc_sockaddr_is_wildcard(addr, port)) { grpc_sockaddr_make_wildcard6(*port, &wildcard); - addr = (struct sockaddr *)&wildcard; - addr_len = sizeof(wildcard); + addr = &wildcard; } sock = WSASocket(AF_INET6, SOCK_STREAM, IPPROTO_TCP, NULL, 0, @@ -496,7 +500,7 @@ grpc_error *grpc_tcp_server_add_port(grpc_tcp_server *s, const void *addr, goto done; } - error = add_socket_to_server(s, sock, addr, addr_len, port_index, &sp); + error = add_socket_to_server(s, sock, addr, port_index, &sp); done: gpr_free(allocated_addr); @@ -535,4 +539,4 @@ void grpc_tcp_server_start(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s, void grpc_tcp_server_shutdown_listeners(grpc_exec_ctx *exec_ctx, grpc_tcp_server *s) {} -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/tcp_uv.c b/src/core/lib/iomgr/tcp_uv.c new file mode 100644 index 0000000000..3860fe3e9b --- /dev/null +++ b/src/core/lib/iomgr/tcp_uv.c @@ -0,0 +1,338 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include <limits.h> +#include <string.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/slice_buffer.h> +#include <grpc/support/string_util.h> + +#include "src/core/lib/iomgr/error.h" +#include "src/core/lib/iomgr/network_status_tracker.h" +#include "src/core/lib/iomgr/tcp_uv.h" +#include "src/core/lib/support/string.h" + +int grpc_tcp_trace = 0; + +typedef struct { + grpc_endpoint base; + gpr_refcount refcount; + + uv_tcp_t *handle; + + grpc_closure *read_cb; + grpc_closure *write_cb; + + gpr_slice read_slice; + gpr_slice_buffer *read_slices; + gpr_slice_buffer *write_slices; + uv_buf_t *write_buffers; + + bool shutting_down; + char *peer_string; + grpc_pollset *pollset; +} grpc_tcp; + +static void uv_close_callback(uv_handle_t *handle) { gpr_free(handle); } + +static void tcp_free(grpc_tcp *tcp) { gpr_free(tcp); } + +/*#define GRPC_TCP_REFCOUNT_DEBUG*/ +#ifdef GRPC_TCP_REFCOUNT_DEBUG +#define TCP_UNREF(tcp, reason) tcp_unref((tcp), (reason), __FILE__, __LINE__) +#define TCP_REF(tcp, reason) tcp_ref((tcp), (reason), __FILE__, __LINE__) +static void tcp_unref(grpc_tcp *tcp, const char *reason, const char *file, + int line) { + gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG, "TCP unref %p : %s %d -> %d", tcp, + reason, tcp->refcount.count, tcp->refcount.count - 1); + if (gpr_unref(&tcp->refcount)) { + tcp_free(tcp); + } +} + +static void tcp_ref(grpc_tcp *tcp, const char *reason, const char *file, + int line) { + gpr_log(file, line, GPR_LOG_SEVERITY_DEBUG, "TCP ref %p : %s %d -> %d", tcp, + reason, tcp->refcount.count, tcp->refcount.count + 1); + gpr_ref(&tcp->refcount); +} +#else +#define TCP_UNREF(tcp, reason) tcp_unref((tcp)) +#define TCP_REF(tcp, reason) tcp_ref((tcp)) +static void tcp_unref(grpc_tcp *tcp) { + if (gpr_unref(&tcp->refcount)) { + tcp_free(tcp); + } +} + +static void tcp_ref(grpc_tcp *tcp) { gpr_ref(&tcp->refcount); } +#endif + +static void alloc_uv_buf(uv_handle_t *handle, size_t suggested_size, + uv_buf_t *buf) { + grpc_tcp *tcp = handle->data; + (void)suggested_size; + tcp->read_slice = gpr_slice_malloc(GRPC_TCP_DEFAULT_READ_SLICE_SIZE); + buf->base = (char *)GPR_SLICE_START_PTR(tcp->read_slice); + buf->len = GPR_SLICE_LENGTH(tcp->read_slice); +} + +static void read_callback(uv_stream_t *stream, ssize_t nread, + const uv_buf_t *buf) { + gpr_slice sub; + grpc_error *error; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_tcp *tcp = stream->data; + grpc_closure *cb = tcp->read_cb; + if (nread == 0) { + // Nothing happened. Wait for the next callback + return; + } + TCP_UNREF(tcp, "read"); + tcp->read_cb = NULL; + // TODO(murgatroid99): figure out what the return value here means + uv_read_stop(stream); + if (nread == UV_EOF) { + error = GRPC_ERROR_CREATE("EOF"); + } else if (nread > 0) { + // Successful read + sub = gpr_slice_sub_no_ref(tcp->read_slice, 0, (size_t)nread); + gpr_slice_buffer_add(tcp->read_slices, sub); + error = GRPC_ERROR_NONE; + if (grpc_tcp_trace) { + size_t i; + const char *str = grpc_error_string(error); + gpr_log(GPR_DEBUG, "read: error=%s", str); + grpc_error_free_string(str); + for (i = 0; i < tcp->read_slices->count; i++) { + char *dump = gpr_dump_slice(tcp->read_slices->slices[i], + GPR_DUMP_HEX | GPR_DUMP_ASCII); + gpr_log(GPR_DEBUG, "READ %p (peer=%s): %s", tcp, tcp->peer_string, + dump); + gpr_free(dump); + } + } + } else { + // nread < 0: Error + error = GRPC_ERROR_CREATE("TCP Read failed"); + } + grpc_exec_ctx_sched(&exec_ctx, cb, error, NULL); + grpc_exec_ctx_finish(&exec_ctx); +} + +static void uv_endpoint_read(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + gpr_slice_buffer *read_slices, grpc_closure *cb) { + grpc_tcp *tcp = (grpc_tcp *)ep; + int status; + grpc_error *error = GRPC_ERROR_NONE; + GPR_ASSERT(tcp->read_cb == NULL); + tcp->read_cb = cb; + tcp->read_slices = read_slices; + gpr_slice_buffer_reset_and_unref(read_slices); + TCP_REF(tcp, "read"); + // TODO(murgatroid99): figure out what the return value here means + status = + uv_read_start((uv_stream_t *)tcp->handle, alloc_uv_buf, read_callback); + if (status != 0) { + error = GRPC_ERROR_CREATE("TCP Read failed at start"); + error = + grpc_error_set_str(error, GRPC_ERROR_STR_OS_ERROR, uv_strerror(status)); + grpc_exec_ctx_sched(exec_ctx, cb, error, NULL); + } + if (grpc_tcp_trace) { + const char *str = grpc_error_string(error); + gpr_log(GPR_DEBUG, "Initiating read on %p: error=%s", tcp, str); + } +} + +static void write_callback(uv_write_t *req, int status) { + grpc_tcp *tcp = req->data; + grpc_error *error; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + grpc_closure *cb = tcp->write_cb; + tcp->write_cb = NULL; + TCP_UNREF(tcp, "write"); + if (status == 0) { + error = GRPC_ERROR_NONE; + } else { + error = GRPC_ERROR_CREATE("TCP Write failed"); + } + if (grpc_tcp_trace) { + const char *str = grpc_error_string(error); + gpr_log(GPR_DEBUG, "write complete on %p: error=%s", tcp, str); + } + gpr_free(tcp->write_buffers); + gpr_free(req); + grpc_exec_ctx_sched(&exec_ctx, cb, error, NULL); + grpc_exec_ctx_finish(&exec_ctx); +} + +static void uv_endpoint_write(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + gpr_slice_buffer *write_slices, + grpc_closure *cb) { + grpc_tcp *tcp = (grpc_tcp *)ep; + uv_buf_t *buffers; + unsigned int buffer_count; + unsigned int i; + gpr_slice *slice; + uv_write_t *write_req; + + if (grpc_tcp_trace) { + size_t j; + + for (j = 0; j < write_slices->count; j++) { + char *data = gpr_dump_slice(write_slices->slices[j], + GPR_DUMP_HEX | GPR_DUMP_ASCII); + gpr_log(GPR_DEBUG, "WRITE %p (peer=%s): %s", tcp, tcp->peer_string, data); + gpr_free(data); + } + } + + if (tcp->shutting_down) { + grpc_exec_ctx_sched(exec_ctx, cb, + GRPC_ERROR_CREATE("TCP socket is shutting down"), NULL); + return; + } + + GPR_ASSERT(tcp->write_cb == NULL); + tcp->write_slices = write_slices; + GPR_ASSERT(tcp->write_slices->count <= UINT_MAX); + if (tcp->write_slices->count == 0) { + // No slices means we don't have to do anything, + // and libuv doesn't like empty writes + grpc_exec_ctx_sched(exec_ctx, cb, GRPC_ERROR_NONE, NULL); + return; + } + + tcp->write_cb = cb; + buffer_count = (unsigned int)tcp->write_slices->count; + buffers = gpr_malloc(sizeof(uv_buf_t) * buffer_count); + for (i = 0; i < buffer_count; i++) { + slice = &tcp->write_slices->slices[i]; + buffers[i].base = (char *)GPR_SLICE_START_PTR(*slice); + buffers[i].len = GPR_SLICE_LENGTH(*slice); + } + write_req = gpr_malloc(sizeof(uv_write_t)); + write_req->data = tcp; + TCP_REF(tcp, "write"); + // TODO(murgatroid99): figure out what the return value here means + uv_write(write_req, (uv_stream_t *)tcp->handle, buffers, buffer_count, + write_callback); +} + +static void uv_add_to_pollset(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + grpc_pollset *pollset) { + // No-op. We're ignoring pollsets currently + (void)exec_ctx; + (void)ep; + (void)pollset; + grpc_tcp *tcp = (grpc_tcp *)ep; + tcp->pollset = pollset; +} + +static void uv_add_to_pollset_set(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep, + grpc_pollset_set *pollset) { + // No-op. We're ignoring pollsets currently + (void)exec_ctx; + (void)ep; + (void)pollset; +} + +static void shutdown_callback(uv_shutdown_t *req, int status) { gpr_free(req); } + +static void uv_endpoint_shutdown(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) { + grpc_tcp *tcp = (grpc_tcp *)ep; + if (!tcp->shutting_down) { + tcp->shutting_down = true; + uv_shutdown_t *req = gpr_malloc(sizeof(uv_shutdown_t)); + uv_shutdown(req, (uv_stream_t *)tcp->handle, shutdown_callback); + } +} + +static void uv_destroy(grpc_exec_ctx *exec_ctx, grpc_endpoint *ep) { + grpc_network_status_unregister_endpoint(ep); + grpc_tcp *tcp = (grpc_tcp *)ep; + uv_close((uv_handle_t *)tcp->handle, uv_close_callback); + TCP_UNREF(tcp, "destroy"); +} + +static char *uv_get_peer(grpc_endpoint *ep) { + grpc_tcp *tcp = (grpc_tcp *)ep; + return gpr_strdup(tcp->peer_string); +} + +static grpc_workqueue *uv_get_workqueue(grpc_endpoint *ep) { return NULL; } + +static grpc_endpoint_vtable vtable = {uv_endpoint_read, + uv_endpoint_write, + uv_get_workqueue, + uv_add_to_pollset, + uv_add_to_pollset_set, + uv_endpoint_shutdown, + uv_destroy, + uv_get_peer}; + +grpc_endpoint *grpc_tcp_create(uv_tcp_t *handle, char *peer_string) { + grpc_tcp *tcp = (grpc_tcp *)gpr_malloc(sizeof(grpc_tcp)); + + if (grpc_tcp_trace) { + gpr_log(GPR_DEBUG, "Creating TCP endpoint %p", tcp); + } + + /* Disable Nagle's Algorithm */ + uv_tcp_nodelay(handle, 1); + + memset(tcp, 0, sizeof(grpc_tcp)); + tcp->base.vtable = &vtable; + tcp->handle = handle; + handle->data = tcp; + gpr_ref_init(&tcp->refcount, 1); + tcp->peer_string = gpr_strdup(peer_string); + tcp->shutting_down = false; + /* Tell network status tracking code about the new endpoint */ + grpc_network_status_register_endpoint(&tcp->base); + +#ifndef GRPC_UV_TCP_HOLD_LOOP + uv_unref((uv_handle_t *)handle); +#endif + + return &tcp->base; +} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/tcp_uv.h b/src/core/lib/iomgr/tcp_uv.h new file mode 100644 index 0000000000..eed41151ea --- /dev/null +++ b/src/core/lib/iomgr/tcp_uv.h @@ -0,0 +1,57 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_TCP_UV_H +#define GRPC_CORE_LIB_IOMGR_TCP_UV_H +/* + Low level TCP "bottom half" implementation, for use by transports built on + top of a TCP connection. + + Note that this file does not (yet) include APIs for creating the socket in + the first place. + + All calls passing slice transfer ownership of a slice refcount unless + otherwise specified. +*/ + +#include "src/core/lib/iomgr/endpoint.h" + +#include <uv.h> + +extern int grpc_tcp_trace; + +#define GRPC_TCP_DEFAULT_READ_SLICE_SIZE 8192 + +grpc_endpoint *grpc_tcp_create(uv_tcp_t *handle, char *peer_string); + +#endif /* GRPC_CORE_LIB_IOMGR_TCP_UV_H */ diff --git a/src/core/lib/iomgr/tcp_windows.c b/src/core/lib/iomgr/tcp_windows.c index 448a72671c..a5f508a2c3 100644 --- a/src/core/lib/iomgr/tcp_windows.c +++ b/src/core/lib/iomgr/tcp_windows.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_WINSOCK_SOCKET +#ifdef GRPC_WINSOCK_SOCKET #include <limits.h> @@ -417,4 +417,4 @@ grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket, char *peer_string) { return &tcp->base; } -#endif /* GPR_WINSOCK_SOCKET */ +#endif /* GRPC_WINSOCK_SOCKET */ diff --git a/src/core/lib/iomgr/timer.h b/src/core/lib/iomgr/timer.h index 5a9a177963..20fe98c4a7 100644 --- a/src/core/lib/iomgr/timer.h +++ b/src/core/lib/iomgr/timer.h @@ -34,19 +34,20 @@ #ifndef GRPC_CORE_LIB_IOMGR_TIMER_H #define GRPC_CORE_LIB_IOMGR_TIMER_H +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV +#include "src/core/lib/iomgr/timer_uv.h" +#else +#include "src/core/lib/iomgr/timer_generic.h" +#endif /* GRPC_UV */ + #include <grpc/support/port_platform.h> #include <grpc/support/time.h> #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr.h" -typedef struct grpc_timer { - gpr_timespec deadline; - uint32_t heap_index; /* INVALID_HEAP_INDEX if not in heap */ - int triggered; - struct grpc_timer *next; - struct grpc_timer *prev; - grpc_closure closure; -} grpc_timer; +typedef struct grpc_timer grpc_timer; /* Initialize *timer. When expired or canceled, timer_cb will be called with *timer_cb_arg and error set to indicate if it expired (GRPC_ERROR_NONE) or diff --git a/src/core/lib/iomgr/timer.c b/src/core/lib/iomgr/timer_generic.c index 9975fa1671..00058f9d86 100644 --- a/src/core/lib/iomgr/timer.c +++ b/src/core/lib/iomgr/timer_generic.c @@ -31,6 +31,10 @@ * */ +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_TIMER_USE_GENERIC + #include "src/core/lib/iomgr/timer.h" #include <grpc/support/log.h> @@ -382,3 +386,5 @@ bool grpc_timer_check(grpc_exec_ctx *exec_ctx, gpr_timespec now, ? GRPC_ERROR_NONE : GRPC_ERROR_CREATE("Shutting down timer system")); } + +#endif /* GRPC_TIMER_USE_GENERIC */ diff --git a/src/core/lib/iomgr/timer_generic.h b/src/core/lib/iomgr/timer_generic.h new file mode 100644 index 0000000000..e4494adb5f --- /dev/null +++ b/src/core/lib/iomgr/timer_generic.h @@ -0,0 +1,49 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H +#define GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H + +#include <grpc/support/time.h> +#include "src/core/lib/iomgr/exec_ctx.h" + +struct grpc_timer { + gpr_timespec deadline; + uint32_t heap_index; /* INVALID_HEAP_INDEX if not in heap */ + int triggered; + struct grpc_timer *next; + struct grpc_timer *prev; + grpc_closure closure; +}; + +#endif /* GRPC_CORE_LIB_IOMGR_TIMER_GENERIC_H */ diff --git a/src/core/lib/iomgr/timer_heap.c b/src/core/lib/iomgr/timer_heap.c index 2ad9bb9cd2..f736d335e6 100644 --- a/src/core/lib/iomgr/timer_heap.c +++ b/src/core/lib/iomgr/timer_heap.c @@ -31,6 +31,10 @@ * */ +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_TIMER_USE_GENERIC + #include "src/core/lib/iomgr/timer_heap.h" #include <string.h> @@ -144,3 +148,5 @@ grpc_timer *grpc_timer_heap_top(grpc_timer_heap *heap) { void grpc_timer_heap_pop(grpc_timer_heap *heap) { grpc_timer_heap_remove(heap, grpc_timer_heap_top(heap)); } + +#endif /* GRPC_TIMER_USE_GENERIC */ diff --git a/src/core/lib/iomgr/timer_uv.c b/src/core/lib/iomgr/timer_uv.c new file mode 100644 index 0000000000..cfcb89268b --- /dev/null +++ b/src/core/lib/iomgr/timer_uv.c @@ -0,0 +1,99 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#if GRPC_UV + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "src/core/lib/iomgr/timer.h" + +#include <uv.h> + +static void timer_close_callback(uv_handle_t *handle) { gpr_free(handle); } + +static void stop_uv_timer(uv_timer_t *handle) { + uv_timer_stop(handle); + uv_unref((uv_handle_t *)handle); + uv_close((uv_handle_t *)handle, timer_close_callback); +} + +void run_expired_timer(uv_timer_t *handle) { + grpc_timer *timer = (grpc_timer *)handle->data; + grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; + GPR_ASSERT(!timer->triggered); + timer->triggered = 1; + grpc_exec_ctx_sched(&exec_ctx, &timer->closure, GRPC_ERROR_NONE, NULL); + stop_uv_timer(handle); + grpc_exec_ctx_finish(&exec_ctx); +} + +void grpc_timer_init(grpc_exec_ctx *exec_ctx, grpc_timer *timer, + gpr_timespec deadline, grpc_iomgr_cb_func timer_cb, + void *timer_cb_arg, gpr_timespec now) { + uint64_t timeout; + uv_timer_t *uv_timer; + grpc_closure_init(&timer->closure, timer_cb, timer_cb_arg); + if (gpr_time_cmp(deadline, now) <= 0) { + timer->triggered = 1; + grpc_exec_ctx_sched(exec_ctx, &timer->closure, GRPC_ERROR_NONE, NULL); + return; + } + timer->triggered = 0; + timeout = (uint64_t)gpr_time_to_millis(gpr_time_sub(deadline, now)); + uv_timer = gpr_malloc(sizeof(uv_timer_t)); + uv_timer_init(uv_default_loop(), uv_timer); + uv_timer->data = timer; + timer->uv_timer = uv_timer; + uv_timer_start(uv_timer, run_expired_timer, timeout, 0); +} + +void grpc_timer_cancel(grpc_exec_ctx *exec_ctx, grpc_timer *timer) { + if (!timer->triggered) { + timer->triggered = 1; + grpc_exec_ctx_sched(exec_ctx, &timer->closure, GRPC_ERROR_CANCELLED, NULL); + stop_uv_timer((uv_timer_t *)timer->uv_timer); + } +} + +bool grpc_timer_check(grpc_exec_ctx *exec_ctx, gpr_timespec now, + gpr_timespec *next) { + return false; +} + +void grpc_timer_list_init(gpr_timespec now) {} +void grpc_timer_list_shutdown(grpc_exec_ctx *exec_ctx) {} + +#endif /* GRPC_UV */ diff --git a/src/core/lib/iomgr/timer_uv.h b/src/core/lib/iomgr/timer_uv.h new file mode 100644 index 0000000000..3de383ebd5 --- /dev/null +++ b/src/core/lib/iomgr/timer_uv.h @@ -0,0 +1,47 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_TIMER_UV_H +#define GRPC_CORE_LIB_IOMGR_TIMER_UV_H + +#include "src/core/lib/iomgr/exec_ctx.h" + +struct grpc_timer { + grpc_closure closure; + /* This is actually a uv_timer_t*, but we want to keep platform-specific + types out of headers */ + void *uv_timer; + int triggered; +}; + +#endif /* GRPC_CORE_LIB_IOMGR_TIMER_UV_H */ diff --git a/src/core/lib/iomgr/udp_server.c b/src/core/lib/iomgr/udp_server.c index 20eae7cbdd..fd0c7a0f9d 100644 --- a/src/core/lib/iomgr/udp_server.c +++ b/src/core/lib/iomgr/udp_server.c @@ -36,9 +36,9 @@ #define _GNU_SOURCE #endif -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/udp_server.h" @@ -62,6 +62,7 @@ #include "src/core/lib/iomgr/error.h" #include "src/core/lib/iomgr/ev_posix.h" #include "src/core/lib/iomgr/resolve_address.h" +#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/iomgr/socket_utils_posix.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" @@ -73,11 +74,7 @@ struct grpc_udp_listener { int fd; grpc_fd *emfd; grpc_udp_server *server; - union { - uint8_t untyped[GRPC_MAX_SOCKADDR_SIZE]; - struct sockaddr sockaddr; - } addr; - size_t addr_len; + grpc_resolved_address addr; grpc_closure read_closure; grpc_closure destroyed_closure; grpc_udp_server_read_cb read_cb; @@ -171,7 +168,7 @@ static void deactivated_all_ports(grpc_exec_ctx *exec_ctx, grpc_udp_server *s) { if (s->head) { grpc_udp_listener *sp; for (sp = s->head; sp; sp = sp->next) { - grpc_unlink_if_unix_domain_socket(&sp->addr.sockaddr); + grpc_unlink_if_unix_domain_socket(&sp->addr); sp->destroyed_closure.cb = destroyed_port; sp->destroyed_closure.cb_arg = s; @@ -216,10 +213,9 @@ void grpc_udp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_udp_server *s, } /* Prepare a recently-created socket for listening. */ -static int prepare_socket(int fd, const struct sockaddr *addr, - size_t addr_len) { - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; +static int prepare_socket(int fd, const grpc_resolved_address *addr) { + grpc_resolved_address sockname_temp; + struct sockaddr *addr_ptr = (struct sockaddr *)addr->addr; /* Set send/receive socket buffers to 1 MB */ int buffer_size_bytes = 1024 * 1024; @@ -239,15 +235,15 @@ static int prepare_socket(int fd, const struct sockaddr *addr, if (grpc_set_socket_ip_pktinfo_if_possible(fd) != GRPC_ERROR_NONE) { gpr_log(GPR_ERROR, "Unable to set ip_pktinfo."); goto error; - } else if (addr->sa_family == AF_INET6) { + } else if (addr_ptr->sa_family == AF_INET6) { if (grpc_set_socket_ipv6_recvpktinfo_if_possible(fd) != GRPC_ERROR_NONE) { gpr_log(GPR_ERROR, "Unable to set ipv6_recvpktinfo."); goto error; } } - GPR_ASSERT(addr_len < ~(socklen_t)0); - if (bind(fd, addr, (socklen_t)addr_len) < 0) { + GPR_ASSERT(addr->len < ~(socklen_t)0); + if (bind(fd, (struct sockaddr *)addr, (socklen_t)addr->len) < 0) { char *addr_str; grpc_sockaddr_to_string(&addr_str, addr, 0); gpr_log(GPR_ERROR, "bind addr=%s: %s", addr_str, strerror(errno)); @@ -255,8 +251,10 @@ static int prepare_socket(int fd, const struct sockaddr *addr, goto error; } - sockname_len = sizeof(sockname_temp); - if (getsockname(fd, (struct sockaddr *)&sockname_temp, &sockname_len) < 0) { + sockname_temp.len = sizeof(struct sockaddr_storage); + + if (getsockname(fd, (struct sockaddr *)sockname_temp.addr, + (socklen_t *)&sockname_temp.len) < 0) { goto error; } @@ -272,7 +270,7 @@ static int prepare_socket(int fd, const struct sockaddr *addr, goto error; } - return grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + return grpc_sockaddr_get_port(&sockname_temp); error: if (fd >= 0) { @@ -306,7 +304,7 @@ static void on_read(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { } static int add_socket_to_server(grpc_udp_server *s, int fd, - const struct sockaddr *addr, size_t addr_len, + const grpc_resolved_address *addr, grpc_udp_server_read_cb read_cb, grpc_udp_server_orphan_cb orphan_cb) { grpc_udp_listener *sp; @@ -314,9 +312,9 @@ static int add_socket_to_server(grpc_udp_server *s, int fd, char *addr_str; char *name; - port = prepare_socket(fd, addr, addr_len); + port = prepare_socket(fd, addr); if (port >= 0) { - grpc_sockaddr_to_string(&addr_str, (struct sockaddr *)&addr, 1); + grpc_sockaddr_to_string(&addr_str, addr, 1); gpr_asprintf(&name, "udp-server-listener:%s", addr_str); gpr_free(addr_str); gpr_mu_lock(&s->mu); @@ -332,8 +330,7 @@ static int add_socket_to_server(grpc_udp_server *s, int fd, sp->server = s; sp->fd = fd; sp->emfd = grpc_fd_create(fd, name); - memcpy(sp->addr.untyped, addr, addr_len); - sp->addr_len = addr_len; + memcpy(&sp->addr, addr, sizeof(grpc_resolved_address)); sp->read_cb = read_cb; sp->orphan_cb = orphan_cb; GPR_ASSERT(sp->emfd); @@ -344,34 +341,34 @@ static int add_socket_to_server(grpc_udp_server *s, int fd, return port; } -int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, - size_t addr_len, grpc_udp_server_read_cb read_cb, +int grpc_udp_server_add_port(grpc_udp_server *s, + const grpc_resolved_address *addr, + grpc_udp_server_read_cb read_cb, grpc_udp_server_orphan_cb orphan_cb) { grpc_udp_listener *sp; int allocated_port1 = -1; int allocated_port2 = -1; int fd; grpc_dualstack_mode dsmode; - struct sockaddr_in6 addr6_v4mapped; - struct sockaddr_in wild4; - struct sockaddr_in6 wild6; - struct sockaddr_in addr4_copy; - struct sockaddr *allocated_addr = NULL; - struct sockaddr_storage sockname_temp; - socklen_t sockname_len; + grpc_resolved_address addr6_v4mapped; + grpc_resolved_address wild4; + grpc_resolved_address wild6; + grpc_resolved_address addr4_copy; + grpc_resolved_address *allocated_addr = NULL; + grpc_resolved_address sockname_temp; int port; /* Check if this is a wildcard port, and if so, try to keep the port the same as some previously created listener. */ if (grpc_sockaddr_get_port(addr) == 0) { for (sp = s->head; sp; sp = sp->next) { - sockname_len = sizeof(sockname_temp); - if (0 == getsockname(sp->fd, (struct sockaddr *)&sockname_temp, - &sockname_len)) { - port = grpc_sockaddr_get_port((struct sockaddr *)&sockname_temp); + sockname_temp.len = sizeof(struct sockaddr_storage); + if (0 == getsockname(sp->fd, (struct sockaddr *)sockname_temp.addr, + (socklen_t *)&sockname_temp.len)) { + port = grpc_sockaddr_get_port(&sockname_temp); if (port > 0) { - allocated_addr = gpr_malloc(addr_len); - memcpy(allocated_addr, addr, addr_len); + allocated_addr = gpr_malloc(sizeof(grpc_resolved_address)); + memcpy(allocated_addr, addr, sizeof(grpc_resolved_address)); grpc_sockaddr_set_port(allocated_addr, port); addr = allocated_addr; break; @@ -381,8 +378,7 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, } if (grpc_sockaddr_to_v4mapped(addr, &addr6_v4mapped)) { - addr = (const struct sockaddr *)&addr6_v4mapped; - addr_len = sizeof(addr6_v4mapped); + addr = &addr6_v4mapped; } /* Treat :: or 0.0.0.0 as a family-agnostic wildcard. */ @@ -390,22 +386,19 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, grpc_sockaddr_make_wildcards(port, &wild4, &wild6); /* Try listening on IPv6 first. */ - addr = (struct sockaddr *)&wild6; - addr_len = sizeof(wild6); + addr = &wild6; // TODO(rjshade): Test and propagate the returned grpc_error*: grpc_create_dualstack_socket(addr, SOCK_DGRAM, IPPROTO_UDP, &dsmode, &fd); - allocated_port1 = - add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb); + allocated_port1 = add_socket_to_server(s, fd, addr, read_cb, orphan_cb); if (fd >= 0 && dsmode == GRPC_DSMODE_DUALSTACK) { goto done; } /* If we didn't get a dualstack socket, also listen on 0.0.0.0. */ if (port == 0 && allocated_port1 > 0) { - grpc_sockaddr_set_port((struct sockaddr *)&wild4, allocated_port1); + grpc_sockaddr_set_port(&wild4, allocated_port1); } - addr = (struct sockaddr *)&wild4; - addr_len = sizeof(wild4); + addr = &wild4; } // TODO(rjshade): Test and propagate the returned grpc_error*: @@ -415,11 +408,9 @@ int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, } if (dsmode == GRPC_DSMODE_IPV4 && grpc_sockaddr_is_v4mapped(addr, &addr4_copy)) { - addr = (struct sockaddr *)&addr4_copy; - addr_len = sizeof(addr4_copy); + addr = &addr4_copy; } - allocated_port2 = - add_socket_to_server(s, fd, addr, addr_len, read_cb, orphan_cb); + allocated_port2 = add_socket_to_server(s, fd, addr, read_cb, orphan_cb); done: gpr_free(allocated_addr); diff --git a/src/core/lib/iomgr/udp_server.h b/src/core/lib/iomgr/udp_server.h index 70d0f19454..f3c466a031 100644 --- a/src/core/lib/iomgr/udp_server.h +++ b/src/core/lib/iomgr/udp_server.h @@ -36,6 +36,7 @@ #include "src/core/lib/iomgr/endpoint.h" #include "src/core/lib/iomgr/ev_posix.h" +#include "src/core/lib/iomgr/resolve_address.h" /* Forward decl of struct grpc_server */ /* This is not typedef'ed to avoid a typedef-redefinition error */ @@ -71,8 +72,9 @@ int grpc_udp_server_get_fd(grpc_udp_server *s, unsigned port_index); /* TODO(ctiller): deprecate this, and make grpc_udp_server_add_ports to handle all of the multiple socket port matching logic in one place */ -int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, - size_t addr_len, grpc_udp_server_read_cb read_cb, +int grpc_udp_server_add_port(grpc_udp_server *s, + const grpc_resolved_address *addr, + grpc_udp_server_read_cb read_cb, grpc_udp_server_orphan_cb orphan_cb); void grpc_udp_server_destroy(grpc_exec_ctx *exec_ctx, grpc_udp_server *server, diff --git a/src/core/lib/iomgr/unix_sockets_posix.c b/src/core/lib/iomgr/unix_sockets_posix.c index 0e7670e5a5..030acd9811 100644 --- a/src/core/lib/iomgr/unix_sockets_posix.c +++ b/src/core/lib/iomgr/unix_sockets_posix.c @@ -30,16 +30,19 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ +#include "src/core/lib/iomgr/port.h" -#include "src/core/lib/iomgr/unix_sockets_posix.h" +#ifdef GRPC_HAVE_UNIX_SOCKET -#ifdef GPR_HAVE_UNIX_SOCKET +#include "src/core/lib/iomgr/sockaddr.h" #include <string.h> #include <sys/stat.h> #include <sys/types.h> #include <sys/un.h> +#include "src/core/lib/iomgr/unix_sockets_posix.h" + #include <grpc/support/alloc.h> #include <grpc/support/log.h> @@ -61,15 +64,18 @@ grpc_error *grpc_resolve_unix_domain_address(const char *name, return GRPC_ERROR_NONE; } -int grpc_is_unix_socket(const struct sockaddr *addr) { +int grpc_is_unix_socket(const grpc_resolved_address *resolved_addr) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; return addr->sa_family == AF_UNIX; } -void grpc_unlink_if_unix_domain_socket(const struct sockaddr *addr) { +void grpc_unlink_if_unix_domain_socket( + const grpc_resolved_address *resolved_addr) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; if (addr->sa_family != AF_UNIX) { return; } - struct sockaddr_un *un = (struct sockaddr_un *)addr; + struct sockaddr_un *un = (struct sockaddr_un *)resolved_addr->addr; struct stat st; if (stat(un->sun_path, &st) == 0 && (st.st_mode & S_IFMT) == S_IFSOCK) { @@ -77,7 +83,9 @@ void grpc_unlink_if_unix_domain_socket(const struct sockaddr *addr) { } } -char *grpc_sockaddr_to_uri_unix_if_possible(const struct sockaddr *addr) { +char *grpc_sockaddr_to_uri_unix_if_possible( + const grpc_resolved_address *resolved_addr) { + const struct sockaddr *addr = (const struct sockaddr *)resolved_addr->addr; if (addr->sa_family != AF_UNIX) { return NULL; } diff --git a/src/core/lib/iomgr/unix_sockets_posix.h b/src/core/lib/iomgr/unix_sockets_posix.h index db0516d945..21afd3aa15 100644 --- a/src/core/lib/iomgr/unix_sockets_posix.h +++ b/src/core/lib/iomgr/unix_sockets_posix.h @@ -34,22 +34,23 @@ #ifndef GRPC_CORE_LIB_IOMGR_UNIX_SOCKETS_POSIX_H #define GRPC_CORE_LIB_IOMGR_UNIX_SOCKETS_POSIX_H -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" #include <grpc/support/string_util.h> #include "src/core/lib/iomgr/resolve_address.h" -#include "src/core/lib/iomgr/sockaddr.h" void grpc_create_socketpair_if_unix(int sv[2]); grpc_error *grpc_resolve_unix_domain_address( const char *name, grpc_resolved_addresses **addresses); -int grpc_is_unix_socket(const struct sockaddr *addr); +int grpc_is_unix_socket(const grpc_resolved_address *resolved_addr); -void grpc_unlink_if_unix_domain_socket(const struct sockaddr *addr); +void grpc_unlink_if_unix_domain_socket( + const grpc_resolved_address *resolved_addr); -char *grpc_sockaddr_to_uri_unix_if_possible(const struct sockaddr *addr); +char *grpc_sockaddr_to_uri_unix_if_possible( + const grpc_resolved_address *resolved_addr); #endif /* GRPC_CORE_LIB_IOMGR_UNIX_SOCKETS_POSIX_H */ diff --git a/src/core/lib/iomgr/unix_sockets_posix_noop.c b/src/core/lib/iomgr/unix_sockets_posix_noop.c index 56b47c3daf..1daf5152c1 100644 --- a/src/core/lib/iomgr/unix_sockets_posix_noop.c +++ b/src/core/lib/iomgr/unix_sockets_posix_noop.c @@ -33,7 +33,7 @@ #include "src/core/lib/iomgr/unix_sockets_posix.h" -#ifndef GPR_HAVE_UNIX_SOCKET +#ifndef GRPC_HAVE_UNIX_SOCKET #include <grpc/support/log.h> @@ -50,11 +50,11 @@ grpc_error *grpc_resolve_unix_domain_address( return GRPC_ERROR_CREATE("Unix domain sockets are not supported on Windows"); } -int grpc_is_unix_socket(const struct sockaddr *addr) { return false; } +int grpc_is_unix_socket(const grpc_resolved_address *addr) { return false; } -void grpc_unlink_if_unix_domain_socket(const struct sockaddr *addr) {} +void grpc_unlink_if_unix_domain_socket(const grpc_resolved_address *addr) {} -char *grpc_sockaddr_to_uri_unix_if_possible(const struct sockaddr *addr) { +char *grpc_sockaddr_to_uri_unix_if_possible(const grpc_resolved_address *addr) { return NULL; } diff --git a/src/core/lib/iomgr/wakeup_fd_cv.c b/src/core/lib/iomgr/wakeup_fd_cv.c index b4165208ed..da4c2870cd 100644 --- a/src/core/lib/iomgr/wakeup_fd_cv.c +++ b/src/core/lib/iomgr/wakeup_fd_cv.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_WAKEUP_FD +#ifdef GRPC_POSIX_WAKEUP_FD #include "src/core/lib/iomgr/wakeup_fd_cv.h" @@ -115,4 +115,4 @@ const grpc_wakeup_fd_vtable grpc_cv_wakeup_fd_vtable = { cv_fd_init, cv_fd_consume, cv_fd_wakeup, cv_fd_destroy, cv_check_availability}; -#endif /* GPR_POSIX_WAKUP_FD */ +#endif /* GRPC_POSIX_WAKUP_FD */ diff --git a/src/core/lib/iomgr/wakeup_fd_eventfd.c b/src/core/lib/iomgr/wakeup_fd_eventfd.c index 95f6102330..373e21d3e1 100644 --- a/src/core/lib/iomgr/wakeup_fd_eventfd.c +++ b/src/core/lib/iomgr/wakeup_fd_eventfd.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_LINUX_EVENTFD +#ifdef GRPC_LINUX_EVENTFD #include <errno.h> #include <sys/eventfd.h> @@ -94,4 +94,4 @@ const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable = { eventfd_create, eventfd_consume, eventfd_wakeup, eventfd_destroy, eventfd_check_availability}; -#endif /* GPR_LINUX_EVENTFD */ +#endif /* GRPC_LINUX_EVENTFD */ diff --git a/src/core/lib/iomgr/wakeup_fd_nospecial.c b/src/core/lib/iomgr/wakeup_fd_nospecial.c index cb2f707dc5..611bced029 100644 --- a/src/core/lib/iomgr/wakeup_fd_nospecial.c +++ b/src/core/lib/iomgr/wakeup_fd_nospecial.c @@ -36,9 +36,9 @@ * systems without anything better than pipe. */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_NO_SPECIAL_WAKEUP_FD +#ifdef GRPC_POSIX_NO_SPECIAL_WAKEUP_FD #include <stddef.h> #include "src/core/lib/iomgr/wakeup_fd_posix.h" @@ -48,4 +48,4 @@ static int check_availability_invalid(void) { return 0; } const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable = { NULL, NULL, NULL, NULL, check_availability_invalid}; -#endif /* GPR_POSIX_NO_SPECIAL_WAKEUP_FD */ +#endif /* GRPC_POSIX_NO_SPECIAL_WAKEUP_FD */ diff --git a/src/core/lib/iomgr/wakeup_fd_pipe.c b/src/core/lib/iomgr/wakeup_fd_pipe.c index d0ea216aa0..183f0eb930 100644 --- a/src/core/lib/iomgr/wakeup_fd_pipe.c +++ b/src/core/lib/iomgr/wakeup_fd_pipe.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_WAKEUP_FD +#ifdef GRPC_POSIX_WAKEUP_FD #include "src/core/lib/iomgr/wakeup_fd_posix.h" diff --git a/src/core/lib/iomgr/wakeup_fd_posix.c b/src/core/lib/iomgr/wakeup_fd_posix.c index 5c894bef37..85526402bd 100644 --- a/src/core/lib/iomgr/wakeup_fd_posix.c +++ b/src/core/lib/iomgr/wakeup_fd_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" -#ifdef GPR_POSIX_WAKEUP_FD +#ifdef GRPC_POSIX_WAKEUP_FD #include <stddef.h> #include "src/core/lib/iomgr/wakeup_fd_cv.h" @@ -98,4 +98,4 @@ void grpc_wakeup_fd_destroy(grpc_wakeup_fd *fd_info) { } } -#endif /* GPR_POSIX_WAKEUP_FD */ +#endif /* GRPC_POSIX_WAKEUP_FD */ diff --git a/src/core/lib/iomgr/workqueue.h b/src/core/lib/iomgr/workqueue.h index 5b96d1d851..73d9849843 100644 --- a/src/core/lib/iomgr/workqueue.h +++ b/src/core/lib/iomgr/workqueue.h @@ -39,6 +39,7 @@ #include "src/core/lib/iomgr/iomgr.h" #include "src/core/lib/iomgr/pollset.h" #include "src/core/lib/iomgr/pollset_set.h" +#include "src/core/lib/iomgr/port.h" #ifdef GPR_WINDOWS #include "src/core/lib/iomgr/workqueue_windows.h" diff --git a/src/core/lib/iomgr/workqueue_uv.c b/src/core/lib/iomgr/workqueue_uv.c new file mode 100644 index 0000000000..e58ca476cc --- /dev/null +++ b/src/core/lib/iomgr/workqueue_uv.c @@ -0,0 +1,66 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_UV + +#include "src/core/lib/iomgr/workqueue.h" + +// Minimal implementation of grpc_workqueue for libuv +// Works by directly enqueuing workqueue items onto the current execution +// context, which is at least correct, if not performant or in the spirit of +// workqueues. + +void grpc_workqueue_flush(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue) {} + +#ifdef GRPC_WORKQUEUE_REFCOUNT_DEBUG +grpc_workqueue *grpc_workqueue_ref(grpc_workqueue *workqueue, const char *file, + int line, const char *reason) { + return workqueue; +} +void grpc_workqueue_unref(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue, + const char *file, int line, const char *reason) {} +#else +grpc_workqueue *grpc_workqueue_ref(grpc_workqueue *workqueue) { + return workqueue; +} +void grpc_workqueue_unref(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue) {} +#endif + +void grpc_workqueue_enqueue(grpc_exec_ctx *exec_ctx, grpc_workqueue *workqueue, + grpc_closure *closure, grpc_error *error) { + grpc_exec_ctx_sched(exec_ctx, closure, error, NULL); +} + +#endif /* GPR_UV */ diff --git a/src/core/lib/iomgr/workqueue_uv.h b/src/core/lib/iomgr/workqueue_uv.h new file mode 100644 index 0000000000..be3f8e4d93 --- /dev/null +++ b/src/core/lib/iomgr/workqueue_uv.h @@ -0,0 +1,37 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_CORE_LIB_IOMGR_WORKQUEUE_UV_H +#define GRPC_CORE_LIB_IOMGR_WORKQUEUE_UV_H + +#endif /* GRPC_CORE_LIB_IOMGR_WORKQUEUE_UV_H */ diff --git a/src/core/lib/security/credentials/google_default/credentials_posix.c b/src/core/lib/security/credentials/google_default/credentials_generic.c index 42c9d7f997..d13d8c5200 100644 --- a/src/core/lib/security/credentials/google_default/credentials_posix.c +++ b/src/core/lib/security/credentials/google_default/credentials_generic.c @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,10 +31,6 @@ * */ -#include <grpc/support/port_platform.h> - -#ifdef GPR_POSIX_FILE - #include "src/core/lib/security/credentials/google_default/google_default_credentials.h" #include <grpc/support/alloc.h> @@ -46,16 +42,13 @@ char *grpc_get_well_known_google_credentials_file_path_impl(void) { char *result = NULL; - char *home = gpr_getenv("HOME"); - if (home == NULL) { - gpr_log(GPR_ERROR, "Could not get HOME environment variable."); + char *base = gpr_getenv(GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR); + if (base == NULL) { + gpr_log(GPR_ERROR, "Could not get " GRPC_GOOGLE_CREDENTIALS_ENV_VAR + " environment variable."); return NULL; } - gpr_asprintf(&result, "%s/.config/%s/%s", home, - GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY, - GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE); - gpr_free(home); + gpr_asprintf(&result, "%s/%s", base, GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX); + gpr_free(base); return result; } - -#endif /* GPR_POSIX_FILE */ diff --git a/src/core/lib/security/credentials/google_default/google_default_credentials.h b/src/core/lib/security/credentials/google_default/google_default_credentials.h index fac4377e2c..b55546ded0 100644 --- a/src/core/lib/security/credentials/google_default/google_default_credentials.h +++ b/src/core/lib/security/credentials/google_default/google_default_credentials.h @@ -34,12 +34,26 @@ #ifndef GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H #define GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H +#include <grpc/support/port_platform.h> + #include "src/core/lib/security/credentials/credentials.h" #define GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY "gcloud" #define GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE \ "application_default_credentials.json" +#ifdef GPR_WINDOWS +#define GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR "APPDATA" +#define GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX \ + GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY \ + "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE +#else +#define GRPC_GOOGLE_CREDENTIALS_PATH_ENV_VAR "HOME" +#define GRPC_GOOGLE_CREDENTIALS_PATH_SUFFIX \ + ".config/" GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY \ + "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE +#endif + void grpc_flush_cached_google_default_credentials(void); #endif /* GRPC_CORE_LIB_SECURITY_CREDENTIALS_GOOGLE_DEFAULT_GOOGLE_DEFAULT_CREDENTIALS_H \ diff --git a/src/core/lib/support/thd.c b/src/core/lib/support/thd.c index 41daeb5d0e..40f53a18e5 100644 --- a/src/core/lib/support/thd.c +++ b/src/core/lib/support/thd.c @@ -33,7 +33,7 @@ /* Posix implementation for gpr threads. */ -#include <memory.h> +#include <string.h> #include <grpc/support/thd.h> diff --git a/src/core/lib/surface/call.c b/src/core/lib/surface/call.c index 30559304c6..02a5de0857 100644 --- a/src/core/lib/surface/call.c +++ b/src/core/lib/surface/call.c @@ -30,6 +30,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + #include <assert.h> #include <limits.h> #include <stdio.h> diff --git a/src/core/ext/client_channel/method_config.c b/src/core/lib/transport/method_config.c index 4313ad5e0e..57d97700bf 100644 --- a/src/core/ext/client_channel/method_config.c +++ b/src/core/lib/transport/method_config.c @@ -29,7 +29,7 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -#include "src/core/ext/client_channel/method_config.h" +#include "src/core/lib/transport/method_config.h" #include <string.h> diff --git a/src/core/ext/client_channel/method_config.h b/src/core/lib/transport/method_config.h index 4cbeee5625..58fedd9436 100644 --- a/src/core/ext/client_channel/method_config.h +++ b/src/core/lib/transport/method_config.h @@ -29,8 +29,8 @@ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // -#ifndef GRPC_CORE_EXT_CLIENT_CHANNEL_METHOD_CONFIG_H -#define GRPC_CORE_EXT_CLIENT_CHANNEL_METHOD_CONFIG_H +#ifndef GRPC_CORE_LIB_TRANSPORT_METHOD_CONFIG_H +#define GRPC_CORE_LIB_TRANSPORT_METHOD_CONFIG_H #include <stdbool.h> @@ -133,4 +133,4 @@ grpc_mdstr_hash_table* grpc_method_config_table_convert( void* (*convert_value)(const grpc_method_config* method_config), const grpc_mdstr_hash_table_vtable* vtable); -#endif /* GRPC_CORE_EXT_CLIENT_CHANNEL_METHOD_CONFIG_H */ +#endif /* GRPC_CORE_LIB_TRANSPORT_METHOD_CONFIG_H */ diff --git a/src/core/lib/tsi/ssl_transport_security.c b/src/core/lib/tsi/ssl_transport_security.c index e91c6316e7..749b46e19f 100644 --- a/src/core/lib/tsi/ssl_transport_security.c +++ b/src/core/lib/tsi/ssl_transport_security.c @@ -31,6 +31,9 @@ * */ +#include "src/core/lib/iomgr/sockaddr.h" + +#include "src/core/lib/iomgr/socket_utils.h" #include "src/core/lib/tsi/ssl_transport_security.h" #include <grpc/support/port_platform.h> @@ -38,13 +41,6 @@ #include <limits.h> #include <string.h> -/* TODO(jboeuf): refactor inet_ntop into a portability header. */ -#ifdef GPR_WINSOCK_SOCKET -#include <ws2tcpip.h> -#else -#include <arpa/inet.h> -#endif - #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/sync.h> @@ -353,8 +349,8 @@ static tsi_result add_subject_alt_names_properties_to_peer( result = TSI_INTERNAL_ERROR; break; } - const char *name = inet_ntop(af, subject_alt_name->d.iPAddress->data, - ntop_buf, INET6_ADDRSTRLEN); + const char *name = grpc_inet_ntop(af, subject_alt_name->d.iPAddress->data, + ntop_buf, INET6_ADDRSTRLEN); if (name == NULL) { gpr_log(GPR_ERROR, "Could not get IP string from asn1 octet."); result = TSI_INTERNAL_ERROR; diff --git a/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs b/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs index 722b51f470..c5bca444b4 100644 --- a/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs +++ b/src/csharp/Grpc.Auth/GoogleAuthInterceptors.cs @@ -76,7 +76,7 @@ namespace Grpc.Auth return new AsyncAuthInterceptor((context, metadata) => { metadata.Add(CreateBearerTokenHeader(accessToken)); - return Task.FromResult<object>(null); + return TaskUtils.CompletedTask; }); } diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj index e75dc9faf1..d315e6d667 100644 --- a/src/csharp/Grpc.Core/Grpc.Core.csproj +++ b/src/csharp/Grpc.Core/Grpc.Core.csproj @@ -139,6 +139,7 @@ <Compile Include="Logging\LogLevel.cs" /> <Compile Include="Logging\LogLevelFilterLogger.cs" /> <Compile Include="Internal\RequestCallContextSafeHandle.cs" /> + <Compile Include="Utils\TaskUtils.cs" /> </ItemGroup> <ItemGroup> <None Include="Grpc.Core.nuspec" /> diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs index 9abaf1120f..49d0a111ef 100644 --- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs +++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs @@ -265,7 +265,7 @@ namespace Grpc.Core.Internal // the halfclose has already been done implicitly, so just return // completed task here. halfcloseRequested = true; - return Task.FromResult<object>(null); + return TaskUtils.CompletedTask; } call.StartSendCloseFromClient(HandleSendFinished); diff --git a/src/csharp/Grpc.Core/Internal/SafeHandleZeroIsInvalid.cs b/src/csharp/Grpc.Core/Internal/SafeHandleZeroIsInvalid.cs index 230faacff6..a637a54f58 100644 --- a/src/csharp/Grpc.Core/Internal/SafeHandleZeroIsInvalid.cs +++ b/src/csharp/Grpc.Core/Internal/SafeHandleZeroIsInvalid.cs @@ -45,10 +45,6 @@ namespace Grpc.Core.Internal { } - public SafeHandleZeroIsInvalid(bool ownsHandle) : base(IntPtr.Zero, ownsHandle) - { - } - public override bool IsInvalid { get @@ -56,11 +52,5 @@ namespace Grpc.Core.Internal return handle == IntPtr.Zero; } } - - protected override bool ReleaseHandle() - { - // handle is not owned. - return true; - } } } diff --git a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs index ebb7e0021e..600811ddd6 100644 --- a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs +++ b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs @@ -76,7 +76,7 @@ namespace Grpc.Core.Internal Status status; Tuple<TResponse,WriteFlags> responseTuple = null; - var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken); + var context = HandlerUtils.NewContext(newRpc, responseStream, asyncCall.CancellationToken); try { GrpcPreconditions.CheckArgument(await requestStream.MoveNext().ConfigureAwait(false)); @@ -134,7 +134,7 @@ namespace Grpc.Core.Internal var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall); Status status; - var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken); + var context = HandlerUtils.NewContext(newRpc, responseStream, asyncCall.CancellationToken); try { GrpcPreconditions.CheckArgument(await requestStream.MoveNext().ConfigureAwait(false)); @@ -193,7 +193,7 @@ namespace Grpc.Core.Internal Status status; Tuple<TResponse,WriteFlags> responseTuple = null; - var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken); + var context = HandlerUtils.NewContext(newRpc, responseStream, asyncCall.CancellationToken); try { var response = await handler(requestStream, context).ConfigureAwait(false); @@ -250,7 +250,7 @@ namespace Grpc.Core.Internal var responseStream = new ServerResponseStream<TRequest, TResponse>(asyncCall); Status status; - var context = HandlerUtils.NewContext(newRpc, asyncCall.Peer, responseStream, asyncCall.CancellationToken); + var context = HandlerUtils.NewContext(newRpc, responseStream, asyncCall.CancellationToken); try { await handler(requestStream, responseStream, context).ConfigureAwait(false); @@ -296,7 +296,7 @@ namespace Grpc.Core.Internal private Task UnimplementedMethod(IAsyncStreamReader<byte[]> requestStream, IServerStreamWriter<byte[]> responseStream, ServerCallContext ctx) { ctx.Status = new Status(StatusCode.Unimplemented, ""); - return Task.FromResult<object>(null); + return TaskUtils.CompletedTask; } public Task HandleCall(ServerRpcNew newRpc, CompletionQueueSafeHandle cq) @@ -324,13 +324,13 @@ namespace Grpc.Core.Internal return writeOptions != null ? writeOptions.Flags : default(WriteFlags); } - public static ServerCallContext NewContext<TRequest, TResponse>(ServerRpcNew newRpc, string peer, ServerResponseStream<TRequest, TResponse> serverResponseStream, CancellationToken cancellationToken) + public static ServerCallContext NewContext<TRequest, TResponse>(ServerRpcNew newRpc, ServerResponseStream<TRequest, TResponse> serverResponseStream, CancellationToken cancellationToken) where TRequest : class where TResponse : class { DateTime realtimeDeadline = newRpc.Deadline.ToClockType(ClockType.Realtime).ToDateTime(); - return new ServerCallContext(newRpc.Call, newRpc.Method, newRpc.Host, peer, realtimeDeadline, + return new ServerCallContext(newRpc.Call, newRpc.Method, newRpc.Host, realtimeDeadline, newRpc.RequestMetadata, cancellationToken, serverResponseStream.WriteResponseHeadersAsync, serverResponseStream); } } diff --git a/src/csharp/Grpc.Core/ServerCallContext.cs b/src/csharp/Grpc.Core/ServerCallContext.cs index 09a6b882a6..8f28fbc045 100644 --- a/src/csharp/Grpc.Core/ServerCallContext.cs +++ b/src/csharp/Grpc.Core/ServerCallContext.cs @@ -48,7 +48,6 @@ namespace Grpc.Core private readonly CallSafeHandle callHandle; private readonly string method; private readonly string host; - private readonly string peer; private readonly DateTime deadline; private readonly Metadata requestHeaders; private readonly CancellationToken cancellationToken; @@ -58,13 +57,12 @@ namespace Grpc.Core private Func<Metadata, Task> writeHeadersFunc; private IHasWriteOptions writeOptionsHolder; - internal ServerCallContext(CallSafeHandle callHandle, string method, string host, string peer, DateTime deadline, Metadata requestHeaders, CancellationToken cancellationToken, + internal ServerCallContext(CallSafeHandle callHandle, string method, string host, DateTime deadline, Metadata requestHeaders, CancellationToken cancellationToken, Func<Metadata, Task> writeHeadersFunc, IHasWriteOptions writeOptionsHolder) { this.callHandle = callHandle; this.method = method; this.host = host; - this.peer = peer; this.deadline = deadline; this.requestHeaders = requestHeaders; this.cancellationToken = cancellationToken; @@ -115,7 +113,10 @@ namespace Grpc.Core { get { - return this.peer; + // Getting the peer lazily is fine as the native call is guaranteed + // not to be disposed before user-supplied server side handler returns. + // Most users won't need to read this field anyway. + return this.callHandle.GetPeer(); } } diff --git a/src/csharp/Grpc.Core/Utils/TaskUtils.cs b/src/csharp/Grpc.Core/Utils/TaskUtils.cs new file mode 100644 index 0000000000..2cf1144143 --- /dev/null +++ b/src/csharp/Grpc.Core/Utils/TaskUtils.cs @@ -0,0 +1,59 @@ +#region Copyright notice and license + +// Copyright 2015, Google Inc. +// All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +#endregion + +using System; +using System.Threading.Tasks; + +namespace Grpc.Core.Utils +{ + /// <summary> + /// Utility methods for task parallel library. + /// </summary> + public static class TaskUtils + { + /// <summary> + /// Framework independent equivalent of <c>Task.CompletedTask</c>. + /// </summary> + public static Task CompletedTask + { + get + { +#if NETSTANDARD1_5 + return Task.CompletedTask; +#else + return Task.FromResult<object>(null); // for .NET45, emulate the functionality +#endif + } + } + } +} diff --git a/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs b/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs index 6492d34890..8bea083bc2 100644 --- a/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs +++ b/src/csharp/Grpc.IntegrationTesting/InterarrivalTimers.cs @@ -69,7 +69,7 @@ namespace Grpc.IntegrationTesting public Task WaitForNextAsync() { - return Task.FromResult<object>(null); + return TaskUtils.CompletedTask; } } diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc index 9f023b5883..b48a7bd698 100644 --- a/src/node/ext/call.cc +++ b/src/node/ext/call.cc @@ -45,6 +45,7 @@ #include "byte_buffer.h" #include "call.h" #include "channel.h" +#include "completion_queue.h" #include "completion_queue_async_worker.h" #include "call_credentials.h" #include "timeval.h" @@ -222,6 +223,9 @@ class SendMetadataOp : public Op { out->data.send_initial_metadata.metadata = array.metadata; return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { return "send_metadata"; @@ -263,6 +267,9 @@ class SendMessageOp : public Op { resources->handles.push_back(unique_ptr<PersistentValue>(handle)); return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { return "send_message"; @@ -281,6 +288,9 @@ class SendClientCloseOp : public Op { shared_ptr<Resources> resources) { return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { return "client_close"; @@ -341,6 +351,9 @@ class SendServerStatusOp : public Op { out->data.send_status_from_server.status_details = **str; return true; } + bool IsFinalOp() { + return true; + } protected: std::string GetTypeString() const { return "send_status"; @@ -367,6 +380,9 @@ class GetMetadataOp : public Op { out->data.recv_initial_metadata = &recv_metadata; return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { @@ -397,6 +413,9 @@ class ReadMessageOp : public Op { out->data.recv_message = &recv_message; return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { @@ -442,6 +461,9 @@ class ClientStatusOp : public Op { ParseMetadata(&metadata_array)); return scope.Escape(status_obj); } + bool IsFinalOp() { + return true; + } protected: std::string GetTypeString() const { return "status"; @@ -465,6 +487,9 @@ class ServerCloseResponseOp : public Op { out->data.recv_close_on_server.cancelled = &cancelled; return true; } + bool IsFinalOp() { + return false; + } protected: std::string GetTypeString() const { @@ -476,8 +501,8 @@ class ServerCloseResponseOp : public Op { }; tag::tag(Callback *callback, OpVec *ops, - shared_ptr<Resources> resources) : - callback(callback), ops(ops), resources(resources){ + shared_ptr<Resources> resources, Call *call) : + callback(callback), ops(ops), resources(resources), call(call){ } tag::~tag() { @@ -502,16 +527,36 @@ Callback *GetTagCallback(void *tag) { return tag_struct->callback; } +void CompleteTag(void *tag) { + struct tag *tag_struct = reinterpret_cast<struct tag *>(tag); + bool is_final_op = false; + if (tag_struct->call == NULL) { + return; + } + for (vector<unique_ptr<Op> >::iterator it = tag_struct->ops->begin(); + it != tag_struct->ops->end(); ++it) { + Op *op_ptr = it->get(); + if (op_ptr->IsFinalOp()) { + is_final_op = true; + } + } + tag_struct->call->CompleteBatch(is_final_op); +} + void DestroyTag(void *tag) { struct tag *tag_struct = reinterpret_cast<struct tag *>(tag); delete tag_struct; } -Call::Call(grpc_call *call) : wrapped_call(call) { +Call::Call(grpc_call *call) : wrapped_call(call), + pending_batches(0), + has_final_op_completed(false) { } Call::~Call() { - grpc_call_destroy(wrapped_call); + if (wrapped_call != NULL) { + grpc_call_destroy(wrapped_call); + } } void Call::Init(Local<Object> exports) { @@ -552,6 +597,17 @@ Local<Value> Call::WrapStruct(grpc_call *call) { } } +void Call::CompleteBatch(bool is_final_op) { + if (is_final_op) { + this->has_final_op_completed = true; + } + this->pending_batches--; + if (this->has_final_op_completed && this->pending_batches == 0) { + grpc_call_destroy(this->wrapped_call); + this->wrapped_call = NULL; + } +} + NAN_METHOD(Call::New) { if (info.IsConstructCall()) { Call *call; @@ -602,12 +658,12 @@ NAN_METHOD(Call::New) { Utf8String host_override(info[3]); wrapped_call = grpc_channel_create_call( wrapped_channel, parent_call, propagate_flags, - CompletionQueueAsyncWorker::GetQueue(), *method, + GetCompletionQueue(), *method, *host_override, MillisecondsToTimespec(deadline), NULL); } else if (info[3]->IsUndefined() || info[3]->IsNull()) { wrapped_call = grpc_channel_create_call( wrapped_channel, parent_call, propagate_flags, - CompletionQueueAsyncWorker::GetQueue(), *method, + GetCompletionQueue(), *method, NULL, MillisecondsToTimespec(deadline), NULL); } else { return Nan::ThrowTypeError("Call's fourth argument must be a string"); @@ -697,11 +753,12 @@ NAN_METHOD(Call::StartBatch) { Callback *callback = new Callback(callback_func); grpc_call_error error = grpc_call_start_batch( call->wrapped_call, &ops[0], nops, new struct tag( - callback, op_vector.release(), resources), NULL); + callback, op_vector.release(), resources, call), NULL); if (error != GRPC_CALL_OK) { return Nan::ThrowError(nanErrorWithCode("startBatch failed", error)); } - CompletionQueueAsyncWorker::Next(); + call->pending_batches++; + CompletionQueueNext(); } NAN_METHOD(Call::Cancel) { diff --git a/src/node/ext/call.h b/src/node/ext/call.h index 1e3c3ba18d..31c6566d14 100644 --- a/src/node/ext/call.h +++ b/src/node/ext/call.h @@ -66,34 +66,6 @@ bool CreateMetadataArray(v8::Local<v8::Object> metadata, grpc_metadata_array *array, shared_ptr<Resources> resources); -class Op { - public: - virtual v8::Local<v8::Value> GetNodeValue() const = 0; - virtual bool ParseOp(v8::Local<v8::Value> value, grpc_op *out, - shared_ptr<Resources> resources) = 0; - virtual ~Op(); - v8::Local<v8::Value> GetOpType() const; - - protected: - virtual std::string GetTypeString() const = 0; -}; - -typedef std::vector<unique_ptr<Op>> OpVec; -struct tag { - tag(Nan::Callback *callback, OpVec *ops, - shared_ptr<Resources> resources); - ~tag(); - Nan::Callback *callback; - OpVec *ops; - shared_ptr<Resources> resources; -}; - -v8::Local<v8::Value> GetTagNodeValue(void *tag); - -Nan::Callback *GetTagCallback(void *tag); - -void DestroyTag(void *tag); - /* Wrapper class for grpc_call structs. */ class Call : public Nan::ObjectWrap { public: @@ -102,6 +74,8 @@ class Call : public Nan::ObjectWrap { /* Wrap a grpc_call struct in a javascript object */ static v8::Local<v8::Value> WrapStruct(grpc_call *call); + void CompleteBatch(bool is_final_op); + private: explicit Call(grpc_call *call); ~Call(); @@ -121,8 +95,46 @@ class Call : public Nan::ObjectWrap { static Nan::Persistent<v8::FunctionTemplate> fun_tpl; grpc_call *wrapped_call; + // The number of ops that were started but not completed on this call + int pending_batches; + /* Indicates whether the "final" op on a call has completed. For a client + call, this is GRPC_OP_RECV_STATUS_ON_CLIENT and for a server call, this + is GRPC_OP_SEND_STATUS_FROM_SERVER */ + bool has_final_op_completed; }; +class Op { + public: + virtual v8::Local<v8::Value> GetNodeValue() const = 0; + virtual bool ParseOp(v8::Local<v8::Value> value, grpc_op *out, + shared_ptr<Resources> resources) = 0; + virtual ~Op(); + v8::Local<v8::Value> GetOpType() const; + virtual bool IsFinalOp() = 0; + + protected: + virtual std::string GetTypeString() const = 0; +}; + +typedef std::vector<unique_ptr<Op>> OpVec; +struct tag { + tag(Nan::Callback *callback, OpVec *ops, + shared_ptr<Resources> resources, Call *call); + ~tag(); + Nan::Callback *callback; + OpVec *ops; + shared_ptr<Resources> resources; + Call *call; +}; + +v8::Local<v8::Value> GetTagNodeValue(void *tag); + +Nan::Callback *GetTagCallback(void *tag); + +void DestroyTag(void *tag); + +void CompleteTag(void *tag); + } // namespace node } // namespace grpc diff --git a/src/node/ext/channel.cc b/src/node/ext/channel.cc index 00fcca6dc8..c4028170e7 100644 --- a/src/node/ext/channel.cc +++ b/src/node/ext/channel.cc @@ -41,6 +41,7 @@ #include "grpc/grpc_security.h" #include "call.h" #include "channel.h" +#include "completion_queue.h" #include "completion_queue_async_worker.h" #include "channel_credentials.h" #include "timeval.h" @@ -140,6 +141,7 @@ void DeallocateChannelArgs(grpc_channel_args *channel_args) { Channel::Channel(grpc_channel *channel) : wrapped_channel(channel) {} Channel::~Channel() { + gpr_log(GPR_DEBUG, "Destroying channel"); if (wrapped_channel != NULL) { grpc_channel_destroy(wrapped_channel); } @@ -276,11 +278,11 @@ NAN_METHOD(Channel::WatchConnectivityState) { unique_ptr<OpVec> ops(new OpVec()); grpc_channel_watch_connectivity_state( channel->wrapped_channel, last_state, MillisecondsToTimespec(deadline), - CompletionQueueAsyncWorker::GetQueue(), + GetCompletionQueue(), new struct tag(callback, ops.release(), - shared_ptr<Resources>(nullptr))); - CompletionQueueAsyncWorker::Next(); + shared_ptr<Resources>(nullptr), NULL)); + CompletionQueueNext(); } } // namespace node diff --git a/src/node/ext/completion_queue.cc b/src/node/ext/completion_queue.cc new file mode 100644 index 0000000000..fcfa77b39c --- /dev/null +++ b/src/node/ext/completion_queue.cc @@ -0,0 +1,114 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <uv.h> +#include <node.h> +#include <v8.h> +#include <grpc/grpc.h> + +#include "call.h" +#include "completion_queue.h" +#include "completion_queue_async_worker.h" + +namespace grpc { +namespace node { + +using v8::Local; +using v8::Object; +using v8::Value; + +grpc_completion_queue *queue; +uv_prepare_t prepare; +int pending_batches; + +void drain_completion_queue(uv_prepare_t *handle) { + Nan::HandleScope scope; + grpc_event event; + (void)handle; + do { + event = grpc_completion_queue_next( + queue, gpr_inf_past(GPR_CLOCK_MONOTONIC), NULL); + + if (event.type == GRPC_OP_COMPLETE) { + Nan::Callback *callback = grpc::node::GetTagCallback(event.tag); + if (event.success) { + Local<Value> argv[] = {Nan::Null(), + grpc::node::GetTagNodeValue(event.tag)}; + callback->Call(2, argv); + } else { + Local<Value> argv[] = {Nan::Error( + "The async function encountered an error")}; + callback->Call(1, argv); + } + grpc::node::CompleteTag(event.tag); + grpc::node::DestroyTag(event.tag); + pending_batches--; + if (pending_batches == 0) { + uv_prepare_stop(&prepare); + } + } + } while (event.type != GRPC_QUEUE_TIMEOUT); +} + +grpc_completion_queue *GetCompletionQueue() { +#ifdef GRPC_UV + return queue; +#else + return CompletionQueueAsyncWorker::GetQueue(); +#endif +} + +void CompletionQueueNext() { +#ifdef GRPC_UV + if (pending_batches == 0) { + GPR_ASSERT(!uv_is_active((uv_handle_t *)&prepare)); + uv_prepare_start(&prepare, drain_completion_queue); + } + pending_batches++; +#else + CompletionQueueAsyncWorker::Next(); +#endif +} + +void CompletionQueueInit(Local<Object> exports) { +#ifdef GRPC_UV + queue = grpc_completion_queue_create(NULL); + uv_prepare_init(uv_default_loop(), &prepare); + pending_batches = 0; +#else + CompletionQueueAsyncWorker::Init(exports); +#endif +} + +} // namespace node +} // namespace grpc diff --git a/src/node/ext/completion_queue.h b/src/node/ext/completion_queue.h new file mode 100644 index 0000000000..bf280f768b --- /dev/null +++ b/src/node/ext/completion_queue.h @@ -0,0 +1,46 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <v8.h> + +namespace grpc { +namespace node { + +grpc_completion_queue *GetCompletionQueue(); + +void CompletionQueueNext(); + +void CompletionQueueInit(v8::Local<v8::Object> exports); + +} // namespace node +} // namespace grpc diff --git a/src/node/ext/completion_queue_async_worker.cc b/src/node/ext/completion_queue_async_worker.cc index 619ea41515..f5e03b277b 100644 --- a/src/node/ext/completion_queue_async_worker.cc +++ b/src/node/ext/completion_queue_async_worker.cc @@ -74,6 +74,7 @@ void CompletionQueueAsyncWorker::Execute() { grpc_completion_queue *CompletionQueueAsyncWorker::GetQueue() { return queue; } void CompletionQueueAsyncWorker::Next() { +#ifndef GRPC_UV Nan::HandleScope scope; if (current_threads < max_queue_threads) { current_threads += 1; @@ -85,6 +86,7 @@ void CompletionQueueAsyncWorker::Next() { GPR_ASSERT(current_threads <= max_queue_threads); GPR_ASSERT((current_threads == max_queue_threads) || (waiting_next_calls == 0)); +#endif } void CompletionQueueAsyncWorker::Init(Local<Object> exports) { diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc index 848c601587..9b9eee85b7 100644 --- a/src/node/ext/node_grpc.cc +++ b/src/node/ext/node_grpc.cc @@ -42,6 +42,13 @@ #include "grpc/support/log.h" #include "grpc/support/time.h" +// TODO(murgatroid99): Remove this when the endpoint API becomes public +#ifdef GRPC_UV +extern "C" { +#include "src/core/lib/iomgr/pollset_uv.h" +} +#endif + #include "call.h" #include "call_credentials.h" #include "channel.h" @@ -50,6 +57,7 @@ #include "completion_queue_async_worker.h" #include "server_credentials.h" #include "timeval.h" +#include "completion_queue.h" using v8::FunctionTemplate; using v8::Local; @@ -428,14 +436,19 @@ void init(Local<Object> exports) { InitWriteFlags(exports); InitLogConstants(exports); +#ifdef GRPC_UV + grpc_pollset_work_run_loop = 0; +#endif + grpc::node::Call::Init(exports); grpc::node::CallCredentials::Init(exports); grpc::node::Channel::Init(exports); grpc::node::ChannelCredentials::Init(exports); grpc::node::Server::Init(exports); - grpc::node::CompletionQueueAsyncWorker::Init(exports); grpc::node::ServerCredentials::Init(exports); + grpc::node::CompletionQueueInit(exports); + // Attach a few utility functions directly to the module Nan::Set(exports, Nan::New("metadataKeyIsLegal").ToLocalChecked(), Nan::GetFunction( diff --git a/src/node/ext/server.cc b/src/node/ext/server.cc index dd1b777ac8..29f31ff15e 100644 --- a/src/node/ext/server.cc +++ b/src/node/ext/server.cc @@ -40,6 +40,7 @@ #include <vector> #include "call.h" +#include "completion_queue.h" #include "completion_queue_async_worker.h" #include "grpc/grpc.h" #include "grpc/grpc_security.h" @@ -64,6 +65,7 @@ using v8::Array; using v8::Boolean; using v8::Date; using v8::Exception; +using v8::External; using v8::Function; using v8::FunctionTemplate; using v8::Local; @@ -75,6 +77,8 @@ using v8::Value; Nan::Callback *Server::constructor; Persistent<FunctionTemplate> Server::fun_tpl; +static Callback *shutdown_callback; + class NewCallOp : public Op { public: NewCallOp() { @@ -111,6 +115,9 @@ class NewCallOp : public Op { shared_ptr<Resources> resources) { return true; } + bool IsFinalOp() { + return false; + } grpc_call *call; grpc_call_details details; @@ -120,17 +127,50 @@ class NewCallOp : public Op { std::string GetTypeString() const { return "new_call"; } }; +class ServerShutdownOp : public Op { + public: + ServerShutdownOp(grpc_server *server): server(server) { + } + + ~ServerShutdownOp() { + } + + Local<Value> GetNodeValue() const { + return Nan::New<External>(reinterpret_cast<void *>(server)); + } + + bool ParseOp(Local<Value> value, grpc_op *out, + shared_ptr<Resources> resources) { + return true; + } + bool IsFinalOp() { + return false; + } + + grpc_server *server; + + protected: + std::string GetTypeString() const { return "shutdown"; } +}; + +NAN_METHOD(ServerShutdownCallback) { + if (!info[0]->IsNull()) { + return Nan::ThrowError("forceShutdown failed somehow"); + } + MaybeLocal<Object> maybe_result = Nan::To<Object>(info[1]); + Local<Object> result = maybe_result.ToLocalChecked(); + Local<Value> server_val = Nan::Get( + result, Nan::New("shutdown").ToLocalChecked()).ToLocalChecked(); + Local<External> server_extern = server_val.As<External>(); + grpc_server *server = reinterpret_cast<grpc_server *>(server_extern->Value()); + grpc_server_destroy(server); +} + Server::Server(grpc_server *server) : wrapped_server(server) { - shutdown_queue = grpc_completion_queue_create(NULL); - grpc_server_register_non_listening_completion_queue(server, shutdown_queue, - NULL); } Server::~Server() { this->ShutdownServer(); - grpc_completion_queue_shutdown(this->shutdown_queue); - grpc_server_destroy(this->wrapped_server); - grpc_completion_queue_destroy(this->shutdown_queue); } void Server::Init(Local<Object> exports) { @@ -147,6 +187,11 @@ void Server::Init(Local<Object> exports) { Local<Function> ctr = Nan::GetFunction(tpl).ToLocalChecked(); Nan::Set(exports, Nan::New("Server").ToLocalChecked(), ctr); constructor = new Callback(ctr); + + Local<FunctionTemplate>callback_tpl = + Nan::New<FunctionTemplate>(ServerShutdownCallback); + shutdown_callback = new Callback( + Nan::GetFunction(callback_tpl).ToLocalChecked()); } bool Server::HasInstance(Local<Value> val) { @@ -155,11 +200,19 @@ bool Server::HasInstance(Local<Value> val) { } void Server::ShutdownServer() { - grpc_server_shutdown_and_notify(this->wrapped_server, this->shutdown_queue, - NULL); - grpc_server_cancel_all_calls(this->wrapped_server); - grpc_completion_queue_pluck(this->shutdown_queue, NULL, - gpr_inf_future(GPR_CLOCK_REALTIME), NULL); + if (this->wrapped_server != NULL) { + ServerShutdownOp *op = new ServerShutdownOp(this->wrapped_server); + unique_ptr<OpVec> ops(new OpVec()); + ops->push_back(unique_ptr<Op>(op)); + + grpc_server_shutdown_and_notify( + this->wrapped_server, GetCompletionQueue(), + new struct tag(new Callback(**shutdown_callback), ops.release(), + shared_ptr<Resources>(nullptr), NULL)); + grpc_server_cancel_all_calls(this->wrapped_server); + CompletionQueueNext(); + this->wrapped_server = NULL; + } } NAN_METHOD(Server::New) { @@ -179,7 +232,7 @@ NAN_METHOD(Server::New) { } } grpc_server *wrapped_server; - grpc_completion_queue *queue = CompletionQueueAsyncWorker::GetQueue(); + grpc_completion_queue *queue = GetCompletionQueue(); grpc_channel_args *channel_args; if (!ParseChannelArgs(info[0], &channel_args)) { DeallocateChannelArgs(channel_args); @@ -205,14 +258,14 @@ NAN_METHOD(Server::RequestCall) { ops->push_back(unique_ptr<Op>(op)); grpc_call_error error = grpc_server_request_call( server->wrapped_server, &op->call, &op->details, &op->request_metadata, - CompletionQueueAsyncWorker::GetQueue(), - CompletionQueueAsyncWorker::GetQueue(), + GetCompletionQueue(), + GetCompletionQueue(), new struct tag(new Callback(info[0].As<Function>()), ops.release(), - shared_ptr<Resources>(nullptr))); + shared_ptr<Resources>(nullptr), NULL)); if (error != GRPC_CALL_OK) { return Nan::ThrowError(nanErrorWithCode("requestCall failed", error)); } - CompletionQueueAsyncWorker::Next(); + CompletionQueueNext(); } NAN_METHOD(Server::AddHttp2Port) { @@ -259,10 +312,10 @@ NAN_METHOD(Server::TryShutdown) { Server *server = ObjectWrap::Unwrap<Server>(info.This()); unique_ptr<OpVec> ops(new OpVec()); grpc_server_shutdown_and_notify( - server->wrapped_server, CompletionQueueAsyncWorker::GetQueue(), + server->wrapped_server, GetCompletionQueue(), new struct tag(new Nan::Callback(info[0].As<Function>()), ops.release(), - shared_ptr<Resources>(nullptr))); - CompletionQueueAsyncWorker::Next(); + shared_ptr<Resources>(nullptr), NULL)); + CompletionQueueNext(); } NAN_METHOD(Server::ForceShutdown) { diff --git a/src/node/ext/server.h b/src/node/ext/server.h index ab5fc210e8..9e6a7bd1e0 100644 --- a/src/node/ext/server.h +++ b/src/node/ext/server.h @@ -73,7 +73,6 @@ class Server : public Nan::ObjectWrap { static Nan::Persistent<v8::FunctionTemplate> fun_tpl; grpc_server *wrapped_server; - grpc_completion_queue *shutdown_queue; }; } // namespace node diff --git a/src/node/index.js b/src/node/index.js index 9fb6faa5d7..a294aad8ee 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -219,3 +219,7 @@ exports.getClientChannel = client.getClientChannel; * @see module:src/client.waitForClientReady */ exports.waitForClientReady = client.waitForClientReady; + +exports.closeClient = function closeClient(client_obj) { + client.getClientChannel(client_obj).close(); +}; diff --git a/src/node/performance/benchmark_client_express.js b/src/node/performance/benchmark_client_express.js new file mode 100644 index 0000000000..675eb5f288 --- /dev/null +++ b/src/node/performance/benchmark_client_express.js @@ -0,0 +1,291 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/** + * Benchmark client module + * @module + */ + +'use strict'; + +var fs = require('fs'); +var path = require('path'); +var util = require('util'); +var EventEmitter = require('events'); +var http = require('http'); +var https = require('https'); + +var async = require('async'); +var _ = require('lodash'); +var PoissonProcess = require('poisson-process'); +var Histogram = require('./histogram'); + +/** + * Convert a time difference, as returned by process.hrtime, to a number of + * nanoseconds. + * @param {Array.<number>} time_diff The time diff, represented as + * [seconds, nanoseconds] + * @return {number} The total number of nanoseconds + */ +function timeDiffToNanos(time_diff) { + return time_diff[0] * 1e9 + time_diff[1]; +} + +function BenchmarkClient(server_targets, channels, histogram_params, + security_params) { + var options = { + method: 'PUT', + headers: { + 'Content-Type': 'application/json' + } + }; + var protocol; + if (security_params) { + var ca_path; + protocol = https; + this.request = _.bind(https.request, https); + if (security_params.use_test_ca) { + ca_path = path.join(__dirname, '../test/data/ca.pem'); + var ca_data = fs.readFileSync(ca_path); + options.ca = ca_data; + } + if (security_params.server_host_override) { + var host_override = security_params.server_host_override; + options.servername = host_override; + } + } else { + protocol = http; + } + + this.request = _.bind(protocol.request, protocol); + + this.client_options = []; + + for (var i = 0; i < channels; i++) { + var host_port; + host_port = server_targets[i % server_targets.length].split(':') + var new_options = _.assign({hostname: host_port[0], port: +host_port[1]}, options); + new_options.agent = new protocol.Agent(new_options); + this.client_options[i] = new_options; + } + + this.histogram = new Histogram(histogram_params.resolution, + histogram_params.max_possible); + + this.running = false; + + this.pending_calls = 0; +} + +util.inherits(BenchmarkClient, EventEmitter); + +function startAllClients(client_options_list, outstanding_rpcs_per_channel, + makeCall, emitter) { + _.each(client_options_list, function(client_options) { + _.times(outstanding_rpcs_per_channel, function() { + makeCall(client_options); + }); + }); +} + +BenchmarkClient.prototype.startClosedLoop = function( + outstanding_rpcs_per_channel, rpc_type, req_size, resp_size, generic) { + var self = this; + + var options = {}; + + self.running = true; + + if (rpc_type == 'UNARY') { + options.path = '/serviceProto.BenchmarkService.service/unaryCall'; + } else { + self.emit('error', new Error('Unsupported rpc_type: ' + rpc_type)); + } + + if (generic) { + self.emit('error', new Error('Generic client not supported')); + } + + self.last_wall_time = process.hrtime(); + + var argument = { + response_size: resp_size, + payload: { + body: '0'.repeat(req_size) + } + }; + + function makeCall(client_options) { + if (self.running) { + self.pending_calls++; + var start_time = process.hrtime(); + var req = self.request(client_options, function(res) { + var res_data = ''; + res.on('data', function(data) { + res_data += data; + }); + res.on('end', function() { + JSON.parse(res_data); + var time_diff = process.hrtime(start_time); + self.histogram.add(timeDiffToNanos(time_diff)); + makeCall(client_options); + self.pending_calls--; + if ((!self.running) && self.pending_calls == 0) { + self.emit('finished'); + } + }); + }); + req.write(JSON.stringify(argument)); + req.end(); + req.on('error', function(error) { + self.emit('error', new Error('Client error: ' + error.message)); + self.running = false; + }); + } + } + + startAllClients(_.map(self.client_options, _.partial(_.assign, options)), + outstanding_rpcs_per_channel, makeCall, self); +}; + +BenchmarkClient.prototype.startPoisson = function( + outstanding_rpcs_per_channel, rpc_type, req_size, resp_size, offered_load, + generic) { + var self = this; + + var options = {}; + + self.running = true; + + if (rpc_type == 'UNARY') { + options.path = '/serviceProto.BenchmarkService.service/unaryCall'; + } else { + self.emit('error', new Error('Unsupported rpc_type: ' + rpc_type)); + } + + if (generic) { + self.emit('error', new Error('Generic client not supported')); + } + + self.last_wall_time = process.hrtime(); + + var argument = { + response_size: resp_size, + payload: { + body: '0'.repeat(req_size) + } + }; + + function makeCall(client_options, poisson) { + if (self.running) { + self.pending_calls++; + var start_time = process.hrtime(); + var req = self.request(client_options, function(res) { + var res_data = ''; + res.on('data', function(data) { + res_data += data; + }); + res.on('end', function() { + JSON.parse(res_data); + var time_diff = process.hrtime(start_time); + self.histogram.add(timeDiffToNanos(time_diff)); + self.pending_calls--; + if ((!self.running) && self.pending_calls == 0) { + self.emit('finished'); + } + }); + }); + req.write(JSON.stringify(argument)); + req.end(); + req.on('error', function(error) { + self.emit('error', new Error('Client error: ' + error.message)); + self.running = false; + }); + } else { + poisson.stop(); + } + } + + var averageIntervalMs = (1 / offered_load) * 1000; + + startAllClients(_.map(self.client_options, _.partial(_.assign, options)), + outstanding_rpcs_per_channel, function(opts){ + var p = PoissonProcess.create(averageIntervalMs, function() { + makeCall(opts, p); + }); + p.start(); + }, self); +}; + +/** + * Return curent statistics for the client. If reset is set, restart + * statistic collection. + * @param {boolean} reset Indicates that statistics should be reset + * @return {object} Client statistics + */ +BenchmarkClient.prototype.mark = function(reset) { + var wall_time_diff = process.hrtime(this.last_wall_time); + var histogram = this.histogram; + if (reset) { + this.last_wall_time = process.hrtime(); + this.histogram = new Histogram(histogram.resolution, + histogram.max_possible); + } + + return { + latencies: { + bucket: histogram.getContents(), + min_seen: histogram.minimum(), + max_seen: histogram.maximum(), + sum: histogram.getSum(), + sum_of_squares: histogram.sumOfSquares(), + count: histogram.getCount() + }, + time_elapsed: wall_time_diff[0] + wall_time_diff[1] / 1e9, + // Not sure how to measure these values + time_user: 0, + time_system: 0 + }; +}; + +/** + * Stop the clients. + * @param {function} callback Called when the clients have finished shutting + * down + */ +BenchmarkClient.prototype.stop = function(callback) { + this.running = false; + this.on('finished', callback); +}; + +module.exports = BenchmarkClient; diff --git a/src/node/performance/benchmark_server.js b/src/node/performance/benchmark_server.js index 70cee9979b..6abde2e17a 100644 --- a/src/node/performance/benchmark_server.js +++ b/src/node/performance/benchmark_server.js @@ -40,6 +40,8 @@ var fs = require('fs'); var path = require('path'); +var EventEmitter = require('events'); +var util = require('util'); var genericService = require('./generic_service'); @@ -138,12 +140,15 @@ function BenchmarkServer(host, port, tls, generic, response_size) { this.server = server; } +util.inherits(BenchmarkServer, EventEmitter); + /** * Start the benchmark server. */ BenchmarkServer.prototype.start = function() { this.server.start(); this.last_wall_time = process.hrtime(); + this.emit('started'); }; /** diff --git a/src/node/performance/benchmark_server_express.js b/src/node/performance/benchmark_server_express.js new file mode 100644 index 0000000000..065bcf660b --- /dev/null +++ b/src/node/performance/benchmark_server_express.js @@ -0,0 +1,109 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/** + * Benchmark server module + * @module + */ + +'use strict'; + +var fs = require('fs'); +var path = require('path'); +var http = require('http'); +var https = require('https'); +var EventEmitter = require('events'); +var util = require('util'); + +var express = require('express'); +var bodyParser = require('body-parser') + +function unaryCall(req, res) { + var reqObj = req.body; + var payload = {body: '0'.repeat(reqObj.response_size)}; + res.json(payload); +} + +function BenchmarkServer(host, port, tls, generic, response_size) { + var app = express(); + app.use(bodyParser.json()) + app.put('/serviceProto.BenchmarkService.service/unaryCall', unaryCall); + this.input_host = host; + this.input_port = port; + if (tls) { + var credentials = {}; + var key_path = path.join(__dirname, '../test/data/server1.key'); + var pem_path = path.join(__dirname, '../test/data/server1.pem'); + + var key_data = fs.readFileSync(key_path); + var pem_data = fs.readFileSync(pem_path); + credentials['key'] = key_data; + credentials['cert'] = pem_data; + this.server = https.createServer(credentials, app); + } else { + this.server = http.createServer(app); + } +} + +util.inherits(BenchmarkServer, EventEmitter); + +BenchmarkServer.prototype.start = function() { + var self = this; + this.server.listen(this.input_port, this.input_hostname, function() { + self.last_wall_time = process.hrtime(); + self.emit('started'); + }); +}; + +BenchmarkServer.prototype.getPort = function() { + return this.server.address().port; +}; + +BenchmarkServer.prototype.mark = function(reset) { + var wall_time_diff = process.hrtime(this.last_wall_time); + if (reset) { + this.last_wall_time = process.hrtime(); + } + return { + time_elapsed: wall_time_diff[0] + wall_time_diff[1] / 1e9, + // Not sure how to measure these values + time_user: 0, + time_system: 0 + }; +}; + +BenchmarkServer.prototype.stop = function(callback) { + this.server.close(callback); +}; + +module.exports = BenchmarkServer; diff --git a/src/node/performance/worker.js b/src/node/performance/worker.js index 7ef9b84fe7..030bf7d7ba 100644 --- a/src/node/performance/worker.js +++ b/src/node/performance/worker.js @@ -34,18 +34,18 @@ 'use strict'; var console = require('console'); -var worker_service_impl = require('./worker_service_impl'); +var WorkerServiceImpl = require('./worker_service_impl'); var grpc = require('../../../'); var serviceProto = grpc.load({ root: __dirname + '/../../..', file: 'src/proto/grpc/testing/services.proto'}).grpc.testing; -function runServer(port) { +function runServer(port, benchmark_impl) { var server_creds = grpc.ServerCredentials.createInsecure(); var server = new grpc.Server(); server.addProtoService(serviceProto.WorkerService.service, - worker_service_impl); + new WorkerServiceImpl(benchmark_impl, server)); var address = '0.0.0.0:' + port; server.bind(address, server_creds); server.start(); @@ -57,9 +57,9 @@ if (require.main === module) { Error.stackTraceLimit = Infinity; var parseArgs = require('minimist'); var argv = parseArgs(process.argv, { - string: ['driver_port'] + string: ['driver_port', 'benchmark_impl'] }); - runServer(argv.driver_port); + runServer(argv.driver_port, argv.benchmark_impl); } exports.runServer = runServer; diff --git a/src/node/performance/worker_service_impl.js b/src/node/performance/worker_service_impl.js index 4b5cb8f9c2..3f317f6429 100644 --- a/src/node/performance/worker_service_impl.js +++ b/src/node/performance/worker_service_impl.js @@ -38,121 +38,141 @@ var console = require('console'); var BenchmarkClient = require('./benchmark_client'); var BenchmarkServer = require('./benchmark_server'); -exports.quitWorker = function quitWorker(call, callback) { - callback(null, {}); - process.exit(0); -} +module.exports = function WorkerServiceImpl(benchmark_impl, server) { + var BenchmarkClient; + var BenchmarkServer; + switch (benchmark_impl) { + case 'grpc': + BenchmarkClient = require('./benchmark_client'); + BenchmarkServer = require('./benchmark_server'); + break; + case 'express': + BenchmarkClient = require('./benchmark_client_express'); + BenchmarkServer = require('./benchmark_server_express'); + break; + default: + throw new Error('Unrecognized benchmark impl: ' + benchmark_impl); + } -exports.runClient = function runClient(call) { - var client; - call.on('data', function(request) { - var stats; - switch (request.argtype) { - case 'setup': - var setup = request.setup; - console.log('ClientConfig %j', setup); - client = new BenchmarkClient(setup.server_targets, - setup.client_channels, - setup.histogram_params, - setup.security_params); - client.on('error', function(error) { - call.emit('error', error); - }); - var req_size, resp_size, generic; - switch (setup.payload_config.payload) { - case 'bytebuf_params': - req_size = setup.payload_config.bytebuf_params.req_size; - resp_size = setup.payload_config.bytebuf_params.resp_size; - generic = true; + this.quitWorker = function quitWorker(call, callback) { + server.tryShutdown(function() { + callback(null, {}); + }); + }; + + this.runClient = function runClient(call) { + var client; + call.on('data', function(request) { + var stats; + switch (request.argtype) { + case 'setup': + var setup = request.setup; + console.log('ClientConfig %j', setup); + client = new BenchmarkClient(setup.server_targets, + setup.client_channels, + setup.histogram_params, + setup.security_params); + client.on('error', function(error) { + call.emit('error', error); + }); + var req_size, resp_size, generic; + switch (setup.payload_config.payload) { + case 'bytebuf_params': + req_size = setup.payload_config.bytebuf_params.req_size; + resp_size = setup.payload_config.bytebuf_params.resp_size; + generic = true; + break; + case 'simple_params': + req_size = setup.payload_config.simple_params.req_size; + resp_size = setup.payload_config.simple_params.resp_size; + generic = false; + break; + default: + call.emit('error', new Error('Unsupported PayloadConfig type' + + setup.payload_config.payload)); + } + switch (setup.load_params.load) { + case 'closed_loop': + client.startClosedLoop(setup.outstanding_rpcs_per_channel, + setup.rpc_type, req_size, resp_size, generic); + break; + case 'poisson': + client.startPoisson(setup.outstanding_rpcs_per_channel, + setup.rpc_type, req_size, resp_size, + setup.load_params.poisson.offered_load, generic); + break; + default: + call.emit('error', new Error('Unsupported LoadParams type' + + setup.load_params.load)); + } + stats = client.mark(); + call.write({ + stats: stats + }); break; - case 'simple_params': - req_size = setup.payload_config.simple_params.req_size; - resp_size = setup.payload_config.simple_params.resp_size; - generic = false; + case 'mark': + if (client) { + stats = client.mark(request.mark.reset); + call.write({ + stats: stats + }); + } else { + call.emit('error', new Error('Got Mark before ClientConfig')); + } break; default: - call.emit('error', new Error('Unsupported PayloadConfig type' + - setup.payload_config.payload)); + throw new Error('Nonexistent client argtype option: ' + request.argtype); } - switch (setup.load_params.load) { - case 'closed_loop': - client.startClosedLoop(setup.outstanding_rpcs_per_channel, - setup.rpc_type, req_size, resp_size, generic); + }); + call.on('end', function() { + client.stop(function() { + call.end(); + }); + }); + }; + + this.runServer = function runServer(call) { + var server; + call.on('data', function(request) { + var stats; + switch (request.argtype) { + case 'setup': + console.log('ServerConfig %j', request.setup); + server = new BenchmarkServer('[::]', request.setup.port, + request.setup.security_params); + server.on('started', function() { + stats = server.mark(); + call.write({ + stats: stats, + port: server.getPort() + }); + }); + server.start(); break; - case 'poisson': - client.startPoisson(setup.outstanding_rpcs_per_channel, - setup.rpc_type, req_size, resp_size, - setup.load_params.poisson.offered_load, generic); + case 'mark': + if (server) { + stats = server.mark(request.mark.reset); + call.write({ + stats: stats, + port: server.getPort(), + cores: 1 + }); + } else { + call.emit('error', new Error('Got Mark before ServerConfig')); + } break; default: - call.emit('error', new Error('Unsupported LoadParams type' + - setup.load_params.load)); + throw new Error('Nonexistent server argtype option'); } - stats = client.mark(); - call.write({ - stats: stats - }); - break; - case 'mark': - if (client) { - stats = client.mark(request.mark.reset); - call.write({ - stats: stats - }); - } else { - call.emit('error', new Error('Got Mark before ClientConfig')); - } - break; - default: - throw new Error('Nonexistent client argtype option: ' + request.argtype); - } - }); - call.on('end', function() { - client.stop(function() { - call.end(); }); - }); -}; - -exports.runServer = function runServer(call) { - var server; - call.on('data', function(request) { - var stats; - switch (request.argtype) { - case 'setup': - console.log('ServerConfig %j', request.setup); - server = new BenchmarkServer('[::]', request.setup.port, - request.setup.security_params); - server.start(); - stats = server.mark(); - call.write({ - stats: stats, - port: server.getPort() + call.on('end', function() { + server.stop(function() { + call.end(); }); - break; - case 'mark': - if (server) { - stats = server.mark(request.mark.reset); - call.write({ - stats: stats, - port: server.getPort(), - cores: 1 - }); - } else { - call.emit('error', new Error('Got Mark before ServerConfig')); - } - break; - default: - throw new Error('Nonexistent server argtype option'); - } - }); - call.on('end', function() { - server.stop(function() { - call.end(); }); - }); -}; + }; -exports.coreCount = function coreCount(call, callback) { - callback(null, {cores: os.cpus().length}); + this.coreCount = function coreCount(call, callback) { + callback(null, {cores: os.cpus().length}); + }; }; diff --git a/src/node/src/client.js b/src/node/src/client.js index f75f951eb8..9c1562e8b8 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -382,6 +382,7 @@ function makeUnaryRequestFunction(method, serialize, deserialize) { if (args.options) { message.grpcWriteFlags = args.options.flags; } + client_batch[grpc.opType.SEND_INITIAL_METADATA] = metadata._getCoreRepresentation(); client_batch[grpc.opType.SEND_MESSAGE] = message; diff --git a/src/node/src/grpc_extension.js b/src/node/src/grpc_extension.js index 6a8fe2c03c..63a281ddbc 100644 --- a/src/node/src/grpc_extension.js +++ b/src/node/src/grpc_extension.js @@ -31,7 +31,7 @@ * */ -var binary = require('node-pre-gyp'); +var binary = require('node-pre-gyp/lib/pre-binding'); var path = require('path'); var binding_path = binary.find(path.resolve(path.join(__dirname, '../../../package.json'))); diff --git a/src/node/test/async_test.js b/src/node/test/async_test.js index c46e745116..7b467e5475 100644 --- a/src/node/test/async_test.js +++ b/src/node/test/async_test.js @@ -61,6 +61,7 @@ describe('Async functionality', function() { done(); }); after(function() { + grpc.closeClient(math_client); server.forceShutdown(); }); it('should not hang', function(done) { diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h index 4a3f3fa4a1..c1623a0068 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelArg.h @@ -40,15 +40,18 @@ @interface GRPCCall (ChannelArg) /** - * Use the provided @c userAgentPrefix at the beginning of the HTTP User Agent string for all calls - * to the specified @c host. + * Use the provided @c userAgentPrefix at the beginning of the HTTP User Agent + * string for all calls to the specified @c host. */ -+ (void)setUserAgentPrefix:(nonnull NSString *)userAgentPrefix forHost:(nonnull NSString *)host; ++ (void)setUserAgentPrefix:(nonnull NSString *)userAgentPrefix + forHost:(nonnull NSString *)host; -/** The default response size limit is 4MB. Set this to override that default. */ +/** The default response size limit is 4MB. Set this to override that default. + */ + (void)setResponseSizeLimit:(NSUInteger)limit forHost:(nonnull NSString *)host; -+ (void)closeOpenConnections DEPRECATED_MSG_ATTRIBUTE("The API for this feature is experimental, " - "and might be removed or modified at any " - "time."); ++ (void)closeOpenConnections DEPRECATED_MSG_ATTRIBUTE( + "The API for this feature is experimental, " + "and might be removed or modified at any " + "time."); @end diff --git a/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h index ac2a37d75f..beae0d11a2 100644 --- a/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h +++ b/src/objective-c/GRPCClient/GRPCCall+ChannelCredentials.h @@ -33,24 +33,26 @@ #import "GRPCCall.h" -/** Helpers for setting TLS Trusted Roots, Client Certificates, and Private Key */ +/** Helpers for setting TLS Trusted Roots, Client Certificates, and Private Key + */ @interface GRPCCall (ChannelCredentials) /** - * Use the provided @c pemRootCert as the set of trusted root Certificate Authorities for @c host. + * Use the provided @c pemRootCert as the set of trusted root Certificate + * Authorities for @c host. */ + (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCert forHost:(nonnull NSString *)host - error:(NSError * _Nullable * _Nullable)errorPtr; + error:(NSError *_Nullable *_Nullable)errorPtr; /** - * Configures @c host with TLS/SSL Client Credentials and optionally trusted root Certificate - * Authorities. If @c pemRootCerts is nil, the default CA Certificates bundled with gRPC will be - * used. + * Configures @c host with TLS/SSL Client Credentials and optionally trusted + * root Certificate Authorities. If @c pemRootCerts is nil, the default CA + * Certificates bundled with gRPC will be used. */ + (BOOL)setTLSPEMRootCerts:(nullable NSString *)pemRootCerts withPrivateKey:(nullable NSString *)pemPrivateKey withCertChain:(nullable NSString *)pemCertChain forHost:(nonnull NSString *)host - error:(NSError * _Nullable * _Nullable)errorPtr; + error:(NSError *_Nullable *_Nullable)errorPtr; @end diff --git a/src/objective-c/GRPCClient/GRPCCall+OAuth2.h b/src/objective-c/GRPCClient/GRPCCall+OAuth2.h index 6b443877e9..467c6332c1 100644 --- a/src/objective-c/GRPCClient/GRPCCall+OAuth2.h +++ b/src/objective-c/GRPCClient/GRPCCall+OAuth2.h @@ -37,15 +37,17 @@ @interface GRPCCall (OAuth2) /** - * Setting this property is equivalent to setting "Bearer <passed token>" as the value of the - * request header with key "authorization" (the authorization header). Setting it to nil removes the - * authorization header from the request. - * The value obtained by getting the property is the OAuth2 bearer token if the authorization header - * of the request has the form "Bearer <token>", or nil otherwise. + * Setting this property is equivalent to setting "Bearer <passed token>" as the + * value of the request header with key "authorization" (the authorization + * header). Setting it to nil removes the authorization header from the request. + * The value obtained by getting the property is the OAuth2 bearer token if the + * authorization header of the request has the form "Bearer <token>", or nil + * otherwise. */ @property(atomic, copy) NSString *oauth2AccessToken; -/** Returns the value (if any) of the "www-authenticate" response header (the challenge header). */ +/** Returns the value (if any) of the "www-authenticate" response header (the + * challenge header). */ @property(atomic, readonly) NSString *oauth2ChallengeHeader; @end diff --git a/src/objective-c/GRPCClient/GRPCCall+Tests.h b/src/objective-c/GRPCClient/GRPCCall+Tests.h index 184ad09c5c..f517f3aac8 100644 --- a/src/objective-c/GRPCClient/GRPCCall+Tests.h +++ b/src/objective-c/GRPCClient/GRPCCall+Tests.h @@ -34,33 +34,36 @@ #import "GRPCCall.h" /** - * Methods to let tune down the security of gRPC connections for specific hosts. These shouldn't be - * used in releases, but are sometimes needed for testing. + * Methods to let tune down the security of gRPC connections for specific hosts. + * These shouldn't be used in releases, but are sometimes needed for testing. */ @interface GRPCCall (Tests) /** - * Establish all SSL connections to the provided host using the passed SSL target name and the root - * certificates found in the file at |certsPath|. + * Establish all SSL connections to the provided host using the passed SSL + * target name and the root certificates found in the file at |certsPath|. * - * Must be called before any gRPC call to that host is made. It's illegal to pass the same host to - * more than one invocation of the methods of this category. + * Must be called before any gRPC call to that host is made. It's illegal to + * pass the same host to more than one invocation of the methods of this + * category. */ + (void)useTestCertsPath:(NSString *)certsPath testName:(NSString *)testName forHost:(NSString *)host; /** - * Establish all connections to the provided host using cleartext instead of SSL. + * Establish all connections to the provided host using cleartext instead of + * SSL. * - * Must be called before any gRPC call to that host is made. It's illegal to pass the same host to - * more than one invocation of the methods of this category. + * Must be called before any gRPC call to that host is made. It's illegal to + * pass the same host to more than one invocation of the methods of this + * category. */ + (void)useInsecureConnectionsForHost:(NSString *)host; /** - * Resets all host configurations to their default values, and flushes all connections from the - * cache. + * Resets all host configurations to their default values, and flushes all + * connections from the cache. */ + (void)resetHostSettings; @end diff --git a/src/objective-c/GRPCClient/GRPCCall.h b/src/objective-c/GRPCClient/GRPCCall.h index 7645bb1d34..5ed160d7a0 100644 --- a/src/objective-c/GRPCClient/GRPCCall.h +++ b/src/objective-c/GRPCClient/GRPCCall.h @@ -34,17 +34,18 @@ /** * The gRPC protocol is an RPC protocol on top of HTTP2. * - * While the most common type of RPC receives only one request message and returns only one response - * message, the protocol also supports RPCs that return multiple individual messages in a streaming - * fashion, RPCs that accept a stream of request messages, or RPCs with both streaming requests and + * While the most common type of RPC receives only one request message and + * returns only one response message, the protocol also supports RPCs that + * return multiple individual messages in a streaming fashion, RPCs that accept + * a stream of request messages, or RPCs with both streaming requests and * responses. * - * Conceptually, each gRPC call consists of a bidirectional stream of binary messages, with RPCs of - * the "non-streaming type" sending only one message in the corresponding direction (the protocol - * doesn't make any distinction). + * Conceptually, each gRPC call consists of a bidirectional stream of binary + * messages, with RPCs of the "non-streaming type" sending only one message in + * the corresponding direction (the protocol doesn't make any distinction). * - * Each RPC uses a different HTTP2 stream, and thus multiple simultaneous RPCs can be multiplexed - * transparently on the same TCP connection. + * Each RPC uses a different HTTP2 stream, and thus multiple simultaneous RPCs + * can be multiplexed transparently on the same TCP connection. */ #import <Foundation/Foundation.h> @@ -59,51 +60,56 @@ extern NSString *const kGRPCErrorDomain; /** * gRPC error codes. - * Note that a few of these are never produced by the gRPC libraries, but are of general utility for - * server applications to produce. + * Note that a few of these are never produced by the gRPC libraries, but are of + * general utility for server applications to produce. */ typedef NS_ENUM(NSUInteger, GRPCErrorCode) { /** The operation was cancelled (typically by the caller). */ GRPCErrorCodeCancelled = 1, /** - * Unknown error. Errors raised by APIs that do not return enough error information may be + * Unknown error. Errors raised by APIs that do not return enough error + * information may be * converted to this error. */ GRPCErrorCodeUnknown = 2, /** - * The client specified an invalid argument. Note that this differs from FAILED_PRECONDITION. - * INVALID_ARGUMENT indicates arguments that are problematic regardless of the state of the - * server (e.g., a malformed file name). + * The client specified an invalid argument. Note that this differs from + * FAILED_PRECONDITION. + * INVALID_ARGUMENT indicates arguments that are problematic regardless of the + * state of the server (e.g., a malformed file name). */ GRPCErrorCodeInvalidArgument = 3, /** - * Deadline expired before operation could complete. For operations that change the state of the - * server, this error may be returned even if the operation has completed successfully. For - * example, a successful response from the server could have been delayed long enough for the - * deadline to expire. + * Deadline expired before operation could complete. For operations that + * change the state of the server, this error may be returned even if the + * operation has completed successfully. For example, a successful response + * from the server could have been delayed long enough for the deadline to + * expire. */ GRPCErrorCodeDeadlineExceeded = 4, /** Some requested entity (e.g., file or directory) was not found. */ GRPCErrorCodeNotFound = 5, - /** Some entity that we attempted to create (e.g., file or directory) already exists. */ + /** Some entity that we attempted to create (e.g., file or directory) already + exists. */ GRPCErrorCodeAlreadyExists = 6, /** - * The caller does not have permission to execute the specified operation. PERMISSION_DENIED isn't - * used for rejections caused by exhausting some resource (RESOURCE_EXHAUSTED is used instead for - * those errors). PERMISSION_DENIED doesn't indicate a failure to identify the caller + * The caller does not have permission to execute the specified operation. + * PERMISSION_DENIED isn't used for rejections caused by exhausting some + * resource (RESOURCE_EXHAUSTED is used instead for those errors). + * PERMISSION_DENIED doesn't indicate a failure to identify the caller * (UNAUTHENTICATED is used instead for those errors). */ GRPCErrorCodePermissionDenied = 7, /** - * The request does not have valid authentication credentials for the operation (e.g. the caller's - * identity can't be verified). + * The request does not have valid authentication credentials for the + * operation (e.g. the caller's identity can't be verified). */ GRPCErrorCodeUnauthenticated = 16, @@ -111,42 +117,47 @@ typedef NS_ENUM(NSUInteger, GRPCErrorCode) { GRPCErrorCodeResourceExhausted = 8, /** - * The RPC was rejected because the server is not in a state required for the procedure's + * The RPC was rejected because the server is not in a state required for the + * procedure's * execution. For example, a directory to be deleted may be non-empty, etc. - * The client should not retry until the server state has been explicitly fixed (e.g. by - * performing another RPC). The details depend on the service being called, and should be found in - * the NSError's userInfo. + * The client should not retry until the server state has been explicitly + * fixed (e.g. by + * performing another RPC). The details depend on the service being called, + * and should be found in the NSError's userInfo. */ GRPCErrorCodeFailedPrecondition = 9, /** - * The RPC was aborted, typically due to a concurrency issue like sequencer check failures, - * transaction aborts, etc. The client should retry at a higher-level (e.g., restarting a read- - * modify-write sequence). + * The RPC was aborted, typically due to a concurrency issue like sequencer + * check failures, transaction aborts, etc. The client should retry at a + * higher-level (e.g., restarting a read-modify-write sequence). */ GRPCErrorCodeAborted = 10, /** - * The RPC was attempted past the valid range. E.g., enumerating past the end of a list. - * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed if the system state - * changes. For example, an RPC to get elements of a list will generate INVALID_ARGUMENT if asked - * to return the element at a negative index, but it will generate OUT_OF_RANGE if asked to return - * the element at an index past the current size of the list. + * The RPC was attempted past the valid range. E.g., enumerating past the end + * of a list. + * Unlike INVALID_ARGUMENT, this error indicates a problem that may be fixed + * if the system state changes. For example, an RPC to get elements of a list + * will generate INVALID_ARGUMENT if asked to return the element at a negative + * index, but it will generate OUT_OF_RANGE if asked to return the element at + * an index past the current size of the list. */ GRPCErrorCodeOutOfRange = 11, - /** The procedure is not implemented or not supported/enabled in this server. */ + /** The procedure is not implemented or not supported/enabled in this server. + */ GRPCErrorCodeUnimplemented = 12, /** - * Internal error. Means some invariant expected by the server application or the gRPC library has - * been broken. + * Internal error. Means some invariant expected by the server application or + * the gRPC library has been broken. */ GRPCErrorCodeInternal = 13, /** - * The server is currently unavailable. This is most likely a transient condition and may be - * corrected by retrying with a backoff. + * The server is currently unavailable. This is most likely a transient + * condition and may be corrected by retrying with a backoff. */ GRPCErrorCodeUnavailable = 14, @@ -158,17 +169,19 @@ typedef NS_ENUM(NSUInteger, GRPCErrorCode) { * Safety remark of a gRPC method as defined in RFC 2616 Section 9.1 */ typedef NS_ENUM(NSUInteger, GRPCCallSafety) { - /** Signal that there is no guarantees on how the call affects the server state. */ + /** Signal that there is no guarantees on how the call affects the server + state. */ GRPCCallSafetyDefault = 0, /** Signal that the call is idempotent. gRPC is free to use PUT verb. */ GRPCCallSafetyIdempotentRequest = 1, - /** Signal that the call is cacheable and will not affect server state. gRPC is free to use GET verb. */ + /** Signal that the call is cacheable and will not affect server state. gRPC + is free to use GET verb. */ GRPCCallSafetyCacheableRequest = 2, }; /** - * Keys used in |NSError|'s |userInfo| dictionary to store the response headers and trailers sent by - * the server. + * Keys used in |NSError|'s |userInfo| dictionary to store the response headers + * and trailers sent by the server. */ extern id const kGRPCHeadersKey; extern id const kGRPCTrailersKey; @@ -179,20 +192,24 @@ extern id const kGRPCTrailersKey; @interface GRPCCall : GRXWriter /** - * The container of the request headers of an RPC conforms to this protocol, which is a subset of - * NSMutableDictionary's interface. It will become a NSMutableDictionary later on. - * The keys of this container are the header names, which per the HTTP standard are case- - * insensitive. They are stored in lowercase (which is how HTTP/2 mandates them on the wire), and - * can only consist of ASCII characters. - * A header value is a NSString object (with only ASCII characters), unless the header name has the - * suffix "-bin", in which case the value has to be a NSData object. + * The container of the request headers of an RPC conforms to this protocol, + * which is a subset of NSMutableDictionary's interface. It will become a + * NSMutableDictionary later on. The keys of this container are the header + * names, which per the HTTP standard are case-insensitive. They are stored in + * lowercase (which is how HTTP/2 mandates them on the wire), and can only + * consist of ASCII characters. + * A header value is a NSString object (with only ASCII characters), unless the + * header name has the suffix "-bin", in which case the value has to be a NSData + * object. */ /** - * These HTTP headers will be passed to the server as part of this call. Each HTTP header is a - * name-value pair with string names and either string or binary values. + * These HTTP headers will be passed to the server as part of this call. Each + * HTTP header is a name-value pair with string names and either string or + * binary values. * - * The passed dictionary has to use NSString keys, corresponding to the header names. The value - * associated to each can be a NSString object or a NSData object. E.g.: + * The passed dictionary has to use NSString keys, corresponding to the header + * names. The value associated to each can be a NSString object or a NSData + * object. E.g.: * * call.requestHeaders = @{@"authorization": @"Bearer ..."}; * @@ -205,53 +222,61 @@ extern id const kGRPCTrailersKey; @property(atomic, readonly) NSMutableDictionary *requestHeaders; /** - * This dictionary is populated with the HTTP headers received from the server. This happens before - * any response message is received from the server. It has the same structure as the request - * headers dictionary: Keys are NSString header names; names ending with the suffix "-bin" have a - * NSData value; the others have a NSString value. + * This dictionary is populated with the HTTP headers received from the server. + * This happens before any response message is received from the server. It has + * the same structure as the request headers dictionary: Keys are NSString + * header names; names ending with the suffix "-bin" have a NSData value; the + * others have a NSString value. * - * The value of this property is nil until all response headers are received, and will change before - * any of -writeValue: or -writesFinishedWithError: are sent to the writeable. + * The value of this property is nil until all response headers are received, + * and will change before any of -writeValue: or -writesFinishedWithError: are + * sent to the writeable. */ @property(atomic, readonly) NSDictionary *responseHeaders; /** - * Same as responseHeaders, but populated with the HTTP trailers received from the server before the - * call finishes. + * Same as responseHeaders, but populated with the HTTP trailers received from + * the server before the call finishes. * - * The value of this property is nil until all response trailers are received, and will change - * before -writesFinishedWithError: is sent to the writeable. + * The value of this property is nil until all response trailers are received, + * and will change before -writesFinishedWithError: is sent to the writeable. */ @property(atomic, readonly) NSDictionary *responseTrailers; /** - * The request writer has to write NSData objects into the provided Writeable. The server will - * receive each of those separately and in order as distinct messages. - * A gRPC call might not complete until the request writer finishes. On the other hand, the request - * finishing doesn't necessarily make the call to finish, as the server might continue sending - * messages to the response side of the call indefinitely (depending on the semantics of the - * specific remote method called). + * The request writer has to write NSData objects into the provided Writeable. + * The server will receive each of those separately and in order as distinct + * messages. + * A gRPC call might not complete until the request writer finishes. On the + * other hand, the request finishing doesn't necessarily make the call to + * finish, as the server might continue sending messages to the response side of + * the call indefinitely (depending on the semantics of the specific remote + * method called). * To finish a call right away, invoke cancel. - * host parameter should not contain the scheme (http:// or https://), only the name or IP addr - * and the port number, for example @"localhost:5050". + * host parameter should not contain the scheme (http:// or https://), only the + * name or IP addr and the port number, for example @"localhost:5050". */ - (instancetype)initWithHost:(NSString *)host path:(NSString *)path - requestsWriter:(GRXWriter *)requestsWriter NS_DESIGNATED_INITIALIZER; + requestsWriter:(GRXWriter *)requestsWriter + NS_DESIGNATED_INITIALIZER; /** - * Finishes the request side of this call, notifies the server that the RPC should be cancelled, and - * finishes the response side of the call with an error of code CANCELED. + * Finishes the request side of this call, notifies the server that the RPC + * should be cancelled, and finishes the response side of the call with an error + * of code CANCELED. */ - (void)cancel; /** * Set the call flag for a specific host path. * - * Host parameter should not contain the scheme (http:// or https://), only the name or IP addr - * and the port number, for example @"localhost:5050". + * Host parameter should not contain the scheme (http:// or https://), only the + * name or IP addr and the port number, for example @"localhost:5050". */ -+ (void)setCallSafety:(GRPCCallSafety)callSafety host:(NSString *)host path:(NSString *)path; ++ (void)setCallSafety:(GRPCCallSafety)callSafety + host:(NSString *)host + path:(NSString *)path; // TODO(jcanizales): Let specify a deadline. As a category of GRXWriter? @end @@ -260,7 +285,7 @@ extern id const kGRPCTrailersKey; /** This protocol is kept for backwards compatibility with existing code. */ DEPRECATED_MSG_ATTRIBUTE("Use NSDictionary or NSMutableDictionary instead.") -@protocol GRPCRequestHeaders <NSObject> +@protocol GRPCRequestHeaders<NSObject> @property(nonatomic, readonly) NSUInteger count; - (id)objectForKeyedSubscript:(id)key; @@ -273,6 +298,6 @@ DEPRECATED_MSG_ATTRIBUTE("Use NSDictionary or NSMutableDictionary instead.") #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated" /** This is only needed for backwards-compatibility. */ -@interface NSMutableDictionary (GRPCRequestHeaders) <GRPCRequestHeaders> +@interface NSMutableDictionary (GRPCRequestHeaders)<GRPCRequestHeaders> @end #pragma clang diagnostic pop diff --git a/src/objective-c/GRPCClient/GRPCCall.m b/src/objective-c/GRPCClient/GRPCCall.m index 43204345f5..85d141aa09 100644 --- a/src/objective-c/GRPCClient/GRPCCall.m +++ b/src/objective-c/GRPCClient/GRPCCall.m @@ -33,9 +33,9 @@ #import "GRPCCall.h" +#import <RxLibrary/GRXConcurrentWriteable.h> #include <grpc/grpc.h> #include <grpc/support/time.h> -#import <RxLibrary/GRXConcurrentWriteable.h> #import "private/GRPCConnectivityMonitor.h" #import "private/GRPCHost.h" @@ -45,11 +45,11 @@ #import "private/NSDictionary+GRPC.h" #import "private/NSError+GRPC.h" -NSString * const kGRPCHeadersKey = @"io.grpc.HeadersKey"; -NSString * const kGRPCTrailersKey = @"io.grpc.TrailersKey"; +NSString *const kGRPCHeadersKey = @"io.grpc.HeadersKey"; +NSString *const kGRPCTrailersKey = @"io.grpc.TrailersKey"; static NSMutableDictionary *callFlags; -@interface GRPCCall () <GRXWriteable> +@interface GRPCCall ()<GRXWriteable> // Make them read-write. @property(atomic, strong) NSDictionary *responseHeaders; @property(atomic, strong) NSDictionary *responseTrailers; @@ -85,17 +85,21 @@ static NSMutableDictionary *callFlags; // correct ordering. GRXConcurrentWriteable *_responseWriteable; - // The network thread wants the requestWriter to resume (when the server is ready for more input), - // or to stop (on errors), concurrently with user threads that want to start it, pause it or stop - // it. Because a writer isn't thread-safe, we'll synchronize those operations on it. - // We don't use a dispatch queue for that purpose, because the writer can call writeValue: or - // writesFinishedWithError: on this GRPCCall as part of those operations. We want to be able to - // pause the writer immediately on writeValue:, so we need our locking to be recursive. + // The network thread wants the requestWriter to resume (when the server is + // ready for more input), or to stop (on errors), concurrently with user + // threads that want to start it, pause it or stop it. Because a writer isn't + // thread-safe, we'll synchronize those operations on it. + // We don't use a dispatch queue for that purpose, because the writer can call + // writeValue: or writesFinishedWithError: on this GRPCCall as part of those + // operations. We want to be able to pause the writer immediately on + // writeValue:, so we need our locking to be recursive. GRXWriter *_requestWriter; // To create a retain cycle when a call is started, up until it finishes. See - // |startWithWriteable:| and |finishWithError:|. This saves users from having to retain a - // reference to the call object if all they're interested in is the handler being executed when + // |startWithWriteable:| and |finishWithError:|. This saves users from having + // to retain a + // reference to the call object if all they're interested in is the handler + // being executed when // the response arrives. GRPCCall *_retainSelf; @@ -104,13 +108,16 @@ static NSMutableDictionary *callFlags; @synthesize state = _state; -// TODO(jcanizales): If grpc_init is idempotent, this should be changed from load to initialize. +// TODO(jcanizales): If grpc_init is idempotent, this should be changed from +// load to initialize. + (void)load { grpc_init(); callFlags = [NSMutableDictionary dictionary]; } -+ (void)setCallSafety:(GRPCCallSafety)callSafety host:(NSString *)host path:(NSString *)path { ++ (void)setCallSafety:(GRPCCallSafety)callSafety + host:(NSString *)host + path:(NSString *)path { NSString *hostAndPath = [NSString stringWithFormat:@"%@/%@", host, path]; switch (callSafety) { case GRPCCallSafetyDefault: @@ -141,7 +148,8 @@ static NSMutableDictionary *callFlags; path:(NSString *)path requestsWriter:(GRXWriter *)requestWriter { if (!host || !path) { - [NSException raise:NSInvalidArgumentException format:@"Neither host nor path can be nil."]; + [NSException raise:NSInvalidArgumentException + format:@"Neither host nor path can be nil."]; } if (requestWriter.state != GRXWriterStateNotStarted) { [NSException raise:NSInvalidArgumentException @@ -191,7 +199,10 @@ static NSMutableDictionary *callFlags; - (void)cancel { [self finishWithError:[NSError errorWithDomain:kGRPCErrorDomain code:GRPCErrorCodeCancelled - userInfo:@{NSLocalizedDescriptionKey: @"Canceled by app"}]]; + userInfo:@{ + NSLocalizedDescriptionKey : + @"Canceled by app" + }]]; [self cancelCall]; } @@ -206,15 +217,18 @@ static NSMutableDictionary *callFlags; // Only called from the call queue. // The handler will be called from the network queue. -- (void)startReadWithHandler:(void(^)(grpc_byte_buffer *))handler { +- (void)startReadWithHandler:(void (^)(grpc_byte_buffer *))handler { // TODO(jcanizales): Add error handlers for async failures - [_wrappedCall startBatchWithOperations:@[[[GRPCOpRecvMessage alloc] initWithHandler:handler]]]; + [_wrappedCall startBatchWithOperations:@[ [[GRPCOpRecvMessage alloc] + initWithHandler:handler] ]]; } // Called initially from the network queue once response headers are received, -// then "recursively" from the responseWriteable queue after each response from the +// then "recursively" from the responseWriteable queue after each response from +// the // server has been written. -// If the call is currently paused, this is a noop. Restarting the call will invoke this +// If the call is currently paused, this is a noop. Restarting the call will +// invoke this // method. // TODO(jcanizales): Rename to readResponseIfNotPaused. - (void)startNextRead { @@ -237,15 +251,23 @@ static NSMutableDictionary *callFlags; // don't want to throw, because the app shouldn't crash for a behavior // that's on the hands of any server to have. Instead we finish and ask // the server to cancel. - [weakSelf finishWithError:[NSError errorWithDomain:kGRPCErrorDomain - code:GRPCErrorCodeResourceExhausted - userInfo:@{NSLocalizedDescriptionKey: @"Client does not have enough memory to hold the server response."}]]; + [weakSelf + finishWithError:[NSError + errorWithDomain:kGRPCErrorDomain + code:GRPCErrorCodeResourceExhausted + userInfo:@{ + NSLocalizedDescriptionKey : + @"Client does not have enough " + @"memory to hold the server " + @"response." + }]]; [weakSelf cancelCall]; return; } - [weakWriteable enqueueValue:data completionHandler:^{ - [weakSelf startNextRead]; - }]; + [weakWriteable enqueueValue:data + completionHandler:^{ + [weakSelf startNextRead]; + }]; }]; }); } @@ -254,19 +276,22 @@ static NSMutableDictionary *callFlags; - (void)sendHeaders:(NSDictionary *)headers { // TODO(jcanizales): Add error handlers for async failures - [_wrappedCall startBatchWithOperations:@[[[GRPCOpSendMetadata alloc] initWithMetadata:headers - flags:[GRPCCall callFlagsForHost:_host path:_path] - handler:nil]]]; + [_wrappedCall startBatchWithOperations:@[ + [[GRPCOpSendMetadata alloc] + initWithMetadata:headers + flags:[GRPCCall callFlagsForHost:_host path:_path] + handler:nil] + ]]; } #pragma mark GRXWriteable implementation // Only called from the call queue. The error handler will be called from the // network queue if the write didn't succeed. -- (void)writeMessage:(NSData *)message withErrorHandler:(void (^)())errorHandler { - +- (void)writeMessage:(NSData *)message + withErrorHandler:(void (^)())errorHandler { __weak GRPCCall *weakSelf = self; - void(^resumingHandler)(void) = ^{ + void (^resumingHandler)(void) = ^{ // Resume the request writer. GRPCCall *strongSelf = weakSelf; if (strongSelf) { @@ -275,8 +300,9 @@ static NSMutableDictionary *callFlags; } } }; - [_wrappedCall startBatchWithOperations:@[[[GRPCOpSendMessage alloc] initWithMessage:message - handler:resumingHandler]] + [_wrappedCall startBatchWithOperations:@[ [[GRPCOpSendMessage alloc] + initWithMessage:message + handler:resumingHandler] ] errorHandler:errorHandler]; } @@ -291,18 +317,20 @@ static NSMutableDictionary *callFlags; __weak GRPCCall *weakSelf = self; dispatch_async(_callQueue, ^{ - [weakSelf writeMessage:value withErrorHandler:^{ - [weakSelf finishWithError:[NSError errorWithDomain:kGRPCErrorDomain + [weakSelf writeMessage:value + withErrorHandler:^{ + [weakSelf + finishWithError:[NSError errorWithDomain:kGRPCErrorDomain code:GRPCErrorCodeInternal userInfo:nil]]; - }]; + }]; }); } // Only called from the call queue. The error handler will be called from the // network queue if the requests stream couldn't be closed successfully. - (void)finishRequestWithErrorHandler:(void (^)())errorHandler { - [_wrappedCall startBatchWithOperations:@[[[GRPCOpSendClose alloc] init]] + [_wrappedCall startBatchWithOperations:@[ [[GRPCOpSendClose alloc] init] ] errorHandler:errorHandler]; } @@ -323,17 +351,19 @@ static NSMutableDictionary *callFlags; #pragma mark Invoke -// Both handlers will eventually be called, from the network queue. Writes can start immediately -// after this. +// Both handlers will eventually be called, from the network queue. Writes can +// start immediately after this. // The first one (headersHandler), when the response headers are received. // The second one (completionHandler), whenever the RPC finishes for any reason. -- (void)invokeCallWithHeadersHandler:(void(^)(NSDictionary *))headersHandler - completionHandler:(void(^)(NSError *, NSDictionary *))completionHandler { +- (void)invokeCallWithHeadersHandler:(void (^)(NSDictionary *))headersHandler + completionHandler: + (void (^)(NSError *, NSDictionary *))completionHandler { // TODO(jcanizales): Add error handlers for async failures - [_wrappedCall startBatchWithOperations:@[[[GRPCOpRecvMetadata alloc] - initWithHandler:headersHandler]]]; - [_wrappedCall startBatchWithOperations:@[[[GRPCOpRecvStatus alloc] - initWithHandler:completionHandler]]]; + [_wrappedCall startBatchWithOperations:@[ [[GRPCOpRecvMetadata alloc] + initWithHandler:headersHandler] ]]; + [_wrappedCall + startBatchWithOperations:@[ [[GRPCOpRecvStatus alloc] + initWithHandler:completionHandler] ]]; } - (void)invokeCall { @@ -341,27 +371,31 @@ static NSMutableDictionary *callFlags; // Response headers received. self.responseHeaders = headers; [self startNextRead]; - } completionHandler:^(NSError *error, NSDictionary *trailers) { - self.responseTrailers = trailers; - - if (error) { - NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; - if (error.userInfo) { - [userInfo addEntriesFromDictionary:error.userInfo]; - } - userInfo[kGRPCTrailersKey] = self.responseTrailers; - // TODO(jcanizales): The C gRPC library doesn't guarantee that the headers block will be - // called before this one, so an error might end up with trailers but no headers. We - // shouldn't call finishWithError until ater both blocks are called. It is also when this is - // done that we can provide a merged view of response headers and trailers in a thread-safe - // way. - if (self.responseHeaders) { - userInfo[kGRPCHeadersKey] = self.responseHeaders; - } - error = [NSError errorWithDomain:error.domain code:error.code userInfo:userInfo]; - } - [self finishWithError:error]; - }]; + } + completionHandler:^(NSError *error, NSDictionary *trailers) { + self.responseTrailers = trailers; + + if (error) { + NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; + if (error.userInfo) { + [userInfo addEntriesFromDictionary:error.userInfo]; + } + userInfo[kGRPCTrailersKey] = self.responseTrailers; + // TODO(jcanizales): The C gRPC library doesn't guarantee that the + // headers block will be called before this one, so an error might end + // up with trailers but no headers. We shouldn't call finishWithError + // until ater both blocks are called. It is also when this is done + // that we can provide a merged view of response headers and trailers + // in a thread-safe way. + if (self.responseHeaders) { + userInfo[kGRPCHeadersKey] = self.responseHeaders; + } + error = [NSError errorWithDomain:error.domain + code:error.code + userInfo:userInfo]; + } + [self finishWithError:error]; + }]; // Now that the RPC has been initiated, request writes can start. @synchronized(_requestWriter) { [_requestWriter startWithWriteable:self]; @@ -375,43 +409,55 @@ static NSMutableDictionary *callFlags; _state = GRXWriterStateStarted; } - // Create a retain cycle so that this instance lives until the RPC finishes (or is cancelled). - // This makes RPCs in which the call isn't externally retained possible (as long as it is started - // before being autoreleased). - // Care is taken not to retain self strongly in any of the blocks used in this implementation, so - // that the life of the instance is determined by this retain cycle. + // Create a retain cycle so that this instance lives until the RPC finishes + // (or is cancelled). This makes RPCs in which the call isn't externally + // retained possible (as long as it is started before being autoreleased). + // Care is taken not to retain self strongly in any of the blocks used in this + // implementation, so that the life of the instance is determined by this + // retain cycle. _retainSelf = self; - _responseWriteable = [[GRXConcurrentWriteable alloc] initWithWriteable:writeable]; + _responseWriteable = + [[GRXConcurrentWriteable alloc] initWithWriteable:writeable]; _wrappedCall = [[GRPCWrappedCall alloc] initWithHost:_host path:_path]; NSAssert(_wrappedCall, @"Error allocating RPC objects. Low memory?"); [self sendHeaders:_requestHeaders]; [self invokeCall]; + // TODO(jcanizales): Extract this logic somewhere common. - NSString *host = [NSURL URLWithString:[@"https://" stringByAppendingString:_host]].host; + NSString *host = + [NSURL URLWithString:[@"https://" stringByAppendingString:_host]].host; if (!host) { // TODO(jcanizales): Check this on init. - [NSException raise:NSInvalidArgumentException format:@"host of %@ is nil", _host]; + [NSException raise:NSInvalidArgumentException + format:@"host of %@ is nil", _host]; } __weak typeof(self) weakSelf = self; _connectivityMonitor = [GRPCConnectivityMonitor monitorWithHost:host]; - [_connectivityMonitor handleLossWithHandler:^{ + void (^handler)() = ^{ typeof(self) strongSelf = weakSelf; if (strongSelf) { - [strongSelf finishWithError:[NSError errorWithDomain:kGRPCErrorDomain - code:GRPCErrorCodeUnavailable - userInfo:@{NSLocalizedDescriptionKey: @"Connectivity lost."}]]; - [[GRPCHost hostWithAddress:strongSelf->_host] disconnect]; + [strongSelf + finishWithError:[NSError errorWithDomain:kGRPCErrorDomain + code:GRPCErrorCodeUnavailable + userInfo:@{ + NSLocalizedDescriptionKey : + @"Connectivity lost." + }]]; } - }]; + }; + [_connectivityMonitor handleLossWithHandler:handler + wifiStatusChangeHandler:^{ + }]; } - (void)setState:(GRXWriterState)newState { @synchronized(self) { // Manual transitions are only allowed from the started or paused states. - if (_state == GRXWriterStateNotStarted || _state == GRXWriterStateFinished) { + if (_state == GRXWriterStateNotStarted || + _state == GRXWriterStateFinished) { return; } diff --git a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h index fe3b8f39d1..c0bbf22c74 100644 --- a/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h +++ b/src/objective-c/GRPCClient/private/GRPCCompletionQueue.h @@ -34,18 +34,19 @@ #import <Foundation/Foundation.h> #include <grpc/grpc.h> -typedef void(^GRPCQueueCompletionHandler)(bool success); +typedef void (^GRPCQueueCompletionHandler)(bool success); /** - * This class lets one more easily use |grpc_completion_queue|. To use it, pass the value of the - * |unmanagedQueue| property of an instance of this class to |grpc_channel_create_call|. Then for - * every |grpc_call_*| method that accepts a tag, you can pass a block of type - * |GRPCQueueCompletionHandler| (remembering to cast it using |__bridge_retained|). The block is - * guaranteed to eventually be called, by a concurrent queue, and then released. Each such block is + * This class lets one more easily use |grpc_completion_queue|. To use it, pass + * the value of the |unmanagedQueue| property of an instance of this class to + * |grpc_channel_create_call|. Then for every |grpc_call_*| method that accepts + * a tag, you can pass a block of type |GRPCQueueCompletionHandler| (remembering + * to cast it using |__bridge_retained|). The block is guaranteed to eventually + * be called, by a concurrent queue, and then released. Each such block is * passed a |bool| that tells if the operation was successful. * - * Release the GRPCCompletionQueue object only after you are not going to pass any more blocks to - * the |grpc_call| that's using it. + * Release the GRPCCompletionQueue object only after you are not going to pass + * any more blocks to the |grpc_call| that's using it. */ @interface GRPCCompletionQueue : NSObject @property(nonatomic, readonly) grpc_completion_queue *unmanagedQueue; diff --git a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h index 2fae410331..941b596d2c 100644 --- a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h +++ b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.h @@ -45,7 +45,7 @@ */ #define GRPC_XMACRO_ITEM(methodName, FlagName) \ -@property(nonatomic, readonly) BOOL methodName; + @property(nonatomic, readonly) BOOL methodName; #include "GRPCReachabilityFlagNames.xmacro.h" #undef GRPC_XMACRO_ITEM @@ -53,7 +53,6 @@ @property(nonatomic, readonly) BOOL isHostReachable; @end - @interface GRPCConnectivityMonitor : NSObject + (nullable instancetype)monitorWithHost:(nonnull NSString *)hostName; @@ -61,17 +60,19 @@ - (nonnull instancetype)init NS_UNAVAILABLE; /** - * Queue on which callbacks will be dispatched. Default is the main queue. Set it before calling - * handleLossWithHandler:. + * Queue on which callbacks will be dispatched. Default is the main queue. Set + * it before calling handleLossWithHandler:. */ // TODO(jcanizales): Default to a serial background queue instead. @property(nonatomic, strong, null_resettable) dispatch_queue_t queue; /** - * Calls handler every time the connectivity to this instance's host is lost. If this instance is - * released before that happens, the handler won't be called. - * Only one handler is active at a time, so if this method is called again before the previous - * handler has been called, it might never be called at all (or yes, if it has already been queued). + * Calls handler every time the connectivity to this instance's host is lost. If + * this instance is released before that happens, the handler won't be called. + * Only one handler is active at a time, so if this method is called again + * before the previous handler has been called, it might never be called at all + * (or yes, if it has already been queued). */ -- (void)handleLossWithHandler:(nonnull void (^)())handler; +- (void)handleLossWithHandler:(nonnull void (^)())handler + wifiStatusChangeHandler:(nonnull void (^)())wifiStatusChangeHandler; @end diff --git a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m index b4061bd5ef..fec6391d39 100644 --- a/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m +++ b/src/objective-c/GRPCClient/private/GRPCConnectivityMonitor.m @@ -58,19 +58,20 @@ } */ -#define GRPC_XMACRO_ITEM(methodName, FlagName) \ -- (BOOL)methodName { \ - return !!(_flags & kSCNetworkReachabilityFlags ## FlagName); \ -} +#define GRPC_XMACRO_ITEM(methodName, FlagName) \ + -(BOOL)methodName { \ + return !!(_flags & kSCNetworkReachabilityFlags##FlagName); \ + } #include "GRPCReachabilityFlagNames.xmacro.h" #undef GRPC_XMACRO_ITEM - (BOOL)isHostReachable { - // Note: connectionOnDemand means it'll be reachable only if using the CFSocketStream API or APIs - // on top of it. - // connectionRequired means we can't tell until a connection is attempted (e.g. for VPN on - // demand). - return self.reachable && !self.interventionRequired && !self.connectionOnDemand; + // Note: connectionOnDemand means it'll be reachable only if using the + // CFSocketStream API or APIs on top of it. + // connectionRequired means we can't tell until a connection is attempted + // (e.g. for VPN on demand). + return self.reachable && !self.interventionRequired && + !self.connectionOnDemand; } - (NSString *)description { @@ -79,24 +80,26 @@ /* * For each flag, add its name to the array if it's ON. Example: - if (self.isCell) { - [activeOptions addObject:@"isCell"]; - } + if (self.isCell) { + [activeOptions addObject:@"isCell"]; + } */ -#define GRPC_XMACRO_ITEM(methodName, FlagName) \ - if (self.methodName) { \ - [activeOptions addObject:@#methodName]; \ - } -#include "GRPCReachabilityFlagNames.xmacro.h" -#undef GRPC_XMACRO_ITEM + #define GRPC_XMACRO_ITEM(methodName, FlagName) \ + if (self.methodName) { \ + [activeOptions addObject:@ #methodName]; \ + } + #include "GRPCReachabilityFlagNames.xmacro.h" + #undef GRPC_XMACRO_ITEM - return activeOptions.count == 0 ? @"(none)" : [activeOptions componentsJoinedByString:@", "]; + return activeOptions.count == 0 + ? @"(none)" + : [activeOptions componentsJoinedByString:@", "]; } - (BOOL)isEqual:(id)object { return [object isKindOfClass:[GRPCReachabilityFlags class]] && - _flags == ((GRPCReachabilityFlags *)object)->_flags; + _flags == ((GRPCReachabilityFlags *)object)->_flags; } - (NSUInteger)hash { @@ -106,29 +109,33 @@ #pragma mark Connectivity Monitor -// Assumes the third argument is a block that accepts a GRPCReachabilityFlags object, and passes the -// received ones to it. +// Assumes the third argument is a block that accepts a GRPCReachabilityFlags +// object, and passes the received ones to it. static void PassFlagsToContextInfoBlock(SCNetworkReachabilityRef target, SCNetworkReachabilityFlags flags, void *info) { - #pragma unused (target) - // This can be called many times with the same info. The info is retained by SCNetworkReachability - // while this function is being executed. - void (^handler)(GRPCReachabilityFlags *) = (__bridge void (^)(GRPCReachabilityFlags *))info; +#pragma unused(target) + // This can be called many times with the same info. The info is retained by + // SCNetworkReachability while this function is being executed. + void (^handler)(GRPCReachabilityFlags *) = + (__bridge void (^)(GRPCReachabilityFlags *))info; handler([[GRPCReachabilityFlags alloc] initWithFlags:flags]); } @implementation GRPCConnectivityMonitor { SCNetworkReachabilityRef _reachabilityRef; + GRPCReachabilityFlags *_previousReachabilityFlags; } -- (nullable instancetype)initWithReachability:(nullable SCNetworkReachabilityRef)reachability { +- (nullable instancetype)initWithReachability: + (nullable SCNetworkReachabilityRef)reachability { if (!reachability) { return nil; } if ((self = [super init])) { _reachabilityRef = CFRetain(reachability); _queue = dispatch_get_main_queue(); + _previousReachabilityFlags = nil; } return self; } @@ -142,33 +149,46 @@ static void PassFlagsToContextInfoBlock(SCNetworkReachabilityRef target, SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, hostName); - GRPCConnectivityMonitor *returnValue = [[self alloc] initWithReachability:reachability]; + GRPCConnectivityMonitor *returnValue = + [[self alloc] initWithReachability:reachability]; if (reachability) { CFRelease(reachability); } return returnValue; } -- (void)handleLossWithHandler:(void (^)())handler { +- (void)handleLossWithHandler:(void (^)())handler + wifiStatusChangeHandler:(nonnull void (^)())wifiStatusChangeHandler { + __weak typeof(self) weakSelf = self; [self startListeningWithHandler:^(GRPCReachabilityFlags *flags) { - if (!flags.isHostReachable) { - handler(); + typeof(self) strongSelf = weakSelf; + if (strongSelf) { + if (!flags.reachable) { + handler(); + } else if (strongSelf->_previousReachabilityFlags && + (flags.isWWAN ^ + strongSelf->_previousReachabilityFlags.isWWAN)) { + wifiStatusChangeHandler(); + } + strongSelf->_previousReachabilityFlags = flags; } }]; } - (void)startListeningWithHandler:(void (^)(GRPCReachabilityFlags *))handler { - // Copy to ensure the handler block is in the heap (and so can't be deallocated when this method - // returns). + // Copy to ensure the handler block is in the heap (and so can't be + // deallocated when this method returns). void (^copiedHandler)(GRPCReachabilityFlags *) = [handler copy]; SCNetworkReachabilityContext context = { - .version = 0, - .info = (__bridge void *)copiedHandler, - .retain = CFRetain, - .release = CFRelease, + .version = 0, + .info = (__bridge void *)copiedHandler, + .retain = CFRetain, + .release = CFRelease, }; - // The following will retain context.info, and release it when the callback is set to NULL. - SCNetworkReachabilitySetCallback(_reachabilityRef, PassFlagsToContextInfoBlock, &context); + // The following will retain context.info, and release it when the callback is + // set to NULL. + SCNetworkReachabilitySetCallback(_reachabilityRef, + PassFlagsToContextInfoBlock, &context); SCNetworkReachabilitySetDispatchQueue(_reachabilityRef, _queue); } diff --git a/src/objective-c/GRPCClient/private/GRPCHost.m b/src/objective-c/GRPCClient/private/GRPCHost.m index f8634b448e..0524472f53 100644 --- a/src/objective-c/GRPCClient/private/GRPCHost.m +++ b/src/objective-c/GRPCClient/private/GRPCHost.m @@ -33,9 +33,9 @@ #import "GRPCHost.h" +#import <GRPCClient/GRPCCall.h> #include <grpc/grpc.h> #include <grpc/grpc_security.h> -#import <GRPCClient/GRPCCall.h> #ifdef GRPC_COMPILE_WITH_CRONET #import <GRPCClient/GRPCCall+ChannelArg.h> #import <GRPCClient/GRPCCall+Cronet.h> @@ -43,18 +43,27 @@ #import "GRPCChannel.h" #import "GRPCCompletionQueue.h" +#import "GRPCConnectivityMonitor.h" #import "NSDictionary+GRPC.h" NS_ASSUME_NONNULL_BEGIN -// TODO(jcanizales): Generate the version in a standalone header, from templates. Like +// TODO(jcanizales): Generate the version in a standalone header, from +// templates. Like // templates/src/core/surface/version.c.template . #define GRPC_OBJC_VERSION_STRING @"1.0.0" static NSMutableDictionary *kHostCache; +// This connectivity monitor flushes the host cache when connectivity status +// changes or when connection switch between Wifi and Cellular data, so that a +// new call will use a new channel. Otherwise, a new call will still use the +// cached channel which is no longer available and will cause gRPC to hang. +static GRPCConnectivityMonitor *connectivityMonitor = nil; + @implementation GRPCHost { - // TODO(mlumish): Investigate whether caching channels with strong links is a good idea. + // TODO(mlumish): Investigate whether caching channels with strong links is a + // good idea. GRPCChannel *_channel; } @@ -74,11 +83,13 @@ static NSMutableDictionary *kHostCache; return nil; } - // To provide a default port, we try to interpret the address. If it's just a host name without - // scheme and without port, we'll use port 443. If it has a scheme, we pass it untouched to the C - // gRPC library. - // TODO(jcanizales): Add unit tests for the types of addresses we want to let pass untouched. - NSURL *hostURL = [NSURL URLWithString:[@"https://" stringByAppendingString:address]]; + // To provide a default port, we try to interpret the address. If it's just a + // host name without scheme and without port, we'll use port 443. If it has a + // scheme, we pass it untouched to the C gRPC library. + // TODO(jcanizales): Add unit tests for the types of addresses we want to let + // pass untouched. + NSURL *hostURL = + [NSURL URLWithString:[@"https://" stringByAppendingString:address]]; if (hostURL.host && !hostURL.port) { address = [hostURL.host stringByAppendingString:@":443"]; } @@ -88,6 +99,7 @@ static NSMutableDictionary *kHostCache; dispatch_once(&cacheInitialization, ^{ kHostCache = [NSMutableDictionary dictionary]; }); + @synchronized(kHostCache) { GRPCHost *cachedHost = kHostCache[address]; if (cachedHost) { @@ -99,6 +111,17 @@ static NSMutableDictionary *kHostCache; _secure = YES; kHostCache[address] = self; } + // Keep a single monitor to flush the cache if the connectivity status changes + // Thread safety guarded by @synchronized(kHostCache) + if (!connectivityMonitor) { + connectivityMonitor = + [GRPCConnectivityMonitor monitorWithHost:hostURL.host]; + void (^handler)() = ^{ + [GRPCHost flushChannelCache]; + }; + [connectivityMonitor handleLossWithHandler:handler + wifiStatusChangeHandler:handler]; + } } return self; } @@ -114,7 +137,7 @@ static NSMutableDictionary *kHostCache; } + (void)resetAllHostSettings { - @synchronized (kHostCache) { + @synchronized(kHostCache) { kHostCache = [NSMutableDictionary dictionary]; } } @@ -140,16 +163,19 @@ static NSMutableDictionary *kHostCache; static NSError *kDefaultRootsError; static dispatch_once_t loading; dispatch_once(&loading, ^{ - NSString *defaultPath = @"gRPCCertificates.bundle/roots"; // .pem - // Do not use NSBundle.mainBundle, as it's nil for tests of library projects. + NSString *defaultPath = @"gRPCCertificates.bundle/roots"; // .pem + // Do not use NSBundle.mainBundle, as it's nil for tests of library + // projects. NSBundle *bundle = [NSBundle bundleForClass:self.class]; NSString *path = [bundle pathForResource:defaultPath ofType:@"pem"]; NSError *error; - // Files in PEM format can have non-ASCII characters in their comments (e.g. for the name of the - // issuer). Load them as UTF8 and produce an ASCII equivalent. - NSString *contentInUTF8 = [NSString stringWithContentsOfFile:path - encoding:NSUTF8StringEncoding - error:&error]; + // Files in PEM format can have non-ASCII characters in their comments (e.g. + // for the name of the issuer). Load them as UTF8 and produce an ASCII + // equivalent. + NSString *contentInUTF8 = + [NSString stringWithContentsOfFile:path + encoding:NSUTF8StringEncoding + error:&error]; if (contentInUTF8 == nil) { kDefaultRootsError = error; return; @@ -161,17 +187,21 @@ static NSMutableDictionary *kHostCache; NSData *rootsASCII; if (pemRootCerts != nil) { rootsASCII = [pemRootCerts dataUsingEncoding:NSASCIIStringEncoding - allowLossyConversion:YES]; + allowLossyConversion:YES]; } else { if (kDefaultRootsASCII == nil) { if (errorPtr) { *errorPtr = kDefaultRootsError; } - NSAssert(kDefaultRootsASCII, @"Could not read gRPCCertificates.bundle/roots.pem. This file, " - "with the root certificates, is needed to establish secure (TLS) connections. " - "Because the file is distributed with the gRPC library, this error is usually a sign " - "that the library wasn't configured correctly for your project. Error: %@", - kDefaultRootsError); + NSAssert(kDefaultRootsASCII, + @"Could not read gRPCCertificates.bundle/roots.pem. This file, " + "with the root certificates, is needed to establish secure " + "(TLS) connections. " + "Because the file is distributed with the gRPC library, this " + "error is usually a sign " + "that the library wasn't configured correctly for your " + "project. Error: %@", + kDefaultRootsError); return NO; } rootsASCII = kDefaultRootsASCII; @@ -182,10 +212,12 @@ static NSMutableDictionary *kHostCache; creds = grpc_ssl_credentials_create(rootsASCII.bytes, NULL, NULL); } else { grpc_ssl_pem_key_cert_pair key_cert_pair; - NSData *privateKeyASCII = [pemPrivateKey dataUsingEncoding:NSASCIIStringEncoding - allowLossyConversion:YES]; - NSData *certChainASCII = [pemCertChain dataUsingEncoding:NSASCIIStringEncoding - allowLossyConversion:YES]; + NSData *privateKeyASCII = + [pemPrivateKey dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; + NSData *certChainASCII = + [pemCertChain dataUsingEncoding:NSASCIIStringEncoding + allowLossyConversion:YES]; key_cert_pair.private_key = privateKeyASCII.bytes; key_cert_pair.cert_chain = certChainASCII.bytes; creds = grpc_ssl_credentials_create(rootsASCII.bytes, &key_cert_pair, NULL); @@ -205,7 +237,8 @@ static NSMutableDictionary *kHostCache; NSMutableDictionary *args = [NSMutableDictionary dictionary]; // TODO(jcanizales): Add OS and device information (see - // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#user-agents ). + // https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#user-agents + // ). NSString *userAgent = @"grpc-objc/" GRPC_OBJC_VERSION_STRING; if (_userAgentPrefix) { userAgent = [_userAgentPrefix stringByAppendingFormat:@" %@", userAgent]; @@ -219,7 +252,7 @@ static NSMutableDictionary *kHostCache; if (_responseSizeLimitOverride) { args[@GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH] = _responseSizeLimitOverride; } - // Use 10000ms initial backoff time for correct behavior on bad/slow networks + // Use 10000ms initial backoff time for correct behavior on bad/slow networks args[@GRPC_ARG_INITIAL_RECONNECT_BACKOFF_MS] = @10000; return args; } @@ -230,31 +263,35 @@ static NSMutableDictionary *kHostCache; BOOL useCronet = [GRPCCall isUsingCronet]; #endif if (_secure) { - GRPCChannel *channel; - @synchronized(self) { - if (_channelCreds == nil) { - [self setTLSPEMRootCerts:nil withPrivateKey:nil withCertChain:nil error:nil]; - } + GRPCChannel *channel; + @synchronized(self) { + if (_channelCreds == nil) { + [self setTLSPEMRootCerts:nil + withPrivateKey:nil + withCertChain:nil + error:nil]; + } #ifdef GRPC_COMPILE_WITH_CRONET - if (useCronet) { - channel = [GRPCChannel secureCronetChannelWithHost:_address - channelArgs:args]; - } else + if (useCronet) { + channel = + [GRPCChannel secureCronetChannelWithHost:_address channelArgs:args]; + } else #endif - { - channel = [GRPCChannel secureChannelWithHost:_address - credentials:_channelCreds - channelArgs:args]; - } + { + channel = [GRPCChannel secureChannelWithHost:_address + credentials:_channelCreds + channelArgs:args]; } - return channel; + } + return channel; } else { return [GRPCChannel insecureChannelWithHost:_address channelArgs:args]; } } - (NSString *)hostName { - // TODO(jcanizales): Default to nil instead of _address when Issue #2635 is clarified. + // TODO(jcanizales): Default to nil instead of _address when Issue #2635 is + // clarified. return _hostNameOverride ?: _address; } diff --git a/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h b/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h index 4b92504b55..f5b9e7e64c 100644 --- a/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h +++ b/src/objective-c/GRPCClient/private/GRPCReachabilityFlagNames.xmacro.h @@ -55,7 +55,7 @@ #endif #if TARGET_OS_IPHONE -GRPC_XMACRO_ITEM(isCell, IsWWAN) +GRPC_XMACRO_ITEM(isWWAN, IsWWAN) #endif GRPC_XMACRO_ITEM(reachable, Reachable) GRPC_XMACRO_ITEM(transientConnection, TransientConnection) diff --git a/src/objective-c/GRPCClient/private/GRPCRequestHeaders.m b/src/objective-c/GRPCClient/private/GRPCRequestHeaders.m index c6a03c145e..58c6032e80 100644 --- a/src/objective-c/GRPCClient/private/GRPCRequestHeaders.m +++ b/src/objective-c/GRPCClient/private/GRPCRequestHeaders.m @@ -38,9 +38,10 @@ #import "NSDictionary+GRPC.h" // Used by the setter. -static void CheckIsNonNilASCII(NSString *name, NSString* value) { +static void CheckIsNonNilASCII(NSString *name, NSString *value) { if (!value) { - [NSException raise:NSInvalidArgumentException format:@"%@ cannot be nil", name]; + [NSException raise:NSInvalidArgumentException + format:@"%@ cannot be nil", name]; } if (![value canBeConvertedToEncoding:NSASCIIStringEncoding]) { [NSException raise:NSInvalidArgumentException @@ -52,15 +53,20 @@ static void CheckIsNonNilASCII(NSString *name, NSString* value) { static void CheckKeyValuePairIsValid(NSString *key, id value) { if ([key hasSuffix:@"-bin"]) { if (![value isKindOfClass:NSData.class]) { - [NSException raise:NSInvalidArgumentException - format:@"Expected NSData value for header %@ ending in \"-bin\", " - @"instead got %@", key, value]; + [NSException + raise:NSInvalidArgumentException + format:@"Expected NSData value for header %@ ending in \"-bin\", " + @"instead got %@", + key, value]; } } else { if (![value isKindOfClass:NSString.class]) { - [NSException raise:NSInvalidArgumentException - format:@"Expected NSString value for header %@ not ending in \"-bin\", " - @"instead got %@", key, value]; + [NSException + raise:NSInvalidArgumentException + format: + @"Expected NSString value for header %@ not ending in \"-bin\", " + @"instead got %@", + key, value]; } CheckIsNonNilASCII(@"Text header value", (NSString *)value); } @@ -68,9 +74,10 @@ static void CheckKeyValuePairIsValid(NSString *key, id value) { @implementation GRPCRequestHeaders { __weak GRPCCall *_call; - // The NSMutableDictionary superclass doesn't hold any storage (so that people can implement their - // own in subclasses). As that's not the reason we're subclassing, we just delegate storage to the - // default NSMutableDictionary subclass returned by the cluster (e.g. __NSDictionaryM on iOS 9). + // The NSMutableDictionary superclass doesn't hold any storage (so that people + // can implement their own in subclasses). As that's not the reason we're + // subclassing, we just delegate storage to the default NSMutableDictionary + // subclass returned by the cluster (e.g. __NSDictionaryM on iOS 9). NSMutableDictionary *_delegate; } @@ -91,7 +98,8 @@ static void CheckKeyValuePairIsValid(NSString *key, id value) { } // Designated initializer -- (instancetype)initWithCall:(GRPCCall *)call storage:(NSMutableDictionary *)storage { +- (instancetype)initWithCall:(GRPCCall *)call + storage:(NSMutableDictionary *)storage { // TODO(jcanizales): Throw if call or storage are nil. if ((self = [super init])) { _call = call; @@ -100,9 +108,10 @@ static void CheckKeyValuePairIsValid(NSString *key, id value) { return self; } -- (instancetype)initWithObjects:(const id _Nonnull __unsafe_unretained *)objects - forKeys:(const id<NSCopying> _Nonnull __unsafe_unretained *)keys - count:(NSUInteger)cnt { +- (instancetype) +initWithObjects:(const id _Nonnull __unsafe_unretained *)objects + forKeys:(const id<NSCopying> _Nonnull __unsafe_unretained *)keys + count:(NSUInteger)cnt { return [self init]; } @@ -134,7 +143,7 @@ static void CheckKeyValuePairIsValid(NSString *key, id value) { return _delegate.count; } -- (NSEnumerator * _Nonnull)keyEnumerator { +- (NSEnumerator *_Nonnull)keyEnumerator { return [_delegate keyEnumerator]; } diff --git a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m index 627b6aa86d..bbda9f2f64 100644 --- a/src/objective-c/GRPCClient/private/GRPCWrappedCall.m +++ b/src/objective-c/GRPCClient/private/GRPCWrappedCall.m @@ -34,27 +34,27 @@ #import "GRPCWrappedCall.h" #import <Foundation/Foundation.h> -#include <grpc/grpc.h> #include <grpc/byte_buffer.h> +#include <grpc/grpc.h> #include <grpc/support/alloc.h> #import "GRPCCompletionQueue.h" #import "GRPCHost.h" -#import "NSDictionary+GRPC.h" #import "NSData+GRPC.h" +#import "NSDictionary+GRPC.h" #import "NSError+GRPC.h" @implementation GRPCOperation { -@protected - // Most operation subclasses don't set any flags in the grpc_op, and rely on the flag member being - // initialized to zero. + @protected + // Most operation subclasses don't set any flags in the grpc_op, and rely on + // the flag member being initialized to zero. grpc_op _op; - void(^_handler)(); + void (^_handler)(); } - (void)finish { if (_handler) { - void(^handler)() = _handler; + void (^handler)() = _handler; _handler = nil; handler(); } @@ -101,7 +101,8 @@ - (instancetype)initWithMessage:(NSData *)message handler:(void (^)())handler { if (!message) { - [NSException raise:NSInvalidArgumentException format:@"message cannot be nil"]; + [NSException raise:NSInvalidArgumentException + format:@"message cannot be nil"]; } if (self = [super init]) { _op.op = GRPC_OP_SEND_MESSAGE; @@ -137,11 +138,11 @@ grpc_metadata_array _headers; } -- (instancetype) init { +- (instancetype)init { return [self initWithHandler:nil]; } -- (instancetype) initWithHandler:(void (^)(NSDictionary *))handler { +- (instancetype)initWithHandler:(void (^)(NSDictionary *))handler { if (self = [super init]) { _op.op = GRPC_OP_RECV_INITIAL_METADATA; grpc_metadata_array_init(&_headers); @@ -152,7 +153,7 @@ _handler = ^{ __strong typeof(self) strongSelf = weakSelf; NSDictionary *metadata = [NSDictionary - grpc_dictionaryFromMetadataArray:strongSelf->_headers]; + grpc_dictionaryFromMetadataArray:strongSelf->_headers]; handler(metadata); }; } @@ -166,7 +167,7 @@ @end -@implementation GRPCOpRecvMessage{ +@implementation GRPCOpRecvMessage { grpc_byte_buffer *_receivedMessage; } @@ -192,18 +193,18 @@ @end -@implementation GRPCOpRecvStatus{ +@implementation GRPCOpRecvStatus { grpc_status_code _statusCode; char *_details; size_t _detailsCapacity; grpc_metadata_array _trailers; } -- (instancetype) init { +- (instancetype)init { return [self initWithHandler:nil]; } -- (instancetype) initWithHandler:(void (^)(NSError *, NSDictionary *))handler { +- (instancetype)initWithHandler:(void (^)(NSError *, NSDictionary *))handler { if (self = [super init]) { _op.op = GRPC_OP_RECV_STATUS_ON_CLIENT; _op.data.recv_status_on_client.status = &_statusCode; @@ -216,10 +217,11 @@ __weak typeof(self) weakSelf = self; _handler = ^{ __strong typeof(self) strongSelf = weakSelf; - NSError *error = [NSError grpc_errorFromStatusCode:strongSelf->_statusCode - details:strongSelf->_details]; + NSError *error = + [NSError grpc_errorFromStatusCode:strongSelf->_statusCode + details:strongSelf->_details]; NSDictionary *trailers = [NSDictionary - grpc_dictionaryFromMetadataArray:strongSelf->_trailers]; + grpc_dictionaryFromMetadataArray:strongSelf->_trailers]; handler(error, trailers); }; } @@ -245,20 +247,21 @@ return [self initWithHost:nil path:nil]; } -- (instancetype)initWithHost:(NSString *)host - path:(NSString *)path { +- (instancetype)initWithHost:(NSString *)host path:(NSString *)path { if (!path || !host) { [NSException raise:NSInvalidArgumentException format:@"path and host cannot be nil."]; } if (self = [super init]) { - // Each completion queue consumes one thread. There's a trade to be made between creating and - // consuming too many threads and having contention of multiple calls in a single completion - // queue. Currently we use a singleton queue. + // Each completion queue consumes one thread. There's a trade to be made + // between creating and consuming too many threads and having contention of + // multiple calls in a single completion queue. Currently we use a singleton + // queue. _queue = [GRPCCompletionQueue completionQueue]; - _call = [[GRPCHost hostWithAddress:host] unmanagedCallWithPath:path completionQueue:_queue]; + _call = [[GRPCHost hostWithAddress:host] unmanagedCallWithPath:path + completionQueue:_queue]; if (_call == NULL) { return nil; } @@ -270,32 +273,35 @@ [self startBatchWithOperations:operations errorHandler:nil]; } -- (void)startBatchWithOperations:(NSArray *)operations errorHandler:(void (^)())errorHandler { +- (void)startBatchWithOperations:(NSArray *)operations + errorHandler:(void (^)())errorHandler { size_t nops = operations.count; grpc_op *ops_array = gpr_malloc(nops * sizeof(grpc_op)); size_t i = 0; for (GRPCOperation *operation in operations) { ops_array[i++] = operation.op; } - grpc_call_error error = grpc_call_start_batch(_call, ops_array, nops, - (__bridge_retained void *)(^(bool success){ - if (!success) { - if (errorHandler) { - errorHandler(); - } else { - return; - } - } - for (GRPCOperation *operation in operations) { - [operation finish]; - } - }), NULL); + grpc_call_error error = grpc_call_start_batch( + _call, ops_array, nops, (__bridge_retained void *)(^(bool success) { + if (!success) { + if (errorHandler) { + errorHandler(); + } else { + return; + } + } + for (GRPCOperation *operation in operations) { + [operation finish]; + } + }), + NULL); gpr_free(ops_array); if (error != GRPC_CALL_OK) { [NSException raise:NSInternalInconsistencyException - format:@"A precondition for calling grpc_call_start_batch wasn't met. Error %i", - error]; + format:@"A precondition for calling grpc_call_start_batch " + @"wasn't met. Error %i", + error]; } } diff --git a/src/objective-c/GRPCClient/private/NSError+GRPC.h b/src/objective-c/GRPCClient/private/NSError+GRPC.h index e0c1efc1f9..a9a321470c 100644 --- a/src/objective-c/GRPCClient/private/NSError+GRPC.h +++ b/src/objective-c/GRPCClient/private/NSError+GRPC.h @@ -36,8 +36,9 @@ @interface NSError (GRPC) /** - * Returns nil if the status code is OK. Otherwise, a NSError whose code is one of |GRPCErrorCode| - * and whose domain is |kGRPCErrorDomain|. + * Returns nil if the status code is OK. Otherwise, a NSError whose code is one + * of |GRPCErrorCode| and whose domain is |kGRPCErrorDomain|. */ -+ (instancetype)grpc_errorFromStatusCode:(grpc_status_code)statusCode details:(char *)details; ++ (instancetype)grpc_errorFromStatusCode:(grpc_status_code)statusCode + details:(char *)details; @end diff --git a/src/objective-c/tests/Connectivity/ConnectivityTestingApp.xcodeproj/project.pbxproj b/src/objective-c/tests/Connectivity/ConnectivityTestingApp.xcodeproj/project.pbxproj index 2a9466c03f..3f26c98564 100644 --- a/src/objective-c/tests/Connectivity/ConnectivityTestingApp.xcodeproj/project.pbxproj +++ b/src/objective-c/tests/Connectivity/ConnectivityTestingApp.xcodeproj/project.pbxproj @@ -156,7 +156,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; 5347BF6C41E7888C1C05CD88 /* [CP] Copy Pods Resources */ = { diff --git a/src/objective-c/tests/Connectivity/Podfile b/src/objective-c/tests/Connectivity/Podfile index f9224d9e4e..27ff935c54 100644 --- a/src/objective-c/tests/Connectivity/Podfile +++ b/src/objective-c/tests/Connectivity/Podfile @@ -1,10 +1,32 @@ install! 'cocoapods', :deterministic_uuids => false +platform :ios, '8.0' # Location of gRPC's repo root relative to this file. GRPC_LOCAL_SRC = '../../../..' target 'ConnectivityTestingApp' do pod 'gRPC', :path => GRPC_LOCAL_SRC + pod 'gRPC-Core', :path => GRPC_LOCAL_SRC + pod 'gRPC-ProtoRPC', :path => GRPC_LOCAL_SRC + pod 'gRPC-RxLibrary', :path => GRPC_LOCAL_SRC pod 'Protobuf', :path => "#{GRPC_LOCAL_SRC}/third_party/protobuf" pod 'BoringSSL', :podspec => "#{GRPC_LOCAL_SRC}/src/objective-c" end + +pre_install do |installer| + # This is the gRPC-Core podspec object, as initialized by its podspec file. + grpc_core_spec = installer.pod_targets.find{|t| t.name == 'gRPC-Core'}.root_spec + + # Copied from gRPC-Core.podspec, except for the adjusted src_root: + src_root = "$(PODS_ROOT)/../#{GRPC_LOCAL_SRC}" + grpc_core_spec.pod_target_xcconfig = { + 'GRPC_SRC_ROOT' => src_root, + 'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(GRPC_SRC_ROOT)/include"', + 'USER_HEADER_SEARCH_PATHS' => '"$(GRPC_SRC_ROOT)"', + # If we don't set these two settings, `include/grpc/support/time.h` and + # `src/core/lib/support/string.h` shadow the system `<time.h>` and `<string.h>`, breaking the + # build. + 'USE_HEADERMAP' => 'NO', + 'ALWAYS_SEARCH_USER_PATHS' => 'NO', + } +end diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php index 72012a49d0..3d62e86ab0 100755 --- a/src/php/tests/interop/interop_client.php +++ b/src/php/tests/interop/interop_client.php @@ -500,6 +500,16 @@ function statusCodeAndMessage($stub) $status->details); } +# NOTE: the stub input to this function is from UnimplementedService +function unimplementedService($stub) +{ + $call = $stub->UnimplementedCall(new grpc\testing\EmptyMessage()); + list($result, $status) = $call->wait(); + hardAssert($status->code === Grpc\STATUS_UNIMPLEMENTED, + 'Received unexpected status code'); +} + +# NOTE: the stub input to this function is from TestService function unimplementedMethod($stub) { $call = $stub->UnimplementedCall(new grpc\testing\EmptyMessage()); @@ -592,7 +602,7 @@ function _makeStub($args) $opts['update_metadata'] = $update_metadata; } - if ($test_case === 'unimplemented_method') { + if ($test_case === 'unimplemented_service') { $stub = new grpc\testing\UnimplementedServiceClient($server_address, $opts); } else { @@ -645,6 +655,9 @@ function interop_main($args, $stub = false) case 'status_code_and_message': statusCodeAndMessage($stub); break; + case 'unimplemented_service': + unimplementedService($stub); + break; case 'unimplemented_method': unimplementedMethod($stub); break; diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index fb24e12d9b..7ffe0f558a 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -98,6 +98,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/iomgr/combiner.c', 'src/core/lib/iomgr/endpoint.c', 'src/core/lib/iomgr/endpoint_pair_posix.c', + 'src/core/lib/iomgr/endpoint_pair_uv.c', 'src/core/lib/iomgr/endpoint_pair_windows.c', 'src/core/lib/iomgr/error.c', 'src/core/lib/iomgr/ev_epoll_linux.c', @@ -109,28 +110,38 @@ CORE_SOURCE_FILES = [ 'src/core/lib/iomgr/iocp_windows.c', 'src/core/lib/iomgr/iomgr.c', 'src/core/lib/iomgr/iomgr_posix.c', + 'src/core/lib/iomgr/iomgr_uv.c', 'src/core/lib/iomgr/iomgr_windows.c', 'src/core/lib/iomgr/load_file.c', 'src/core/lib/iomgr/network_status_tracker.c', 'src/core/lib/iomgr/polling_entity.c', + 'src/core/lib/iomgr/pollset_set_uv.c', 'src/core/lib/iomgr/pollset_set_windows.c', + 'src/core/lib/iomgr/pollset_uv.c', 'src/core/lib/iomgr/pollset_windows.c', 'src/core/lib/iomgr/resolve_address_posix.c', + 'src/core/lib/iomgr/resolve_address_uv.c', 'src/core/lib/iomgr/resolve_address_windows.c', 'src/core/lib/iomgr/sockaddr_utils.c', 'src/core/lib/iomgr/socket_utils_common_posix.c', 'src/core/lib/iomgr/socket_utils_linux.c', 'src/core/lib/iomgr/socket_utils_posix.c', + 'src/core/lib/iomgr/socket_utils_uv.c', + 'src/core/lib/iomgr/socket_utils_windows.c', 'src/core/lib/iomgr/socket_windows.c', 'src/core/lib/iomgr/tcp_client_posix.c', + 'src/core/lib/iomgr/tcp_client_uv.c', 'src/core/lib/iomgr/tcp_client_windows.c', 'src/core/lib/iomgr/tcp_posix.c', 'src/core/lib/iomgr/tcp_server_posix.c', + 'src/core/lib/iomgr/tcp_server_uv.c', 'src/core/lib/iomgr/tcp_server_windows.c', + 'src/core/lib/iomgr/tcp_uv.c', 'src/core/lib/iomgr/tcp_windows.c', 'src/core/lib/iomgr/time_averaged_stats.c', - 'src/core/lib/iomgr/timer.c', + 'src/core/lib/iomgr/timer_generic.c', 'src/core/lib/iomgr/timer_heap.c', + 'src/core/lib/iomgr/timer_uv.c', 'src/core/lib/iomgr/udp_server.c', 'src/core/lib/iomgr/unix_sockets_posix.c', 'src/core/lib/iomgr/unix_sockets_posix_noop.c', @@ -139,6 +150,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/iomgr/wakeup_fd_nospecial.c', 'src/core/lib/iomgr/wakeup_fd_pipe.c', 'src/core/lib/iomgr/wakeup_fd_posix.c', + 'src/core/lib/iomgr/workqueue_uv.c', 'src/core/lib/iomgr/workqueue_windows.c', 'src/core/lib/json/json.c', 'src/core/lib/json/json_reader.c', @@ -167,6 +179,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/transport/mdstr_hash_table.c', 'src/core/lib/transport/metadata.c', 'src/core/lib/transport/metadata_batch.c', + 'src/core/lib/transport/method_config.c', 'src/core/lib/transport/static_metadata.c', 'src/core/lib/transport/timeout_encoding.c', 'src/core/lib/transport/transport.c', @@ -200,8 +213,7 @@ CORE_SOURCE_FILES = [ 'src/core/lib/security/credentials/credentials.c', 'src/core/lib/security/credentials/credentials_metadata.c', 'src/core/lib/security/credentials/fake/fake_credentials.c', - 'src/core/lib/security/credentials/google_default/credentials_posix.c', - 'src/core/lib/security/credentials/google_default/credentials_windows.c', + 'src/core/lib/security/credentials/google_default/credentials_generic.c', 'src/core/lib/security/credentials/google_default/google_default_credentials.c', 'src/core/lib/security/credentials/iam/iam_credentials.c', 'src/core/lib/security/credentials/jwt/json_token.c', @@ -234,12 +246,10 @@ CORE_SOURCE_FILES = [ 'src/core/ext/client_channel/lb_policy.c', 'src/core/ext/client_channel/lb_policy_factory.c', 'src/core/ext/client_channel/lb_policy_registry.c', - 'src/core/ext/client_channel/method_config.c', 'src/core/ext/client_channel/parse_address.c', 'src/core/ext/client_channel/resolver.c', 'src/core/ext/client_channel/resolver_factory.c', 'src/core/ext/client_channel/resolver_registry.c', - 'src/core/ext/client_channel/resolver_result.c', 'src/core/ext/client_channel/subchannel.c', 'src/core/ext/client_channel/subchannel_index.c', 'src/core/ext/client_channel/uri_parser.c', diff --git a/src/python/grpcio/support.py b/src/python/grpcio/support.py index 7730374df0..f363f5fdc5 100644 --- a/src/python/grpcio/support.py +++ b/src/python/grpcio/support.py @@ -45,7 +45,10 @@ int main(int argc, char **argv) { return 0; } """ C_PYTHON_DEV_ERROR_MESSAGE = """ Could not find <Python.h>. This could mean the following: - * You're on Ubuntu and haven't `apt-get install`ed `python-dev`. + * You're on Ubuntu and haven't run `apt-get install python-dev`. + * You're on RHEL/Fedora and haven't run `yum install python-devel` or + `dnf install python-devel` (make sure you also have redhat-rpm-config + installed) * You're on Mac OS X and the usual Python framework was somehow corrupted (check your environment variables or try re-installing?) * You're on Windows and your Python installation was somehow corrupted diff --git a/src/ruby/lib/grpc/generic/active_call.rb b/src/ruby/lib/grpc/generic/active_call.rb index dfc2644c46..f5c426ebfc 100644 --- a/src/ruby/lib/grpc/generic/active_call.rb +++ b/src/ruby/lib/grpc/generic/active_call.rb @@ -43,7 +43,8 @@ class Struct GRPC.logger.debug("Failing with status #{status}") # raise BadStatus, propagating the metadata if present. md = status.metadata - fail GRPC::BadStatus.new(status.code, status.details, md) + fail GRPC::BadStatus.new(status.code, status.details, md), + "status code: #{status.code}, details: #{status.details}" end status end @@ -156,41 +157,25 @@ module GRPC Operation.new(self) end - # writes_done indicates that all writes are completed. - # - # It blocks until the remote endpoint acknowledges with at status unless - # assert_finished is set to false. Any calls to #remote_send after this - # call will fail. - # - # @param assert_finished [true, false] when true(default), waits for - # FINISHED. - def writes_done(assert_finished = true) - ops = { - SEND_CLOSE_FROM_CLIENT => nil - } - ops[RECV_STATUS_ON_CLIENT] = nil if assert_finished - batch_result = @call.run_batch(ops) - return unless assert_finished - unless batch_result.status.nil? - @call.trailing_metadata = batch_result.status.metadata - end - @call.status = batch_result.status - op_is_done - batch_result.check_status - end - # finished waits until a client call is completed. # # It blocks until the remote endpoint acknowledges by sending a status. def finished batch_result = @call.run_batch(RECV_STATUS_ON_CLIENT => nil) - unless batch_result.status.nil? - @call.trailing_metadata = batch_result.status.metadata + attach_status_results_and_complete_call(batch_result) + end + + def attach_status_results_and_complete_call(recv_status_batch_result) + unless recv_status_batch_result.status.nil? + @call.trailing_metadata = recv_status_batch_result.status.metadata end - @call.status = batch_result.status - op_is_done - batch_result.check_status + @call.status = recv_status_batch_result.status @call.close + op_is_done + + # The RECV_STATUS in run_batch always succeeds + # Check the status for a bad status or failed run batch + recv_status_batch_result.check_status end # remote_send sends a request to the remote endpoint. @@ -226,6 +211,23 @@ module GRPC nil end + def server_unary_response(req, trailing_metadata: {}, + code: Core::StatusCodes::OK, details: 'OK') + ops = {} + @send_initial_md_mutex.synchronize do + ops[SEND_INITIAL_METADATA] = @metadata_to_send unless @metadata_sent + @metadata_sent = true + end + + payload = @marshal.call(req) + ops[SEND_MESSAGE] = payload + ops[SEND_STATUS_FROM_SERVER] = Struct::Status.new( + code, details, trailing_metadata) + ops[RECV_CLOSE_ON_SERVER] = nil + + @call.run_batch(ops) + end + # remote_read reads a response from the remote endpoint. # # It blocks until the remote endpoint replies with a message or status. @@ -240,9 +242,13 @@ module GRPC @call.metadata = batch_result.metadata @metadata_received = true end - unless batch_result.nil? || batch_result.message.nil? - res = @unmarshal.call(batch_result.message) - return res + get_message_from_batch_result(batch_result) + end + + def get_message_from_batch_result(recv_message_batch_result) + unless recv_message_batch_result.nil? || + recv_message_batch_result.message.nil? + return @unmarshal.call(recv_message_batch_result.message) end GRPC.logger.debug('found nil; the final response has been sent') nil @@ -298,7 +304,6 @@ module GRPC return enum_for(:each_remote_read_then_finish) unless block_given? loop do resp = remote_read - break if resp.is_a? Struct::Status # is an OK status if resp.nil? # the last response was received, but not finished yet finished break @@ -315,15 +320,25 @@ module GRPC # a list, multiple metadata for its key are sent # @return [Object] the response received from the server def request_response(req, metadata: {}) - merge_metadata_to_send(metadata) && send_initial_metadata - remote_send(req) - writes_done(false) - response = remote_read - finished unless response.is_a? Struct::Status - response - rescue GRPC::Core::CallError => e - finished # checks for Cancelled - raise e + ops = { + SEND_MESSAGE => @marshal.call(req), + SEND_CLOSE_FROM_CLIENT => nil, + RECV_INITIAL_METADATA => nil, + RECV_MESSAGE => nil, + RECV_STATUS_ON_CLIENT => nil + } + @send_initial_md_mutex.synchronize do + # Metadata might have already been sent if this is an operation view + unless @metadata_sent + ops[SEND_INITIAL_METADATA] = @metadata_to_send.merge!(metadata) + end + @metadata_sent = true + end + batch_result = @call.run_batch(ops) + + @call.metadata = batch_result.metadata + attach_status_results_and_complete_call(batch_result) + get_message_from_batch_result(batch_result) end # client_streamer sends a stream of requests to a GRPC server, and @@ -339,12 +354,20 @@ module GRPC # a list, multiple metadata for its key are sent # @return [Object] the response received from the server def client_streamer(requests, metadata: {}) - merge_metadata_to_send(metadata) && send_initial_metadata - requests.each { |r| remote_send(r) } - writes_done(false) - response = remote_read - finished unless response.is_a? Struct::Status - response + # Metadata might have already been sent if this is an operation view + merge_metadata_and_send_if_not_already_sent(metadata) + + requests.each { |r| @call.run_batch(SEND_MESSAGE => @marshal.call(r)) } + batch_result = @call.run_batch( + SEND_CLOSE_FROM_CLIENT => nil, + RECV_INITIAL_METADATA => nil, + RECV_MESSAGE => nil, + RECV_STATUS_ON_CLIENT => nil + ) + + @call.metadata = batch_result.metadata + attach_status_results_and_complete_call(batch_result) + get_message_from_batch_result(batch_result) rescue GRPC::Core::CallError => e finished # checks for Cancelled raise e @@ -365,9 +388,18 @@ module GRPC # a list, multiple metadata for its key are sent # @return [Enumerator|nil] a response Enumerator def server_streamer(req, metadata: {}) - merge_metadata_to_send(metadata) && send_initial_metadata - remote_send(req) - writes_done(false) + ops = { + SEND_MESSAGE => @marshal.call(req), + SEND_CLOSE_FROM_CLIENT => nil + } + @send_initial_md_mutex.synchronize do + # Metadata might have already been sent if this is an operation view + unless @metadata_sent + ops[SEND_INITIAL_METADATA] = @metadata_to_send.merge!(metadata) + end + @metadata_sent = true + end + @call.run_batch(ops) replies = enum_for(:each_remote_read_then_finish) return replies unless block_given? replies.each { |r| yield r } @@ -404,7 +436,8 @@ module GRPC # a list, multiple metadata for its key are sent # @return [Enumerator, nil] a response Enumerator def bidi_streamer(requests, metadata: {}, &blk) - merge_metadata_to_send(metadata) && send_initial_metadata + # Metadata might have already been sent if this is an operation view + merge_metadata_and_send_if_not_already_sent(metadata) bd = BidiCall.new(@call, @marshal, @unmarshal, @@ -457,6 +490,15 @@ module GRPC end end + def merge_metadata_and_send_if_not_already_sent(new_metadata = {}) + @send_initial_md_mutex.synchronize do + return if @metadata_sent + @metadata_to_send.merge!(new_metadata) + @call.run_batch(SEND_INITIAL_METADATA => @metadata_to_send) + @metadata_sent = true + end + end + private # Starts the call if not already started diff --git a/src/ruby/lib/grpc/generic/client_stub.rb b/src/ruby/lib/grpc/generic/client_stub.rb index 0d7c1f7805..6934257cbc 100644 --- a/src/ruby/lib/grpc/generic/client_stub.rb +++ b/src/ruby/lib/grpc/generic/client_stub.rb @@ -168,6 +168,7 @@ module GRPC # return the operation view of the active_call; define #execute as a # new method for this instance that invokes #request_response. + c.merge_metadata_to_send(metadata) op = c.operation op.define_singleton_method(:execute) do c.request_response(req, metadata: metadata) @@ -231,9 +232,10 @@ module GRPC # return the operation view of the active_call; define #execute as a # new method for this instance that invokes #client_streamer. + c.merge_metadata_to_send(metadata) op = c.operation op.define_singleton_method(:execute) do - c.client_streamer(requests, metadata: metadata) + c.client_streamer(requests) end op end @@ -309,9 +311,10 @@ module GRPC # return the operation view of the active_call; define #execute # as a new method for this instance that invokes #server_streamer + c.merge_metadata_to_send(metadata) op = c.operation op.define_singleton_method(:execute) do - c.server_streamer(req, metadata: metadata, &blk) + c.server_streamer(req, &blk) end op end @@ -417,15 +420,15 @@ module GRPC deadline: deadline, parent: parent, credentials: credentials) - return c.bidi_streamer(requests, metadata: metadata, &blk) unless return_op # return the operation view of the active_call; define #execute # as a new method for this instance that invokes #bidi_streamer + c.merge_metadata_to_send(metadata) op = c.operation op.define_singleton_method(:execute) do - c.bidi_streamer(requests, metadata: metadata, &blk) + c.bidi_streamer(requests, &blk) end op end @@ -445,7 +448,6 @@ module GRPC deadline: nil, parent: nil, credentials: nil) - deadline = from_relative_time(@timeout) if deadline.nil? # Provide each new client call with its own completion queue call = @ch.create_call(parent, # parent call diff --git a/src/ruby/lib/grpc/generic/rpc_desc.rb b/src/ruby/lib/grpc/generic/rpc_desc.rb index 584fe78169..cd17aed8e7 100644 --- a/src/ruby/lib/grpc/generic/rpc_desc.rb +++ b/src/ruby/lib/grpc/generic/rpc_desc.rb @@ -62,25 +62,44 @@ module GRPC proc { |o| unmarshal_class.method(unmarshal_method).call(o) } end + def handle_request_response(active_call, mth) + req = active_call.remote_read + resp = mth.call(req, active_call.single_req_view) + active_call.server_unary_response( + resp, trailing_metadata: active_call.output_metadata) + end + + def handle_client_streamer(active_call, mth) + resp = mth.call(active_call.multi_req_view) + active_call.server_unary_response( + resp, trailing_metadata: active_call.output_metadata) + end + + def handle_server_streamer(active_call, mth) + req = active_call.remote_read + replys = mth.call(req, active_call.single_req_view) + replys.each { |r| active_call.remote_send(r) } + send_status(active_call, OK, 'OK', active_call.output_metadata) + end + + def handle_bidi_streamer(active_call, mth) + active_call.run_server_bidi(mth) + send_status(active_call, OK, 'OK', active_call.output_metadata) + end + def run_server_method(active_call, mth) # While a server method is running, it might be cancelled, its deadline # might be reached, the handler could throw an unknown error, or a # well-behaved handler could throw a StatusError. if request_response? - req = active_call.remote_read - resp = mth.call(req, active_call.single_req_view) - active_call.remote_send(resp) + handle_request_response(active_call, mth) elsif client_streamer? - resp = mth.call(active_call.multi_req_view) - active_call.remote_send(resp) + handle_client_streamer(active_call, mth) elsif server_streamer? - req = active_call.remote_read - replys = mth.call(req, active_call.single_req_view) - replys.each { |r| active_call.remote_send(r) } + handle_server_streamer(active_call, mth) else # is a bidi_stream - active_call.run_server_bidi(mth) + handle_bidi_streamer(active_call, mth) end - send_status(active_call, OK, 'OK', active_call.output_metadata) rescue BadStatus => e # this is raised by handlers that want GRPC to send an application error # code and detail message and some additional app-specific metadata. @@ -91,7 +110,7 @@ module GRPC # Log it, but don't notify the other endpoint.. GRPC.logger.warn("failed call: #{active_call}\n#{e}") rescue Core::OutOfTime - # This is raised when active_call#method.call exceeeds the deadline + # This is raised when active_call#method.call exceeds the deadline # event. Send a status of deadline exceeded GRPC.logger.warn("late call: #{active_call}") send_status(active_call, DEADLINE_EXCEEDED, 'late') @@ -100,7 +119,7 @@ module GRPC # Send back a UNKNOWN status to the client GRPC.logger.warn("failed handler: #{active_call}; sending status:UNKNOWN") GRPC.logger.warn(e) - send_status(active_call, UNKNOWN, 'no reason given') + send_status(active_call, UNKNOWN, 'unkown error handling call on server') end def assert_arity_matches(mth) diff --git a/src/ruby/spec/generic/active_call_spec.rb b/src/ruby/spec/generic/active_call_spec.rb index 5ae4f25537..aa51d9d7b1 100644 --- a/src/ruby/spec/generic/active_call_spec.rb +++ b/src/ruby/spec/generic/active_call_spec.rb @@ -402,7 +402,7 @@ describe GRPC::ActiveCall do @pass_through, deadline) msg = 'message is a string' client_call.remote_send(msg) - client_call.writes_done(false) + call.run_batch(CallOps::SEND_CLOSE_FROM_CLIENT => nil) server_call = expect_server_to_receive(msg) server_call.remote_send('server_response') server_call.send_status(OK, 'OK') @@ -460,7 +460,7 @@ describe GRPC::ActiveCall do msg = 'message is a string' reply = 'server_response' client_call.remote_send(msg) - client_call.writes_done(false) + call.run_batch(CallOps::SEND_CLOSE_FROM_CLIENT => nil) server_call = expect_server_to_receive(msg) e = client_call.each_remote_read n = 3 # arbitrary value > 1 @@ -473,7 +473,7 @@ describe GRPC::ActiveCall do end end - describe '#writes_done' do + describe '#closing the call from the client' do it 'finishes ok if the server sends a status response' do call = make_test_call ActiveCall.client_invoke(call) @@ -481,7 +481,9 @@ describe GRPC::ActiveCall do @pass_through, deadline) msg = 'message is a string' client_call.remote_send(msg) - expect { client_call.writes_done(false) }.to_not raise_error + expect do + call.run_batch(CallOps::SEND_CLOSE_FROM_CLIENT => nil) + end.to_not raise_error server_call = expect_server_to_receive(msg) server_call.remote_send('server_response') expect(client_call.remote_read).to eq('server_response') @@ -500,11 +502,13 @@ describe GRPC::ActiveCall do server_call.remote_send('server_response') server_call.send_status(OK, 'status code is OK') expect(client_call.remote_read).to eq('server_response') - expect { client_call.writes_done(false) }.to_not raise_error + expect do + call.run_batch(CallOps::SEND_CLOSE_FROM_CLIENT => nil) + end.to_not raise_error expect { client_call.finished }.to_not raise_error end - it 'finishes ok if writes_done is true' do + it 'finishes ok if SEND_CLOSE and RECV_STATUS has been sent' do call = make_test_call ActiveCall.client_invoke(call) client_call = ActiveCall.new(call, @pass_through, @@ -515,7 +519,11 @@ describe GRPC::ActiveCall do server_call.remote_send('server_response') server_call.send_status(OK, 'status code is OK') expect(client_call.remote_read).to eq('server_response') - expect { client_call.writes_done(true) }.to_not raise_error + expect do + call.run_batch( + CallOps::SEND_CLOSE_FROM_CLIENT => nil, + CallOps::RECV_STATUS_ON_CLIENT => nil) + end.to_not raise_error end end diff --git a/src/ruby/spec/generic/client_stub_spec.rb b/src/ruby/spec/generic/client_stub_spec.rb index 6034b5419c..e68b8db7ab 100644 --- a/src/ruby/spec/generic/client_stub_spec.rb +++ b/src/ruby/spec/generic/client_stub_spec.rb @@ -180,30 +180,44 @@ describe 'ClientStub' do end describe 'via a call operation' do - def get_response(stub) + def get_response(stub, run_start_call_first: false) op = stub.request_response(@method, @sent_msg, noop, noop, return_op: true, metadata: { k1: 'v1', k2: 'v2' }, deadline: from_relative_time(2)) expect(op).to be_a(GRPC::ActiveCall::Operation) - op.execute + op.start_call if run_start_call_first + result = op.execute + op.wait # make sure wait doesn't hang + result end it_behaves_like 'request response' - end - end - describe '#client_streamer' do - shared_examples 'client streaming' do - before(:each) do + it 'sends metadata to the server ok when running start_call first' do server_port = create_test_server host = "localhost:#{server_port}" - @stub = GRPC::ClientStub.new(host, :this_channel_is_insecure) - @metadata = { k1: 'v1', k2: 'v2' } - @sent_msgs = Array.new(3) { |i| 'msg_' + (i + 1).to_s } - @resp = 'a_reply' + th = run_request_response(@sent_msg, @resp, @pass, + k1: 'v1', k2: 'v2') + stub = GRPC::ClientStub.new(host, :this_channel_is_insecure) + expect(get_response(stub)).to eq(@resp) + th.join end + end + end + + describe '#client_streamer' do + before(:each) do + Thread.abort_on_exception = true + server_port = create_test_server + host = "localhost:#{server_port}" + @stub = GRPC::ClientStub.new(host, :this_channel_is_insecure) + @metadata = { k1: 'v1', k2: 'v2' } + @sent_msgs = Array.new(3) { |i| 'msg_' + (i + 1).to_s } + @resp = 'a_reply' + end + shared_examples 'client streaming' do it 'should send requests to/receive a reply from a server' do th = run_client_streamer(@sent_msgs, @resp, @pass) expect(get_response(@stub)).to eq(@resp) @@ -242,24 +256,33 @@ describe 'ClientStub' do end describe 'via a call operation' do - def get_response(stub) + def get_response(stub, run_start_call_first: false) op = stub.client_streamer(@method, @sent_msgs, noop, noop, return_op: true, metadata: @metadata) expect(op).to be_a(GRPC::ActiveCall::Operation) - op.execute + op.start_call if run_start_call_first + result = op.execute + op.wait # make sure wait doesn't hang + result end it_behaves_like 'client streaming' + + it 'sends metadata to the server ok when running start_call first' do + th = run_client_streamer(@sent_msgs, @resp, @pass, **@metadata) + expect(get_response(@stub, run_start_call_first: true)).to eq(@resp) + th.join + end end end describe '#server_streamer' do - shared_examples 'server streaming' do - before(:each) do - @sent_msg = 'a_msg' - @replys = Array.new(3) { |i| 'reply_' + (i + 1).to_s } - end + before(:each) do + @sent_msg = 'a_msg' + @replys = Array.new(3) { |i| 'reply_' + (i + 1).to_s } + end + shared_examples 'server streaming' do it 'should send a request to/receive replies from a server' do server_port = create_test_server host = "localhost:#{server_port}" @@ -303,29 +326,44 @@ describe 'ClientStub' do end describe 'via a call operation' do - def get_responses(stub) - op = stub.server_streamer(@method, @sent_msg, noop, noop, - return_op: true, - metadata: { k1: 'v1', k2: 'v2' }) - expect(op).to be_a(GRPC::ActiveCall::Operation) - e = op.execute + after(:each) do + @op.wait # make sure wait doesn't hang + end + def get_responses(stub, run_start_call_first: false) + @op = stub.server_streamer(@method, @sent_msg, noop, noop, + return_op: true, + metadata: { k1: 'v1', k2: 'v2' }) + expect(@op).to be_a(GRPC::ActiveCall::Operation) + @op.start_call if run_start_call_first + e = @op.execute expect(e).to be_a(Enumerator) e end it_behaves_like 'server streaming' + + it 'should send metadata to the server ok when start_call is run first' do + server_port = create_test_server + host = "localhost:#{server_port}" + th = run_server_streamer(@sent_msg, @replys, @fail, + k1: 'v1', k2: 'v2') + stub = GRPC::ClientStub.new(host, :this_channel_is_insecure) + e = get_responses(stub, run_start_call_first: true) + expect { e.collect { |r| r } }.to raise_error(GRPC::BadStatus) + th.join + end end end describe '#bidi_streamer' do - shared_examples 'bidi streaming' do - before(:each) do - @sent_msgs = Array.new(3) { |i| 'msg_' + (i + 1).to_s } - @replys = Array.new(3) { |i| 'reply_' + (i + 1).to_s } - server_port = create_test_server - @host = "localhost:#{server_port}" - end + before(:each) do + @sent_msgs = Array.new(3) { |i| 'msg_' + (i + 1).to_s } + @replys = Array.new(3) { |i| 'reply_' + (i + 1).to_s } + server_port = create_test_server + @host = "localhost:#{server_port}" + end + shared_examples 'bidi streaming' do it 'supports sending all the requests first', bidi: true do th = run_bidi_streamer_handle_inputs_first(@sent_msgs, @replys, @pass) @@ -363,16 +401,29 @@ describe 'ClientStub' do end describe 'via a call operation' do - def get_responses(stub) - op = stub.bidi_streamer(@method, @sent_msgs, noop, noop, - return_op: true) - expect(op).to be_a(GRPC::ActiveCall::Operation) - e = op.execute + after(:each) do + @op.wait # make sure wait doesn't hang + end + def get_responses(stub, run_start_call_first: false) + @op = stub.bidi_streamer(@method, @sent_msgs, noop, noop, + return_op: true) + expect(@op).to be_a(GRPC::ActiveCall::Operation) + @op.start_call if run_start_call_first + e = @op.execute expect(e).to be_a(Enumerator) e end it_behaves_like 'bidi streaming' + + it 'can run start_call before executing the call' do + th = run_bidi_streamer_handle_inputs_first(@sent_msgs, @replys, + @pass) + stub = GRPC::ClientStub.new(@host, :this_channel_is_insecure) + e = get_responses(stub, run_start_call_first: true) + expect(e.collect { |r| r }).to eq(@replys) + th.join + end end end diff --git a/src/ruby/spec/generic/rpc_desc_spec.rb b/src/ruby/spec/generic/rpc_desc_spec.rb index 1a895005bc..a3f0efa603 100644 --- a/src/ruby/spec/generic/rpc_desc_spec.rb +++ b/src/ruby/spec/generic/rpc_desc_spec.rb @@ -48,7 +48,7 @@ describe GRPC::RpcDesc do @bidi_streamer = RpcDesc.new('ss', Stream.new(Object.new), Stream.new(Object.new), 'encode', 'decode') @bs_code = INTERNAL - @no_reason = 'no reason given' + @no_reason = 'unkown error handling call on server' @ok_response = Object.new end @@ -83,6 +83,7 @@ describe GRPC::RpcDesc do before(:each) do @call = double('active_call') allow(@call).to receive(:single_req_view).and_return(@call) + allow(@call).to receive(:output_metadata).and_return(@call) end it_behaves_like 'it handles errors' @@ -90,10 +91,10 @@ describe GRPC::RpcDesc do it 'sends a response and closes the stream if there no errors' do req = Object.new expect(@call).to receive(:remote_read).once.and_return(req) - expect(@call).to receive(:remote_send).once.with(@ok_response) - expect(@call).to receive(:output_metadata).and_return(fake_md) - expect(@call).to receive(:send_status).once.with(OK, 'OK', true, - metadata: fake_md) + expect(@call).to receive(:output_metadata).once.and_return(fake_md) + expect(@call).to receive(:server_unary_response).once + .with(@ok_response, trailing_metadata: fake_md) + this_desc.run_server_method(@call, method(:fake_reqresp)) end end @@ -117,7 +118,9 @@ describe GRPC::RpcDesc do end it 'absorbs CallError with no further action' do - expect(@call).to receive(:remote_send).once.and_raise(CallError) + expect(@call).to receive(:server_unary_response).once.and_raise( + CallError) + allow(@call).to receive(:output_metadata).and_return({}) blk = proc do @client_streamer.run_server_method(@call, method(:fake_clstream)) end @@ -125,10 +128,11 @@ describe GRPC::RpcDesc do end it 'sends a response and closes the stream if there no errors' do - expect(@call).to receive(:remote_send).once.with(@ok_response) - expect(@call).to receive(:output_metadata).and_return(fake_md) - expect(@call).to receive(:send_status).once.with(OK, 'OK', true, - metadata: fake_md) + expect(@call).to receive(:output_metadata).and_return( + fake_md) + expect(@call).to receive(:server_unary_response).once + .with(@ok_response, trailing_metadata: fake_md) + @client_streamer.run_server_method(@call, method(:fake_clstream)) end end diff --git a/src/ruby/spec/generic/rpc_server_spec.rb b/src/ruby/spec/generic/rpc_server_spec.rb index d362e48dee..c5694790fd 100644 --- a/src/ruby/spec/generic/rpc_server_spec.rb +++ b/src/ruby/spec/generic/rpc_server_spec.rb @@ -462,6 +462,7 @@ describe GRPC::RpcServer do 'connect_k1' => 'connect_v1' } wanted_md.each do |key, value| + puts "key: #{key}" expect(op.metadata[key]).to eq(value) end @srv.stop diff --git a/src/ruby/spec/pb/health/checker_spec.rb b/src/ruby/spec/pb/health/checker_spec.rb index 1b2fa96827..4711e09e88 100644 --- a/src/ruby/spec/pb/health/checker_spec.rb +++ b/src/ruby/spec/pb/health/checker_spec.rb @@ -97,15 +97,17 @@ describe Grpc::Health::Checker do context 'initialization' do it 'can be constructed with no args' do - expect(subject).to_not be(nil) + checker = Grpc::Health::Checker.new + expect(checker).to_not be(nil) end end context 'method `add_status` and `check`' do success_tests.each do |t| it "should succeed when #{t[:desc]}" do - subject.add_status(t[:service], ServingStatus::NOT_SERVING) - got = subject.check(HCReq.new(service: t[:service]), nil) + checker = Grpc::Health::Checker.new + checker.add_status(t[:service], ServingStatus::NOT_SERVING) + got = checker.check(HCReq.new(service: t[:service]), nil) want = HCResp.new(status: ServingStatus::NOT_SERVING) expect(got).to eq(want) end @@ -115,8 +117,9 @@ describe Grpc::Health::Checker do context 'method `check`' do success_tests.each do |t| it "should fail with NOT_FOUND when #{t[:desc]}" do + checker = Grpc::Health::Checker.new blk = proc do - subject.check(HCReq.new(service: t[:service]), nil) + checker.check(HCReq.new(service: t[:service]), nil) end expected_msg = /#{StatusCodes::NOT_FOUND}/ expect(&blk).to raise_error GRPC::BadStatus, expected_msg @@ -127,14 +130,15 @@ describe Grpc::Health::Checker do context 'method `clear_status`' do success_tests.each do |t| it "should fail after clearing status when #{t[:desc]}" do - subject.add_status(t[:service], ServingStatus::NOT_SERVING) - got = subject.check(HCReq.new(service: t[:service]), nil) + checker = Grpc::Health::Checker.new + checker.add_status(t[:service], ServingStatus::NOT_SERVING) + got = checker.check(HCReq.new(service: t[:service]), nil) want = HCResp.new(status: ServingStatus::NOT_SERVING) expect(got).to eq(want) - subject.clear_status(t[:service]) + checker.clear_status(t[:service]) blk = proc do - subject.check(HCReq.new(service: t[:service]), nil) + checker.check(HCReq.new(service: t[:service]), nil) end expected_msg = /#{StatusCodes::NOT_FOUND}/ expect(&blk).to raise_error GRPC::BadStatus, expected_msg @@ -144,18 +148,19 @@ describe Grpc::Health::Checker do context 'method `clear_all`' do it 'should return NOT_FOUND after being invoked' do + checker = Grpc::Health::Checker.new success_tests.each do |t| - subject.add_status(t[:service], ServingStatus::NOT_SERVING) - got = subject.check(HCReq.new(service: t[:service]), nil) + checker.add_status(t[:service], ServingStatus::NOT_SERVING) + got = checker.check(HCReq.new(service: t[:service]), nil) want = HCResp.new(status: ServingStatus::NOT_SERVING) expect(got).to eq(want) end - subject.clear_all + checker.clear_all success_tests.each do |t| blk = proc do - subject.check(HCReq.new(service: t[:service]), nil) + checker.check(HCReq.new(service: t[:service]), nil) end expected_msg = /#{StatusCodes::NOT_FOUND}/ expect(&blk).to raise_error GRPC::BadStatus, expected_msg @@ -184,8 +189,10 @@ describe Grpc::Health::Checker do end it 'should receive the correct status', server: true do - @srv.handle(subject) - subject.add_status('', ServingStatus::NOT_SERVING) + Thread.abort_on_exception = true + checker = Grpc::Health::Checker.new + @srv.handle(checker) + checker.add_status('', ServingStatus::NOT_SERVING) t = Thread.new { @srv.run } @srv.wait_till_running @@ -198,7 +205,8 @@ describe Grpc::Health::Checker do end it 'should fail on unknown services', server: true do - @srv.handle(subject) + checker = Grpc::Health::Checker.new + @srv.handle(checker) t = Thread.new { @srv.run } @srv.wait_till_running blk = proc do diff --git a/templates/Makefile.template b/templates/Makefile.template index e6a28d16bc..3b76ded95d 100644 --- a/templates/Makefile.template +++ b/templates/Makefile.template @@ -219,10 +219,6 @@ HOST_LD ?= $(LD) HOST_LDXX ?= $(LDXX) - ifdef EXTRA_DEFINES - DEFINES += $(EXTRA_DEFINES) - endif - CFLAGS += -std=c99 -Wsign-conversion -Wconversion ${' '.join(warning_var('$(W_%s)', warning) for warning in PREFERRED_WARNINGS)} ifeq ($(HAS_CXX11),true) CXXFLAGS += -std=c++11 @@ -324,6 +320,11 @@ LDLIBS += $(addprefix -l, $(LIBS)) LDLIBSXX += $(addprefix -l, $(LIBSXX)) + + % for arg in ['CFLAGS', 'CXXFLAGS', 'CPPFLAGS', 'LDFLAGS', 'DEFINES', 'LDLIBS']: + ${arg} += $(EXTRA_${arg}) + % endfor + HOST_CPPFLAGS = $(CPPFLAGS) HOST_CFLAGS = $(CFLAGS) HOST_CXXFLAGS = $(CXXFLAGS) diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template index 40d430f792..e6592acebb 100644 --- a/templates/binding.gyp.template +++ b/templates/binding.gyp.template @@ -44,6 +44,9 @@ '.', 'include' ], + 'defines': [ + 'GRPC_UV' + ], 'conditions': [ ['OS == "win"', { "include_dirs": [ diff --git a/templates/package.json.template b/templates/package.json.template index e9596d4d4c..2b3d32ec99 100644 --- a/templates/package.json.template +++ b/templates/package.json.template @@ -36,6 +36,8 @@ }, "devDependencies": { "async": "^1.5.0", + "body-parser": "^1.15.2", + "express": "^4.14.0", "google-auth-library": "^0.9.2", "google-protobuf": "^3.0.0", "istanbul": "^0.3.21", diff --git a/templates/tools/dockerfile/libuv_install.include b/templates/tools/dockerfile/libuv_install.include new file mode 100644 index 0000000000..a249c095db --- /dev/null +++ b/templates/tools/dockerfile/libuv_install.include @@ -0,0 +1,7 @@ +#================ +# libuv +RUN cd /tmp \ + && wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz \ + && tar -xf libuv-v1.9.1.tar.gz \ + && cd libuv-v1.9.1 \ + && sh autogen.sh && ./configure --prefix=/usr && make && make install
\ No newline at end of file diff --git a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template index 04767248b8..211baff2d1 100644 --- a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template +++ b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template @@ -28,13 +28,14 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - + FROM debian:jessie - + <%include file="../../apt_get_basic.include"/> <%include file="../../python_deps.include"/> <%include file="../../cxx_deps.include"/> <%include file="../../clang_update.include"/> <%include file="../../run_tests_addons.include"/> + <%include file="../../libuv_install.include"/> # Define the default command. CMD ["bash"] diff --git a/templates/tools/run_tests/tests.json.template b/templates/tools/run_tests/tests.json.template index 5690874415..1e21465dd2 100644 --- a/templates/tools/run_tests/tests.json.template +++ b/templates/tools/run_tests/tests.json.template @@ -10,6 +10,7 @@ "ci_platforms": tgt.ci_platforms, "gtest": tgt.gtest, "exclude_configs": tgt.get("exclude_configs", []), + "exclude_iomgrs": tgt.get("exclude_iomgrs", []), "args": [], "flaky": tgt.flaky, "cpu_cost": tgt.get("cpu_cost", 1.0)} diff --git a/test/core/bad_client/gen_build_yaml.py b/test/core/bad_client/gen_build_yaml.py index fb86525b1a..32ab3f2137 100755 --- a/test/core/bad_client/gen_build_yaml.py +++ b/test/core/bad_client/gen_build_yaml.py @@ -83,6 +83,7 @@ def main(): 'secure': 'no', 'src': ['test/core/bad_client/tests/%s.c' % t], 'vs_proj_dir': 'test', + 'exclude_iomgrs': ['uv'], 'deps': [ 'bad_client_test', 'grpc_test_util_unsecure', diff --git a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c index 07723c229d..ffa167a0e7 100644 --- a/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c +++ b/test/core/client_channel/resolvers/dns_resolver_connectivity_test.c @@ -37,6 +37,7 @@ #include <grpc/support/alloc.h> #include "src/core/ext/client_channel/resolver_registry.h" +#include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/timer.h" #include "test/core/util/test_config.h" @@ -103,7 +104,7 @@ int main(int argc, char **argv) { grpc_resolver *resolver = create_resolver("dns:test"); - grpc_resolver_result *result = (grpc_resolver_result *)1; + grpc_channel_args *result = (grpc_channel_args *)1; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; gpr_event ev1; @@ -122,7 +123,7 @@ int main(int argc, char **argv) { GPR_ASSERT(wait_loop(30, &ev2)); GPR_ASSERT(result != NULL); - grpc_resolver_result_unref(&exec_ctx, result); + grpc_channel_args_destroy(result); GRPC_RESOLVER_UNREF(&exec_ctx, resolver, "test"); grpc_exec_ctx_finish(&exec_ctx); diff --git a/test/core/client_channel/resolvers/sockaddr_resolver_test.c b/test/core/client_channel/resolvers/sockaddr_resolver_test.c index c39052cd9d..ebf311ab83 100644 --- a/test/core/client_channel/resolvers/sockaddr_resolver_test.c +++ b/test/core/client_channel/resolvers/sockaddr_resolver_test.c @@ -38,21 +38,23 @@ #include <grpc/support/string_util.h> #include "src/core/ext/client_channel/resolver_registry.h" -#include "src/core/ext/client_channel/resolver_result.h" +#include "src/core/lib/channel/channel_args.h" #include "test/core/util/test_config.h" typedef struct on_resolution_arg { char *expected_server_name; - grpc_resolver_result *resolver_result; + grpc_channel_args *resolver_result; } on_resolution_arg; void on_resolution_cb(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { on_resolution_arg *res = arg; - const char *server_name = - grpc_resolver_result_get_server_name(res->resolver_result); - GPR_ASSERT(strcmp(res->expected_server_name, server_name) == 0); - grpc_resolver_result_unref(exec_ctx, res->resolver_result); + const grpc_arg *channel_arg = + grpc_channel_args_find(res->resolver_result, GRPC_ARG_SERVER_NAME); + GPR_ASSERT(channel_arg != NULL); + GPR_ASSERT(channel_arg->type == GRPC_ARG_STRING); + GPR_ASSERT(strcmp(res->expected_server_name, channel_arg->value.string) == 0); + grpc_channel_args_destroy(res->resolver_result); } static void test_succeeds(grpc_resolver_factory *factory, const char *string) { diff --git a/test/core/client_channel/set_initial_connect_string_test.c b/test/core/client_channel/set_initial_connect_string_test.c index b7bd67567c..379f30fb9f 100644 --- a/test/core/client_channel/set_initial_connect_string_test.c +++ b/test/core/client_channel/set_initial_connect_string_test.c @@ -30,6 +30,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + +/* With the addition of a libuv endpoint, sockaddr.h now includes uv.h when + using that endpoint. Because of various transitive includes in uv.h, + including windows.h on Windows, uv.h must be included before other system + headers. Therefore, sockaddr.h must always be included first */ +#include "src/core/lib/iomgr/sockaddr.h" + #include <string.h> #include <grpc/grpc.h> @@ -93,15 +100,14 @@ static void on_connect(grpc_exec_ctx *exec_ctx, void *arg, grpc_endpoint *tcp, grpc_endpoint_read(exec_ctx, tcp, &state.temp_incoming_buffer, &on_read); } -static void set_magic_initial_string(struct sockaddr **addr, size_t *addr_len, +static void set_magic_initial_string(grpc_resolved_address **addr, gpr_slice *connect_string) { GPR_ASSERT(addr); - GPR_ASSERT(addr_len); + GPR_ASSERT((*addr)->len); *connect_string = gpr_slice_from_copied_string(magic_connect_string); } -static void reset_addr_and_set_magic_string(struct sockaddr **addr, - size_t *addr_len, +static void reset_addr_and_set_magic_string(grpc_resolved_address **addr, gpr_slice *connect_string) { struct sockaddr_in target; *connect_string = gpr_slice_from_copied_string(magic_connect_string); @@ -109,9 +115,9 @@ static void reset_addr_and_set_magic_string(struct sockaddr **addr, target.sin_family = AF_INET; target.sin_addr.s_addr = htonl(INADDR_LOOPBACK); target.sin_port = htons((uint16_t)server_port); - *addr_len = sizeof(target); - *addr = (struct sockaddr *)gpr_malloc(sizeof(target)); - memcpy(*addr, &target, sizeof(target)); + (*addr)->len = sizeof(target); + *addr = (grpc_resolved_address *)gpr_malloc(sizeof(grpc_resolved_address)); + memcpy((*addr)->addr, &target, sizeof(target)); } static gpr_timespec n_sec_deadline(int seconds) { diff --git a/test/core/end2end/bad_server_response_test.c b/test/core/end2end/bad_server_response_test.c index 5ed0eb64d2..9a3e1301f9 100644 --- a/test/core/end2end/bad_server_response_test.c +++ b/test/core/end2end/bad_server_response_test.c @@ -30,6 +30,13 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ + +/* With the addition of a libuv endpoint, sockaddr.h now includes uv.h when + using that endpoint. Because of various transitive includes in uv.h, + including windows.h on Windows, uv.h must be included before other system + headers. Therefore, sockaddr.h must always be included first */ +#include "src/core/lib/iomgr/sockaddr.h" + #include <string.h> #include <grpc/grpc.h> @@ -40,7 +47,6 @@ #include <grpc/support/thd.h> // #include "src/core/ext/transport/chttp2/transport/internal.h" -#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/support/string.h" #include "test/core/end2end/cq_verifier.h" #include "test/core/util/port.h" diff --git a/test/core/end2end/cq_verifier_internal.h b/test/core/end2end/cq_verifier_internal.h new file mode 100644 index 0000000000..1549608469 --- /dev/null +++ b/test/core/end2end/cq_verifier_internal.h @@ -0,0 +1,47 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#ifndef GRPC_TEST_CORE_END2END_CQ_VERIFIER_INTERNAL_H +#define GRPC_TEST_CORE_END2END_CQ_VERIFIER_INTERNAL_H + +#include "test/core/end2end/cq_verifier.h" + +typedef struct expectation expectation; + +expectation *cq_verifier_get_first_expectation(cq_verifier *v); + +void cq_verifier_set_first_expectation(cq_verifier *v, expectation *e); + +grpc_event cq_verifier_next_event(cq_verifier *v, int timeout_seconds); + +#endif /* GRPC_TEST_CORE_END2END_CQ_VERIFIER_INTERNAL_H */ diff --git a/test/core/end2end/cq_verifier_native.c b/test/core/end2end/cq_verifier_native.c new file mode 100644 index 0000000000..b1fcb4beed --- /dev/null +++ b/test/core/end2end/cq_verifier_native.c @@ -0,0 +1,74 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +/* This check is for testing only. */ +#ifndef GRPC_UV + +#include "test/core/end2end/cq_verifier_internal.h" + +/* the verifier itself */ +struct cq_verifier { + /* bound completion queue */ + grpc_completion_queue *cq; + /* start of expectation list */ + expectation *first_expectation; + uv_timer_t timer; +}; + +cq_verifier *cq_verifier_create(grpc_completion_queue *cq) { + cq_verifier *v = gpr_malloc(sizeof(cq_verifier)); + v->cq = cq; + cq_verifier_set_first_expectation(v, NULL); + return v; +} + +void cq_verifier_destroy(cq_verifier *v) { + cq_verify(v); + gpr_free(v); +} + +expectation *cq_verifier_get_first_expectation(cq_verifier *v) { + return v->first_expectation; +} + +void cq_verifier_set_first_expectation(cq_verifier *v, expectation *e) { + v->first_expectation = e; +} + +grpc_event cq_verifier_next_event(cq_verifier *v, int timeout_seconds) { + const gpr_timespec deadline = + GRPC_TIMEOUT_SECONDS_TO_DEADLINE(timeout_seconds); + return grpc_completion_queue_next(v->cq, deadline, NULL); +} + +#endif /* GRPC_UV */ diff --git a/test/core/end2end/cq_verifier_uv.c b/test/core/end2end/cq_verifier_uv.c new file mode 100644 index 0000000000..2b5a2ca495 --- /dev/null +++ b/test/core/end2end/cq_verifier_uv.c @@ -0,0 +1,112 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <grpc/support/port_platform.h> + +#ifdef GRPC_UV + +#include <uv.h> + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "test/core/end2end/cq_verifier_internal.h" + +typedef enum timer_state { + TIMER_STARTED, + TIMER_TRIGGERED, + TIMER_CLOSED +} timer_state; + +/* the verifier itself */ +struct cq_verifier { + /* bound completion queue */ + grpc_completion_queue *cq; + /* start of expectation list */ + expectation *first_expectation; + uv_timer_t timer; +}; + +cq_verifier *cq_verifier_create(grpc_completion_queue *cq) { + cq_verifier *v = gpr_malloc(sizeof(cq_verifier)); + v->cq = cq; + v->first_expectation = NULL; + uv_timer_init(uv_default_loop(), &v->timer); + v->timer.data = (void *)TIMER_STARTED; + return v; +} + +static void timer_close_cb(uv_handle_t *handle) { + handle->data = (void *)TIMER_CLOSED; +} + +void cq_verifier_destroy(cq_verifier *v) { + cq_verify(v); + uv_close((uv_handle_t *)&v->timer, timer_close_cb); + while ((timer_state)v->timer.data != TIMER_CLOSED) { + uv_run(uv_default_loop(), UV_RUN_NOWAIT); + } + gpr_free(v); +} + +expectation *cq_verifier_get_first_expectation(cq_verifier *v) { + return v->first_expectation; +} + +void cq_verifier_set_first_expectation(cq_verifier *v, expectation *e) { + v->first_expectation = e; +} + +static void timer_run_cb(uv_timer_t *timer) { + timer->data = (void *)TIMER_TRIGGERED; +} + +grpc_event cq_verifier_next_event(cq_verifier *v, int timeout_seconds) { + uint64_t timeout_ms = + timeout_seconds < 0 ? 0 : (uint64_t)timeout_seconds * 1000; + grpc_event ev; + v->timer.data = (void *)TIMER_STARTED; + uv_timer_start(&v->timer, timer_run_cb, timeout_ms, 0); + ev = grpc_completion_queue_next(v->cq, gpr_inf_past(GPR_CLOCK_MONOTONIC), + NULL); + // Stop the loop if the timer goes off or we get a non-timeout event + while (((timer_state)v->timer.data != TIMER_TRIGGERED) && + ev.type == GRPC_QUEUE_TIMEOUT) { + uv_run(uv_default_loop(), UV_RUN_ONCE); + ev = grpc_completion_queue_next(v->cq, gpr_inf_past(GPR_CLOCK_MONOTONIC), + NULL); + } + return ev; +} + +#endif /* GRPC_UV */ diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c index cb07ca535b..f427202a7b 100644 --- a/test/core/end2end/dualstack_socket_test.c +++ b/test/core/end2end/dualstack_socket_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include <string.h> #include <grpc/grpc.h> @@ -353,3 +358,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/end2end/fake_resolver.c b/test/core/end2end/fake_resolver.c index 5669ce51e8..a2343cb709 100644 --- a/test/core/end2end/fake_resolver.c +++ b/test/core/end2end/fake_resolver.c @@ -42,13 +42,14 @@ #include <grpc/support/port_platform.h> #include <grpc/support/string_util.h> -#include "src/core/ext/client_channel/method_config.h" +#include "src/core/ext/client_channel/lb_policy_factory.h" #include "src/core/ext/client_channel/parse_address.h" #include "src/core/ext/client_channel/resolver_registry.h" #include "src/core/lib/channel/channel_args.h" #include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/unix_sockets_posix.h" #include "src/core/lib/support/string.h" +#include "src/core/lib/transport/method_config.h" // // fake_resolver @@ -59,7 +60,7 @@ typedef struct { grpc_resolver base; // passed-in parameters - char* target_name; // the path component of the uri passed in + grpc_channel_args* channel_args; grpc_lb_addresses* addresses; char* lb_policy_name; grpc_method_config_table* method_config_table; @@ -71,14 +72,14 @@ typedef struct { // pending next completion, or NULL grpc_closure* next_completion; // target result address for next completion - grpc_resolver_result** target_result; + grpc_channel_args** target_result; } fake_resolver; static void fake_resolver_destroy(grpc_exec_ctx* exec_ctx, grpc_resolver* gr) { fake_resolver* r = (fake_resolver*)gr; gpr_mu_destroy(&r->mu); - gpr_free(r->target_name); - grpc_lb_addresses_destroy(r->addresses, NULL /* user_data_destroy */); + grpc_channel_args_destroy(r->channel_args); + grpc_lb_addresses_destroy(r->addresses); gpr_free(r->lb_policy_name); grpc_method_config_table_unref(r->method_config_table); gpr_free(r); @@ -100,16 +101,21 @@ static void fake_resolver_maybe_finish_next_locked(grpc_exec_ctx* exec_ctx, fake_resolver* r) { if (r->next_completion != NULL && !r->published) { r->published = true; - grpc_channel_args* lb_policy_args = NULL; + grpc_arg new_args[3]; + size_t num_args = 0; + new_args[num_args++] = grpc_lb_addresses_create_channel_arg(r->addresses); if (r->method_config_table != NULL) { - const grpc_arg arg = + new_args[num_args++] = grpc_method_config_table_create_channel_arg(r->method_config_table); - lb_policy_args = grpc_channel_args_copy_and_add(NULL /* src */, &arg, 1); } - *r->target_result = grpc_resolver_result_create( - r->target_name, - grpc_lb_addresses_copy(r->addresses, NULL /* user_data_copy */), - r->lb_policy_name, lb_policy_args); + if (r->lb_policy_name != NULL) { + new_args[num_args].type = GRPC_ARG_STRING; + new_args[num_args].key = GRPC_ARG_LB_POLICY_NAME; + new_args[num_args].value.string = r->lb_policy_name; + ++num_args; + } + *r->target_result = + grpc_channel_args_copy_and_add(r->channel_args, new_args, num_args); grpc_exec_ctx_sched(exec_ctx, r->next_completion, GRPC_ERROR_NONE, NULL); r->next_completion = NULL; } @@ -125,7 +131,7 @@ static void fake_resolver_channel_saw_error(grpc_exec_ctx* exec_ctx, } static void fake_resolver_next(grpc_exec_ctx* exec_ctx, grpc_resolver* resolver, - grpc_resolver_result** target_result, + grpc_channel_args** target_result, grpc_closure* on_complete) { fake_resolver* r = (fake_resolver*)resolver; gpr_mu_lock(&r->mu); @@ -168,16 +174,14 @@ static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory, gpr_slice_buffer path_parts; gpr_slice_buffer_init(&path_parts); gpr_slice_split(path_slice, ",", &path_parts); - grpc_lb_addresses* addresses = grpc_lb_addresses_create(path_parts.count); + grpc_lb_addresses* addresses = + grpc_lb_addresses_create(path_parts.count, NULL /* user_data_vtable */); bool errors_found = false; for (size_t i = 0; i < addresses->num_addresses; i++) { grpc_uri ith_uri = *args->uri; char* part_str = gpr_dump_slice(path_parts.slices[i], GPR_DUMP_ASCII); ith_uri.path = part_str; - if (!parse_ipv4( - &ith_uri, - (struct sockaddr_storage*)(&addresses->addresses[i].address.addr), - &addresses->addresses[i].address.len)) { + if (!parse_ipv4(&ith_uri, &addresses->addresses[i].address)) { errors_found = true; } gpr_free(part_str); @@ -187,7 +191,7 @@ static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory, gpr_slice_buffer_destroy(&path_parts); gpr_slice_unref(path_slice); if (errors_found) { - grpc_lb_addresses_destroy(addresses, NULL /* user_data_destroy */); + grpc_lb_addresses_destroy(addresses); return NULL; } // Construct method config table. @@ -232,7 +236,12 @@ static grpc_resolver* fake_resolver_create(grpc_resolver_factory* factory, // Instantiate resolver. fake_resolver* r = gpr_malloc(sizeof(fake_resolver)); memset(r, 0, sizeof(*r)); - r->target_name = gpr_strdup(args->uri->path); + grpc_arg server_name_arg; + server_name_arg.type = GRPC_ARG_STRING; + server_name_arg.key = GRPC_ARG_SERVER_NAME; + server_name_arg.value.string = args->uri->path; + r->channel_args = + grpc_channel_args_copy_and_add(args->args, &server_name_arg, 1); r->addresses = addresses; r->lb_policy_name = gpr_strdup(grpc_uri_get_query_arg(args->uri, "lb_policy")); diff --git a/test/core/end2end/fixtures/h2_fd.c b/test/core/end2end/fixtures/h2_fd.c index 5a58fe34cd..2dfa54fb6b 100644 --- a/test/core/end2end/fixtures/h2_fd.c +++ b/test/core/end2end/fixtures/h2_fd.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "test/core/end2end/end2end_tests.h" #include <fcntl.h> @@ -129,3 +134,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/end2end/fixtures/h2_full+pipe.c b/test/core/end2end/fixtures/h2_full+pipe.c index 5d4c44ce94..e0026a7940 100644 --- a/test/core/end2end/fixtures/h2_full+pipe.c +++ b/test/core/end2end/fixtures/h2_full+pipe.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test requires posix wakeup fds +#ifdef GRPC_POSIX_WAKEUP_FD + #include "test/core/end2end/end2end_tests.h" #include <string.h> @@ -121,3 +126,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_POSIX_WAKEUP_FD */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_WAKEUP_FD */ diff --git a/test/core/end2end/fixtures/h2_full+trace.c b/test/core/end2end/fixtures/h2_full+trace.c index 64aa53a5ae..eadc62d963 100644 --- a/test/core/end2end/fixtures/h2_full+trace.c +++ b/test/core/end2end/fixtures/h2_full+trace.c @@ -31,9 +31,14 @@ * */ +#include "src/core/lib/iomgr/port.h" + #include "test/core/end2end/end2end_tests.h" #include <string.h> +#ifdef GRPC_POSIX_SOCKET +#include <unistd.h> +#endif #include <grpc/support/alloc.h> #include <grpc/support/host_port.h> @@ -111,7 +116,7 @@ int main(int argc, char **argv) { code paths in trace.c to be taken */ gpr_setenv("GRPC_TRACE", "doesnt-exist,http,all"); -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET g_fixture_slowdown_factor = isatty(STDOUT_FILENO) ? 10.0 : 1.0; #else g_fixture_slowdown_factor = 10.0; diff --git a/test/core/end2end/fixtures/h2_sockpair+trace.c b/test/core/end2end/fixtures/h2_sockpair+trace.c index dd4376f046..15b045c33c 100644 --- a/test/core/end2end/fixtures/h2_sockpair+trace.c +++ b/test/core/end2end/fixtures/h2_sockpair+trace.c @@ -31,9 +31,14 @@ * */ +#include "src/core/lib/iomgr/port.h" + #include "test/core/end2end/end2end_tests.h" #include <string.h> +#ifdef GRPC_POSIX_SOCKET +#include <unistd.h> +#endif #include <grpc/support/alloc.h> #include <grpc/support/log.h> @@ -148,7 +153,7 @@ int main(int argc, char **argv) { /* force tracing on, with a value to force many code paths in trace.c to be taken */ gpr_setenv("GRPC_TRACE", "doesnt-exist,http,all"); -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET g_fixture_slowdown_factor = isatty(STDOUT_FILENO) ? 10.0 : 1.0; #else g_fixture_slowdown_factor = 10.0; diff --git a/test/core/end2end/fixtures/http_proxy.c b/test/core/end2end/fixtures/http_proxy.c index 22533b9694..b8f046c7df 100644 --- a/test/core/end2end/fixtures/http_proxy.c +++ b/test/core/end2end/fixtures/http_proxy.c @@ -33,6 +33,8 @@ #include "test/core/end2end/fixtures/http_proxy.h" +#include "src/core/lib/iomgr/sockaddr.h" + #include <string.h> #include <grpc/support/alloc.h> @@ -358,8 +360,7 @@ static void on_read_request_done(grpc_exec_ctx* exec_ctx, void* arg, gpr_now(GPR_CLOCK_MONOTONIC), gpr_time_from_seconds(10, GPR_TIMESPAN)); grpc_tcp_client_connect(exec_ctx, &conn->on_server_connect_done, &conn->server_endpoint, conn->pollset_set, - (struct sockaddr*)&resolved_addresses->addrs[0].addr, - resolved_addresses->addrs[0].len, deadline); + &resolved_addresses->addrs[0], deadline); grpc_resolved_addresses_destroy(resolved_addresses); } @@ -430,13 +431,13 @@ grpc_end2end_http_proxy* grpc_end2end_http_proxy_create() { grpc_tcp_server_create(NULL, proxy->channel_args, &proxy->server); GPR_ASSERT(error == GRPC_ERROR_NONE); // Bind to port. - struct sockaddr_in addr; - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - grpc_sockaddr_set_port((struct sockaddr*)&addr, proxy_port); + grpc_resolved_address resolved_addr; + struct sockaddr_in* addr = (struct sockaddr_in*)resolved_addr.addr; + memset(&resolved_addr, 0, sizeof(resolved_addr)); + addr->sin_family = AF_INET; + grpc_sockaddr_set_port(&resolved_addr, proxy_port); int port; - error = grpc_tcp_server_add_port(proxy->server, (struct sockaddr*)&addr, - sizeof(addr), &port); + error = grpc_tcp_server_add_port(proxy->server, &resolved_addr, &port); GPR_ASSERT(error == GRPC_ERROR_NONE); GPR_ASSERT(port == proxy_port); // Start server. diff --git a/test/core/end2end/fuzzers/api_fuzzer.c b/test/core/end2end/fuzzers/api_fuzzer.c index 96ea82d95e..4e19b76014 100644 --- a/test/core/end2end/fuzzers/api_fuzzer.c +++ b/test/core/end2end/fuzzers/api_fuzzer.c @@ -231,8 +231,8 @@ void my_resolve_address(grpc_exec_ctx *exec_ctx, const char *addr, // defined in tcp_client_posix.c extern void (*grpc_tcp_client_connect_impl)( grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, - grpc_pollset_set *interested_parties, const struct sockaddr *addr, - size_t addr_len, gpr_timespec deadline); + grpc_pollset_set *interested_parties, const grpc_resolved_address *addr, + gpr_timespec deadline); static void sched_connect(grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, gpr_timespec deadline); @@ -289,7 +289,7 @@ static void sched_connect(grpc_exec_ctx *exec_ctx, grpc_closure *closure, static void my_tcp_client_connect(grpc_exec_ctx *exec_ctx, grpc_closure *closure, grpc_endpoint **ep, grpc_pollset_set *interested_parties, - const struct sockaddr *addr, size_t addr_len, + const grpc_resolved_address *addr, gpr_timespec deadline) { sched_connect(exec_ctx, closure, ep, deadline); } diff --git a/test/core/end2end/gen_build_yaml.py b/test/core/end2end/gen_build_yaml.py index d3d6f5e9ce..0bbf10d475 100755 --- a/test/core/end2end/gen_build_yaml.py +++ b/test/core/end2end/gen_build_yaml.py @@ -39,19 +39,20 @@ import hashlib FixtureOptions = collections.namedtuple( 'FixtureOptions', - 'fullstack includes_proxy dns_resolver secure platforms ci_mac tracing exclude_configs') + 'fullstack includes_proxy dns_resolver secure platforms ci_mac tracing exclude_configs exclude_iomgrs') default_unsecure_fixture_options = FixtureOptions( - True, False, True, False, ['windows', 'linux', 'mac', 'posix'], True, False, []) + True, False, True, False, ['windows', 'linux', 'mac', 'posix'], True, False, [], []) socketpair_unsecure_fixture_options = default_unsecure_fixture_options._replace(fullstack=False, dns_resolver=False) default_secure_fixture_options = default_unsecure_fixture_options._replace(secure=True) -uds_fixture_options = default_unsecure_fixture_options._replace(dns_resolver=False, platforms=['linux', 'mac', 'posix']) +uds_fixture_options = default_unsecure_fixture_options._replace(dns_resolver=False, platforms=['linux', 'mac', 'posix'], exclude_iomgrs=['uv']) fd_unsecure_fixture_options = default_unsecure_fixture_options._replace( - dns_resolver=False, fullstack=False, platforms=['linux', 'mac', 'posix']) + dns_resolver=False, fullstack=False, platforms=['linux', 'mac', 'posix'], exclude_iomgrs=['uv']) # maps fixture name to whether it requires the security library END2END_FIXTURES = { 'h2_compress': default_unsecure_fixture_options, + 'h2_census': default_unsecure_fixture_options, 'h2_load_reporting': default_unsecure_fixture_options, 'h2_fakesec': default_secure_fixture_options._replace(ci_mac=False), @@ -59,28 +60,31 @@ END2END_FIXTURES = { 'h2_fd': fd_unsecure_fixture_options, 'h2_full': default_unsecure_fixture_options, 'h2_full+pipe': default_unsecure_fixture_options._replace( - platforms=['linux']), + platforms=['linux'], exclude_iomgrs=['uv']), 'h2_full+trace': default_unsecure_fixture_options._replace(tracing=True), - 'h2_http_proxy': default_unsecure_fixture_options._replace(ci_mac=False), - 'h2_oauth2': default_secure_fixture_options._replace(ci_mac=False), - 'h2_proxy': default_unsecure_fixture_options._replace(includes_proxy=True, - ci_mac=False), + 'h2_http_proxy': default_unsecure_fixture_options._replace( + ci_mac=False, exclude_iomgrs=['uv']), + 'h2_oauth2': default_secure_fixture_options._replace( + ci_mac=False, exclude_iomgrs=['uv']), + 'h2_proxy': default_unsecure_fixture_options._replace( + includes_proxy=True, ci_mac=False, exclude_iomgrs=['uv']), 'h2_sockpair_1byte': socketpair_unsecure_fixture_options._replace( - ci_mac=False, exclude_configs=['msan']), - 'h2_sockpair': socketpair_unsecure_fixture_options._replace(ci_mac=False), + ci_mac=False, exclude_configs=['msan'], exclude_iomgrs=['uv']), + 'h2_sockpair': socketpair_unsecure_fixture_options._replace( + ci_mac=False, exclude_iomgrs=['uv']), 'h2_sockpair+trace': socketpair_unsecure_fixture_options._replace( - ci_mac=False, tracing=True), + ci_mac=False, tracing=True, exclude_iomgrs=['uv']), 'h2_ssl': default_secure_fixture_options, 'h2_ssl_cert': default_secure_fixture_options, - 'h2_ssl_proxy': default_secure_fixture_options._replace(includes_proxy=True, - ci_mac=False), + 'h2_ssl_proxy': default_secure_fixture_options._replace( + includes_proxy=True, ci_mac=False, exclude_iomgrs=['uv']), 'h2_uds': uds_fixture_options, } TestOptions = collections.namedtuple( 'TestOptions', - 'needs_fullstack needs_dns proxyable secure traceable cpu_cost') -default_test_options = TestOptions(False, False, True, False, True, 1.0) + 'needs_fullstack needs_dns proxyable secure traceable cpu_cost exclude_iomgrs') +default_test_options = TestOptions(False, False, True, False, True, 1.0, []) connectivity_test_options = default_test_options._replace(needs_fullstack=True) LOWCPU = 0.1 @@ -97,8 +101,8 @@ END2END_TESTS = { 'cancel_in_a_vacuum': default_test_options._replace(cpu_cost=LOWCPU), 'cancel_with_status': default_test_options._replace(cpu_cost=LOWCPU), 'compressed_payload': default_test_options._replace(proxyable=False), - 'connectivity': connectivity_test_options._replace(proxyable=False, - cpu_cost=LOWCPU), + 'connectivity': connectivity_test_options._replace( + proxyable=False, cpu_cost=LOWCPU, exclude_iomgrs=['uv']), 'default_host': default_test_options._replace(needs_fullstack=True, needs_dns=True), 'disappearing_server': connectivity_test_options, @@ -247,6 +251,8 @@ def main(): 'name': '%s_test' % f, 'args': [t], 'exclude_configs': END2END_FIXTURES[f].exclude_configs, + 'exclude_iomgrs': list(set(END2END_FIXTURES[f].exclude_iomgrs) | + set(END2END_TESTS[t].exclude_iomgrs)), 'platforms': END2END_FIXTURES[f].platforms, 'ci_platforms': (END2END_FIXTURES[f].platforms if END2END_FIXTURES[f].ci_mac else without( @@ -262,6 +268,8 @@ def main(): 'name': '%s_nosec_test' % f, 'args': [t], 'exclude_configs': END2END_FIXTURES[f].exclude_configs, + 'exclude_iomgrs': list(set(END2END_FIXTURES[f].exclude_iomgrs) | + set(END2END_TESTS[t].exclude_iomgrs)), 'platforms': END2END_FIXTURES[f].platforms, 'ci_platforms': (END2END_FIXTURES[f].platforms if END2END_FIXTURES[f].ci_mac else without( diff --git a/test/core/handshake/client_ssl.c b/test/core/handshake/client_ssl.c new file mode 100644 index 0000000000..ee90f0b0bc --- /dev/null +++ b/test/core/handshake/client_ssl.c @@ -0,0 +1,311 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <arpa/inet.h> +#include <openssl/err.h> +#include <openssl/ssl.h> +#include <stdlib.h> +#include <string.h> +#include <sys/socket.h> +#include <unistd.h> + +#include <grpc/grpc.h> +#include <grpc/grpc_security.h> +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> +#include <grpc/support/thd.h> +#include "src/core/lib/iomgr/load_file.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" + +#define SSL_CERT_PATH "src/core/lib/tsi/test_creds/server1.pem" +#define SSL_KEY_PATH "src/core/lib/tsi/test_creds/server1.key" +#define SSL_CA_PATH "src/core/lib/tsi/test_creds/ca.pem" + +// Arguments for TLS server thread. +typedef struct { + int socket; + char *alpn_preferred; +} server_args; + +// From https://wiki.openssl.org/index.php/Simple_TLS_Server. +static int create_socket(int port) { + int s; + struct sockaddr_in addr; + + addr.sin_family = AF_INET; + addr.sin_port = htons((uint16_t)port); + addr.sin_addr.s_addr = htonl(INADDR_ANY); + + s = socket(AF_INET, SOCK_STREAM, 0); + if (s < 0) { + perror("Unable to create socket"); + return -1; + } + + if (bind(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { + perror("Unable to bind"); + gpr_log(GPR_ERROR, "Unable to bind to %d", port); + close(s); + return -1; + } + + if (listen(s, 1) < 0) { + perror("Unable to listen"); + close(s); + return -1; + } + + return s; +} + +// Server callback during ALPN negotiation. See man page for +// SSL_CTX_set_alpn_select_cb. +static int alpn_select_cb(SSL *ssl, const uint8_t **out, uint8_t *out_len, + const uint8_t *in, unsigned in_len, void *arg) { + const uint8_t *alpn_preferred = (const uint8_t *)arg; + + *out = alpn_preferred; + *out_len = (uint8_t)strlen((char *)alpn_preferred); + + // Validate that the ALPN list includes "h2" and "grpc-exp", that "grpc-exp" + // precedes "h2". + bool grpc_exp_seen = false; + bool h2_seen = false; + const char *inp = (const char *)in; + for (int i = 0; i < (int)in_len; ++i) { + const size_t length = (size_t)*inp++; + if (length == strlen("grpc-exp") && strncmp(inp, "grpc-exp", length) == 0) { + grpc_exp_seen = true; + GPR_ASSERT(!h2_seen); + } + if (length == strlen("h2") && strncmp(inp, "h2", length) == 0) { + h2_seen = true; + GPR_ASSERT(grpc_exp_seen); + } + inp += length; + } + + GPR_ASSERT(grpc_exp_seen); + GPR_ASSERT(h2_seen); + + return SSL_TLSEXT_ERR_OK; +} + +// Minimal TLS server. This is largely based on the example at +// https://wiki.openssl.org/index.php/Simple_TLS_Server and the gRPC core +// internals in src/core/lib/tsi/ssl_transport_security.c. +static void server_thread(void *arg) { + const server_args *args = (server_args *)arg; + + SSL_load_error_strings(); + OpenSSL_add_ssl_algorithms(); + + const SSL_METHOD *method = TLSv1_2_server_method(); + SSL_CTX *ctx = SSL_CTX_new(method); + if (!ctx) { + perror("Unable to create SSL context"); + ERR_print_errors_fp(stderr); + abort(); + } + + // Load key pair. + if (SSL_CTX_use_certificate_file(ctx, SSL_CERT_PATH, SSL_FILETYPE_PEM) < 0) { + ERR_print_errors_fp(stderr); + abort(); + } + if (SSL_CTX_use_PrivateKey_file(ctx, SSL_KEY_PATH, SSL_FILETYPE_PEM) < 0) { + ERR_print_errors_fp(stderr); + abort(); + } + + // Set the cipher list to match the one expressed in + // src/core/lib/tsi/ssl_transport_security.c. + const char *cipher_list = + "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-" + "SHA384:ECDHE-RSA-AES256-GCM-SHA384"; + if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Couldn't set server cipher list."); + abort(); + } + + // Register the ALPN selection callback. + SSL_CTX_set_alpn_select_cb(ctx, alpn_select_cb, args->alpn_preferred); + + // bind/listen/accept at TCP layer. + const int sock = args->socket; + gpr_log(GPR_INFO, "Server listening"); + struct sockaddr_in addr; + socklen_t len = sizeof(addr); + const int client = accept(sock, (struct sockaddr *)&addr, &len); + if (client < 0) { + perror("Unable to accept"); + abort(); + } + + // Establish a SSL* and accept at SSL layer. + SSL *ssl = SSL_new(ctx); + GPR_ASSERT(ssl); + SSL_set_fd(ssl, client); + if (SSL_accept(ssl) <= 0) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Handshake failed."); + } else { + gpr_log(GPR_INFO, "Handshake successful."); + } + + // Wait until the client drops its connection. + char buf; + while (SSL_read(ssl, &buf, sizeof(buf)) > 0) + ; + + SSL_free(ssl); + close(client); + close(sock); + SSL_CTX_free(ctx); + EVP_cleanup(); +} + +// This test launches a minimal TLS server on a separate thread and then +// establishes a TLS handshake via the core library to the server. The TLS +// server validates ALPN aspects of the handshake and supplies the protocol +// specified in the server_alpn_preferred argument to the client. +static bool client_ssl_test(char *server_alpn_preferred) { + bool success = true; + + grpc_init(); + + // Find a port we can bind to. Retries added to handle flakes in port server + // and port picking. + int port = -1; + int server_socket = -1; + int socket_retries = 10; + while (server_socket == -1 && socket_retries-- > 0) { + port = grpc_pick_unused_port_or_die(); + server_socket = create_socket(port); + if (server_socket == -1) { + sleep(1); + } + } + GPR_ASSERT(server_socket > 0); + + // Launch the TLS server thread. + gpr_thd_options thdopt = gpr_thd_options_default(); + gpr_thd_id thdid; + gpr_thd_options_set_joinable(&thdopt); + server_args args = {.socket = server_socket, + .alpn_preferred = server_alpn_preferred}; + GPR_ASSERT(gpr_thd_new(&thdid, server_thread, &args, &thdopt)); + + // Load key pair and establish client SSL credentials. + grpc_ssl_pem_key_cert_pair pem_key_cert_pair; + gpr_slice ca_slice, cert_slice, key_slice; + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_CA_PATH, 1, &ca_slice))); + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_CERT_PATH, 1, &cert_slice))); + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_KEY_PATH, 1, &key_slice))); + const char *ca_cert = (const char *)GPR_SLICE_START_PTR(ca_slice); + pem_key_cert_pair.private_key = (const char *)GPR_SLICE_START_PTR(key_slice); + pem_key_cert_pair.cert_chain = (const char *)GPR_SLICE_START_PTR(cert_slice); + grpc_channel_credentials *ssl_creds = + grpc_ssl_credentials_create(ca_cert, &pem_key_cert_pair, NULL); + + // Establish a channel pointing at the TLS server. Since the gRPC runtime is + // lazy, this won't necessarily establish a connection yet. + char *target; + gpr_asprintf(&target, "127.0.0.1:%d", port); + grpc_arg ssl_name_override = {GRPC_ARG_STRING, + GRPC_SSL_TARGET_NAME_OVERRIDE_ARG, + {"foo.test.google.fr"}}; + grpc_channel_args grpc_args; + grpc_args.num_args = 1; + grpc_args.args = &ssl_name_override; + grpc_channel *channel = + grpc_secure_channel_create(ssl_creds, target, &grpc_args, NULL); + GPR_ASSERT(channel); + gpr_free(target); + + // Initially the channel will be idle, the + // grpc_channel_check_connectivity_state triggers an attempt to connect. + GPR_ASSERT(grpc_channel_check_connectivity_state( + channel, 1 /* try_to_connect */) == GRPC_CHANNEL_IDLE); + + // Wait a bounded number of times for the channel to be ready. When the + // channel is ready, the initial TLS handshake will have successfully + // completed and we know that the client's ALPN list satisfied the server. + int retries = 10; + grpc_connectivity_state state = GRPC_CHANNEL_IDLE; + grpc_completion_queue *cq = grpc_completion_queue_create(NULL); + while (state != GRPC_CHANNEL_READY && retries-- > 0) { + grpc_channel_watch_connectivity_state( + channel, state, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), cq, NULL); + gpr_timespec cq_deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5); + grpc_event ev = grpc_completion_queue_next(cq, cq_deadline, NULL); + GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); + state = + grpc_channel_check_connectivity_state(channel, 0 /* try_to_connect */); + } + grpc_completion_queue_destroy(cq); + if (retries < 0) { + success = false; + } + + grpc_channel_destroy(channel); + grpc_channel_credentials_release(ssl_creds); + gpr_slice_unref(cert_slice); + gpr_slice_unref(key_slice); + gpr_slice_unref(ca_slice); + + gpr_thd_join(thdid); + + grpc_shutdown(); + + return success; +} + +int main(int argc, char *argv[]) { + // Handshake succeeeds when the server has grpc-exp as the ALPN preference. + GPR_ASSERT(client_ssl_test("grpc-exp")); + // Handshake succeeeds when the server has h2 as the ALPN preference. This + // covers legacy gRPC servers which don't support grpc-exp. + GPR_ASSERT(client_ssl_test("h2")); + // Handshake fails when the server uses a fake protocol as its ALPN + // preference. This validates the client is correctly validating ALPN returns + // and sanity checks the client_ssl_test. + GPR_ASSERT(!client_ssl_test("foo")); + return 0; +} diff --git a/test/core/handshake/server_ssl.c b/test/core/handshake/server_ssl.c new file mode 100644 index 0000000000..3e89f8e265 --- /dev/null +++ b/test/core/handshake/server_ssl.c @@ -0,0 +1,270 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include <arpa/inet.h> +#include <openssl/err.h> +#include <openssl/ssl.h> +#include <string.h> +#include <sys/socket.h> +#include <unistd.h> + +#include <grpc/grpc.h> +#include <grpc/grpc_security.h> +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> +#include <grpc/support/string_util.h> +#include <grpc/support/sync.h> +#include <grpc/support/thd.h> +#include "src/core/lib/iomgr/load_file.h" +#include "test/core/util/port.h" +#include "test/core/util/test_config.h" + +#define SSL_CERT_PATH "src/core/lib/tsi/test_creds/server1.pem" +#define SSL_KEY_PATH "src/core/lib/tsi/test_creds/server1.key" +#define SSL_CA_PATH "src/core/lib/tsi/test_creds/ca.pem" + +// Handshake completed signal to server thread. +static gpr_event client_handshake_complete; + +static int create_socket(int port) { + int s; + struct sockaddr_in addr; + + addr.sin_family = AF_INET; + addr.sin_port = htons((uint16_t)port); + addr.sin_addr.s_addr = htonl(INADDR_ANY); + + s = socket(AF_INET, SOCK_STREAM, 0); + if (s < 0) { + perror("Unable to create socket"); + return -1; + } + + if (connect(s, (struct sockaddr *)&addr, sizeof(addr)) < 0) { + perror("Unable to connect"); + return -1; + } + + return s; +} + +// Simple gRPC server. This listens until client_handshake_complete occurs. +static void server_thread(void *arg) { + const int port = *(int *)arg; + + // Load key pair and establish server SSL credentials. + grpc_ssl_pem_key_cert_pair pem_key_cert_pair; + gpr_slice ca_slice, cert_slice, key_slice; + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_CA_PATH, 1, &ca_slice))); + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_CERT_PATH, 1, &cert_slice))); + GPR_ASSERT(GRPC_LOG_IF_ERROR("load_file", + grpc_load_file(SSL_KEY_PATH, 1, &key_slice))); + const char *ca_cert = (const char *)GPR_SLICE_START_PTR(ca_slice); + pem_key_cert_pair.private_key = (const char *)GPR_SLICE_START_PTR(key_slice); + pem_key_cert_pair.cert_chain = (const char *)GPR_SLICE_START_PTR(cert_slice); + grpc_server_credentials *ssl_creds = grpc_ssl_server_credentials_create( + ca_cert, &pem_key_cert_pair, 1, 0, NULL); + + // Start server listening on local port. + char *addr; + gpr_asprintf(&addr, "127.0.0.1:%d", port); + grpc_server *server = grpc_server_create(NULL, NULL); + GPR_ASSERT(grpc_server_add_secure_http2_port(server, addr, ssl_creds)); + free(addr); + + grpc_completion_queue *cq = grpc_completion_queue_create(NULL); + + grpc_server_register_completion_queue(server, cq, NULL); + grpc_server_start(server); + + // Wait a bounded number of time until client_handshake_complete is set, + // sleeping between polls. + int retries = 10; + while (!gpr_event_get(&client_handshake_complete) && retries-- > 0) { + const gpr_timespec cq_deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1); + grpc_event ev = grpc_completion_queue_next(cq, cq_deadline, NULL); + GPR_ASSERT(ev.type == GRPC_QUEUE_TIMEOUT); + } + + gpr_log(GPR_INFO, "Shutting down server"); + grpc_server_shutdown_and_notify(server, cq, NULL); + grpc_completion_queue_shutdown(cq); + + const gpr_timespec cq_deadline = GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5); + grpc_event ev = grpc_completion_queue_next(cq, cq_deadline, NULL); + GPR_ASSERT(ev.type == GRPC_OP_COMPLETE); + + grpc_server_destroy(server); + grpc_completion_queue_destroy(cq); + grpc_server_credentials_release(ssl_creds); + gpr_slice_unref(cert_slice); + gpr_slice_unref(key_slice); + gpr_slice_unref(ca_slice); +} + +// This test launches a gRPC server on a separate thread and then establishes a +// TLS handshake via a minimal TLS client. The TLS client has configurable (via +// alpn_list) ALPN settings and can probe at the supported ALPN preferences +// using this (via alpn_expected). +static bool server_ssl_test(const char *alpn_list[], unsigned int alpn_list_len, + const char *alpn_expected) { + bool success = true; + + grpc_init(); + int port = grpc_pick_unused_port_or_die(); + gpr_event_init(&client_handshake_complete); + + // Launch the gRPC server thread. + gpr_thd_options thdopt = gpr_thd_options_default(); + gpr_thd_id thdid; + gpr_thd_options_set_joinable(&thdopt); + GPR_ASSERT(gpr_thd_new(&thdid, server_thread, &port, &thdopt)); + + SSL_load_error_strings(); + OpenSSL_add_ssl_algorithms(); + + const SSL_METHOD *method = TLSv1_2_client_method(); + SSL_CTX *ctx = SSL_CTX_new(method); + if (!ctx) { + perror("Unable to create SSL context"); + ERR_print_errors_fp(stderr); + abort(); + } + + // Load key pair. + if (SSL_CTX_use_certificate_file(ctx, SSL_CERT_PATH, SSL_FILETYPE_PEM) < 0) { + ERR_print_errors_fp(stderr); + abort(); + } + if (SSL_CTX_use_PrivateKey_file(ctx, SSL_KEY_PATH, SSL_FILETYPE_PEM) < 0) { + ERR_print_errors_fp(stderr); + abort(); + } + + // Set the cipher list to match the one expressed in + // src/core/lib/tsi/ssl_transport_security.c. + const char *cipher_list = + "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-" + "SHA384:ECDHE-RSA-AES256-GCM-SHA384"; + if (!SSL_CTX_set_cipher_list(ctx, cipher_list)) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Couldn't set server cipher list."); + abort(); + } + + // Configure ALPN list the client will send to the server. This must match the + // wire format, see documentation for SSL_CTX_set_alpn_protos. + unsigned int alpn_protos_len = alpn_list_len; + for (unsigned int i = 0; i < alpn_list_len; ++i) { + alpn_protos_len += (unsigned int)strlen(alpn_list[i]); + } + unsigned char *alpn_protos = gpr_malloc(alpn_protos_len); + unsigned char *p = alpn_protos; + for (unsigned int i = 0; i < alpn_list_len; ++i) { + const uint8_t len = (uint8_t)strlen(alpn_list[i]); + *p++ = len; + memcpy(p, alpn_list[i], len); + p += len; + } + GPR_ASSERT(SSL_CTX_set_alpn_protos(ctx, alpn_protos, alpn_protos_len) == 0); + + // Try and connect to server. We allow a bounded number of retries as we might + // be racing with the server setup on its separate thread. + int retries = 10; + int sock = -1; + while (sock == -1 && retries-- > 0) { + sock = create_socket(port); + if (sock < 0) { + sleep(1); + } + } + GPR_ASSERT(sock > 0); + gpr_log(GPR_INFO, "Connected to server on port %d", port); + + // Establish a SSL* and connect at SSL layer. + SSL *ssl = SSL_new(ctx); + GPR_ASSERT(ssl); + SSL_set_fd(ssl, sock); + if (SSL_connect(ssl) <= 0) { + ERR_print_errors_fp(stderr); + gpr_log(GPR_ERROR, "Handshake failed."); + success = false; + } else { + gpr_log(GPR_INFO, "Handshake successful."); + // Validate ALPN preferred by server matches alpn_expected. + const unsigned char *alpn_selected; + unsigned int alpn_selected_len; + SSL_get0_alpn_selected(ssl, &alpn_selected, &alpn_selected_len); + if (strlen(alpn_expected) != alpn_selected_len || + strncmp((const char *)alpn_selected, alpn_expected, + alpn_selected_len) != 0) { + gpr_log(GPR_ERROR, "Unexpected ALPN protocol preference"); + success = false; + } + } + gpr_event_set(&client_handshake_complete, &client_handshake_complete); + + SSL_free(ssl); + gpr_free(alpn_protos); + SSL_CTX_free(ctx); + EVP_cleanup(); + close(sock); + + gpr_thd_join(thdid); + + grpc_shutdown(); + + return success; +} + +int main(int argc, char *argv[]) { + // Handshake succeeeds when the client supplies the standard ALPN list. + const char *full_alpn_list[] = {"grpc-exp", "h2"}; + GPR_ASSERT(server_ssl_test(full_alpn_list, 2, "grpc-exp")); + // Handshake succeeeds when the client supplies only h2 as the ALPN list. This + // covers legacy gRPC clients which don't support grpc-exp. + const char *h2_only_alpn_list[] = {"h2"}; + GPR_ASSERT(server_ssl_test(h2_only_alpn_list, 1, "h2")); + // Handshake succeeds when the client supplies superfluous ALPN entries and + // also when h2 precedes gprc-exp. + const char *extra_alpn_list[] = {"foo", "h2", "bar", "grpc-exp"}; + GPR_ASSERT(server_ssl_test(extra_alpn_list, 4, "h2")); + // Handshake fails when the client uses a fake protocol as its only ALPN + // preference. This validates the server is correctly validating ALPN + // and sanity checks the server_ssl_test. + const char *fake_alpn_list[] = {"foo"}; + GPR_ASSERT(!server_ssl_test(fake_alpn_list, 1, "foo")); + return 0; +} diff --git a/test/core/iomgr/ev_epoll_linux_test.c b/test/core/iomgr/ev_epoll_linux_test.c index 2547dc9871..564b05d7f4 100644 --- a/test/core/iomgr/ev_epoll_linux_test.c +++ b/test/core/iomgr/ev_epoll_linux_test.c @@ -30,10 +30,10 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" /* This test only relevant on linux systems where epoll() is available */ -#ifdef GPR_LINUX_EPOLL +#ifdef GRPC_LINUX_EPOLL #include "src/core/lib/iomgr/ev_epoll_linux.h" #include "src/core/lib/iomgr/ev_posix.h" @@ -239,6 +239,6 @@ int main(int argc, char **argv) { grpc_iomgr_shutdown(); return 0; } -#else /* defined(GPR_LINUX_EPOLL) */ +#else /* defined(GRPC_LINUX_EPOLL) */ int main(int argc, char **argv) { return 0; } -#endif /* !defined(GPR_LINUX_EPOLL) */ +#endif /* !defined(GRPC_LINUX_EPOLL) */ diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c index 62dc24d85a..6166699fe6 100644 --- a/test/core/iomgr/fd_posix_test.c +++ b/test/core/iomgr/fd_posix_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "src/core/lib/iomgr/ev_posix.h" #include <ctype.h> @@ -548,3 +553,9 @@ int main(int argc, char **argv) { grpc_iomgr_shutdown(); return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/iomgr/resolve_address_test.c b/test/core/iomgr/resolve_address_test.c index 4417d96043..2dd0d88b3f 100644 --- a/test/core/iomgr/resolve_address_test.c +++ b/test/core/iomgr/resolve_address_test.c @@ -36,6 +36,7 @@ #include <grpc/support/sync.h> #include <grpc/support/time.h> #include "src/core/lib/iomgr/executor.h" +#include "src/core/lib/iomgr/iomgr.h" #include "test/core/util/test_config.h" static gpr_timespec test_deadline(void) { diff --git a/test/core/iomgr/sockaddr_utils_test.c b/test/core/iomgr/sockaddr_utils_test.c index a330314443..8569c697fe 100644 --- a/test/core/iomgr/sockaddr_utils_test.c +++ b/test/core/iomgr/sockaddr_utils_test.c @@ -31,6 +31,11 @@ * */ +/* With the addition of a libuv endpoint, sockaddr.h now includes uv.h when + using that endpoint. Because of various transitive includes in uv.h, + including windows.h on Windows, uv.h must be included before other system + headers. Therefore, sockaddr.h must always be included first */ +#include "src/core/lib/iomgr/sockaddr.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include <errno.h> @@ -41,24 +46,28 @@ #include <grpc/support/port_platform.h> #include "test/core/util/test_config.h" -static struct sockaddr_in make_addr4(const uint8_t *data, size_t data_len) { - struct sockaddr_in addr4; - memset(&addr4, 0, sizeof(addr4)); - addr4.sin_family = AF_INET; - GPR_ASSERT(data_len == sizeof(addr4.sin_addr.s_addr)); - memcpy(&addr4.sin_addr.s_addr, data, data_len); - addr4.sin_port = htons(12345); - return addr4; +static grpc_resolved_address make_addr4(const uint8_t *data, size_t data_len) { + grpc_resolved_address resolved_addr4; + struct sockaddr_in *addr4 = (struct sockaddr_in *)resolved_addr4.addr; + memset(&resolved_addr4, 0, sizeof(resolved_addr4)); + addr4->sin_family = AF_INET; + GPR_ASSERT(data_len == sizeof(addr4->sin_addr.s_addr)); + memcpy(&addr4->sin_addr.s_addr, data, data_len); + addr4->sin_port = htons(12345); + resolved_addr4.len = sizeof(struct sockaddr_in); + return resolved_addr4; } -static struct sockaddr_in6 make_addr6(const uint8_t *data, size_t data_len) { - struct sockaddr_in6 addr6; - memset(&addr6, 0, sizeof(addr6)); - addr6.sin6_family = AF_INET6; - GPR_ASSERT(data_len == sizeof(addr6.sin6_addr.s6_addr)); - memcpy(&addr6.sin6_addr.s6_addr, data, data_len); - addr6.sin6_port = htons(12345); - return addr6; +static grpc_resolved_address make_addr6(const uint8_t *data, size_t data_len) { + grpc_resolved_address resolved_addr6; + struct sockaddr_in6 *addr6 = (struct sockaddr_in6 *)resolved_addr6.addr; + memset(&resolved_addr6, 0, sizeof(resolved_addr6)); + addr6->sin6_family = AF_INET6; + GPR_ASSERT(data_len == sizeof(addr6->sin6_addr.s6_addr)); + memcpy(&addr6->sin6_addr.s6_addr, data, data_len); + addr6->sin6_port = htons(12345); + resolved_addr6.len = sizeof(struct sockaddr_in6); + return resolved_addr6; } static const uint8_t kMapped[] = {0, 0, 0, 0, 0, 0, 0, 0, @@ -72,102 +81,96 @@ static const uint8_t kIPv6[] = {0x20, 0x01, 0x0d, 0xb8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}; static void test_sockaddr_is_v4mapped(void) { - struct sockaddr_in input4; - struct sockaddr_in6 input6; - struct sockaddr_in output4; - struct sockaddr_in expect4; + grpc_resolved_address input4; + grpc_resolved_address input6; + grpc_resolved_address output4; + grpc_resolved_address expect4; gpr_log(GPR_INFO, "%s", "test_sockaddr_is_v4mapped"); /* v4mapped input should succeed. */ input6 = make_addr6(kMapped, sizeof(kMapped)); - GPR_ASSERT(grpc_sockaddr_is_v4mapped((const struct sockaddr *)&input6, NULL)); - GPR_ASSERT( - grpc_sockaddr_is_v4mapped((const struct sockaddr *)&input6, &output4)); + GPR_ASSERT(grpc_sockaddr_is_v4mapped(&input6, NULL)); + GPR_ASSERT(grpc_sockaddr_is_v4mapped(&input6, &output4)); expect4 = make_addr4(kIPv4, sizeof(kIPv4)); GPR_ASSERT(memcmp(&expect4, &output4, sizeof(expect4)) == 0); /* Non-v4mapped input should fail. */ input6 = make_addr6(kNotQuiteMapped, sizeof(kNotQuiteMapped)); - GPR_ASSERT( - !grpc_sockaddr_is_v4mapped((const struct sockaddr *)&input6, NULL)); - GPR_ASSERT( - !grpc_sockaddr_is_v4mapped((const struct sockaddr *)&input6, &output4)); + GPR_ASSERT(!grpc_sockaddr_is_v4mapped(&input6, NULL)); + GPR_ASSERT(!grpc_sockaddr_is_v4mapped(&input6, &output4)); /* Output is unchanged. */ GPR_ASSERT(memcmp(&expect4, &output4, sizeof(expect4)) == 0); /* Plain IPv4 input should also fail. */ input4 = make_addr4(kIPv4, sizeof(kIPv4)); - GPR_ASSERT( - !grpc_sockaddr_is_v4mapped((const struct sockaddr *)&input4, NULL)); + GPR_ASSERT(!grpc_sockaddr_is_v4mapped(&input4, NULL)); } static void test_sockaddr_to_v4mapped(void) { - struct sockaddr_in input4; - struct sockaddr_in6 input6; - struct sockaddr_in6 output6; - struct sockaddr_in6 expect6; + grpc_resolved_address input4; + grpc_resolved_address input6; + grpc_resolved_address output6; + grpc_resolved_address expect6; gpr_log(GPR_INFO, "%s", "test_sockaddr_to_v4mapped"); /* IPv4 input should succeed. */ input4 = make_addr4(kIPv4, sizeof(kIPv4)); - GPR_ASSERT( - grpc_sockaddr_to_v4mapped((const struct sockaddr *)&input4, &output6)); + GPR_ASSERT(grpc_sockaddr_to_v4mapped(&input4, &output6)); expect6 = make_addr6(kMapped, sizeof(kMapped)); GPR_ASSERT(memcmp(&expect6, &output6, sizeof(output6)) == 0); /* IPv6 input should fail. */ input6 = make_addr6(kIPv6, sizeof(kIPv6)); - GPR_ASSERT( - !grpc_sockaddr_to_v4mapped((const struct sockaddr *)&input6, &output6)); + GPR_ASSERT(!grpc_sockaddr_to_v4mapped(&input6, &output6)); /* Output is unchanged. */ GPR_ASSERT(memcmp(&expect6, &output6, sizeof(output6)) == 0); /* Already-v4mapped input should also fail. */ input6 = make_addr6(kMapped, sizeof(kMapped)); - GPR_ASSERT( - !grpc_sockaddr_to_v4mapped((const struct sockaddr *)&input6, &output6)); + GPR_ASSERT(!grpc_sockaddr_to_v4mapped(&input6, &output6)); } static void test_sockaddr_is_wildcard(void) { - struct sockaddr_in wild4; - struct sockaddr_in6 wild6; - struct sockaddr_in6 wild_mapped; - struct sockaddr dummy; + grpc_resolved_address wild4; + grpc_resolved_address wild6; + grpc_resolved_address wild_mapped; + grpc_resolved_address dummy; + struct sockaddr_in *wild4_addr; + struct sockaddr_in6 *wild6_addr; + struct sockaddr_in6 *wild_mapped_addr; int port; gpr_log(GPR_INFO, "%s", "test_sockaddr_is_wildcard"); /* Generate wildcards. */ grpc_sockaddr_make_wildcards(555, &wild4, &wild6); - GPR_ASSERT( - grpc_sockaddr_to_v4mapped((const struct sockaddr *)&wild4, &wild_mapped)); + GPR_ASSERT(grpc_sockaddr_to_v4mapped(&wild4, &wild_mapped)); /* Test 0.0.0.0:555 */ port = -1; - GPR_ASSERT(grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild4, &port)); + GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild4, &port)); GPR_ASSERT(port == 555); - memset(&wild4.sin_addr.s_addr, 0xbd, 1); - GPR_ASSERT( - !grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild4, &port)); + wild4_addr = (struct sockaddr_in *)&wild4.addr; + memset(&wild4_addr->sin_addr.s_addr, 0xbd, 1); + GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild4, &port)); /* Test [::]:555 */ port = -1; - GPR_ASSERT(grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild6, &port)); + GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild6, &port)); GPR_ASSERT(port == 555); - memset(&wild6.sin6_addr.s6_addr, 0xbd, 1); - GPR_ASSERT( - !grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild6, &port)); + wild6_addr = (struct sockaddr_in6 *)&wild6.addr; + memset(&wild6_addr->sin6_addr.s6_addr, 0xbd, 1); + GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild6, &port)); /* Test [::ffff:0.0.0.0]:555 */ port = -1; - GPR_ASSERT( - grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild_mapped, &port)); + GPR_ASSERT(grpc_sockaddr_is_wildcard(&wild_mapped, &port)); GPR_ASSERT(port == 555); - memset(&wild_mapped.sin6_addr.s6_addr, 0xbd, 1); - GPR_ASSERT( - !grpc_sockaddr_is_wildcard((const struct sockaddr *)&wild_mapped, &port)); + wild_mapped_addr = (struct sockaddr_in6 *)&wild_mapped.addr; + memset(&wild_mapped_addr->sin6_addr.s6_addr, 0xbd, 1); + GPR_ASSERT(!grpc_sockaddr_is_wildcard(&wild_mapped, &port)); /* Test AF_UNSPEC. */ port = -1; @@ -176,12 +179,12 @@ static void test_sockaddr_is_wildcard(void) { GPR_ASSERT(port == -1); } -static void expect_sockaddr_str(const char *expected, void *addr, - int normalize) { +static void expect_sockaddr_str(const char *expected, + grpc_resolved_address *addr, int normalize) { int result; char *str; gpr_log(GPR_INFO, " expect_sockaddr_str(%s)", expected); - result = grpc_sockaddr_to_string(&str, (struct sockaddr *)addr, normalize); + result = grpc_sockaddr_to_string(&str, addr, normalize); GPR_ASSERT(str != NULL); GPR_ASSERT(result >= 0); GPR_ASSERT((size_t)result == strlen(str)); @@ -189,19 +192,21 @@ static void expect_sockaddr_str(const char *expected, void *addr, gpr_free(str); } -static void expect_sockaddr_uri(const char *expected, void *addr) { +static void expect_sockaddr_uri(const char *expected, + grpc_resolved_address *addr) { char *str; gpr_log(GPR_INFO, " expect_sockaddr_uri(%s)", expected); - str = grpc_sockaddr_to_uri((struct sockaddr *)addr); + str = grpc_sockaddr_to_uri(addr); GPR_ASSERT(str != NULL); GPR_ASSERT(strcmp(expected, str) == 0); gpr_free(str); } static void test_sockaddr_to_string(void) { - struct sockaddr_in input4; - struct sockaddr_in6 input6; - struct sockaddr dummy; + grpc_resolved_address input4; + grpc_resolved_address input6; + grpc_resolved_address dummy; + struct sockaddr *dummy_addr; gpr_log(GPR_INFO, "%s", "test_sockaddr_to_string"); @@ -228,7 +233,8 @@ static void test_sockaddr_to_string(void) { expect_sockaddr_uri("ipv6:[::fffe:c000:263]:12345", &input6); memset(&dummy, 0, sizeof(dummy)); - dummy.sa_family = 123; + dummy_addr = (struct sockaddr *)dummy.addr; + dummy_addr->sa_family = 123; expect_sockaddr_str("(sockaddr family=123)", &dummy, 0); expect_sockaddr_str("(sockaddr family=123)", &dummy, 1); GPR_ASSERT(grpc_sockaddr_to_uri(&dummy) == NULL); @@ -237,24 +243,26 @@ static void test_sockaddr_to_string(void) { } static void test_sockaddr_set_get_port(void) { - struct sockaddr_in input4; - struct sockaddr_in6 input6; - struct sockaddr dummy; + grpc_resolved_address input4; + grpc_resolved_address input6; + grpc_resolved_address dummy; + struct sockaddr *dummy_addr; gpr_log(GPR_DEBUG, "test_sockaddr_set_get_port"); input4 = make_addr4(kIPv4, sizeof(kIPv4)); - GPR_ASSERT(grpc_sockaddr_get_port((struct sockaddr *)&input4) == 12345); - GPR_ASSERT(grpc_sockaddr_set_port((struct sockaddr *)&input4, 54321)); - GPR_ASSERT(grpc_sockaddr_get_port((struct sockaddr *)&input4) == 54321); + GPR_ASSERT(grpc_sockaddr_get_port(&input4) == 12345); + GPR_ASSERT(grpc_sockaddr_set_port(&input4, 54321)); + GPR_ASSERT(grpc_sockaddr_get_port(&input4) == 54321); input6 = make_addr6(kIPv6, sizeof(kIPv6)); - GPR_ASSERT(grpc_sockaddr_get_port((struct sockaddr *)&input6) == 12345); - GPR_ASSERT(grpc_sockaddr_set_port((struct sockaddr *)&input6, 54321)); - GPR_ASSERT(grpc_sockaddr_get_port((struct sockaddr *)&input6) == 54321); + GPR_ASSERT(grpc_sockaddr_get_port(&input6) == 12345); + GPR_ASSERT(grpc_sockaddr_set_port(&input6, 54321)); + GPR_ASSERT(grpc_sockaddr_get_port(&input6) == 54321); memset(&dummy, 0, sizeof(dummy)); - dummy.sa_family = 123; + dummy_addr = (struct sockaddr *)dummy.addr; + dummy_addr->sa_family = 123; GPR_ASSERT(grpc_sockaddr_get_port(&dummy) == 0); GPR_ASSERT(grpc_sockaddr_set_port(&dummy, 1234) == 0); } diff --git a/test/core/iomgr/socket_utils_test.c b/test/core/iomgr/socket_utils_test.c index 297531c44d..67bc914c15 100644 --- a/test/core/iomgr/socket_utils_test.c +++ b/test/core/iomgr/socket_utils_test.c @@ -31,7 +31,11 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "src/core/lib/iomgr/socket_utils_posix.h" #include <errno.h> @@ -68,3 +72,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c index d0c1047423..6c6962ed7a 100644 --- a/test/core/iomgr/tcp_client_posix_test.c +++ b/test/core/iomgr/tcp_client_posix_test.c @@ -85,8 +85,8 @@ static void must_fail(grpc_exec_ctx *exec_ctx, void *arg, grpc_error *error) { } void test_succeeds(void) { - struct sockaddr_in addr; - socklen_t addr_len = sizeof(addr); + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; int svr_fd; int r; int connections_complete_before; @@ -95,13 +95,15 @@ void test_succeeds(void) { gpr_log(GPR_DEBUG, "test_succeeds"); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; /* create a dummy server */ svr_fd = socket(AF_INET, SOCK_STREAM, 0); GPR_ASSERT(svr_fd >= 0); - GPR_ASSERT(0 == bind(svr_fd, (struct sockaddr *)&addr, addr_len)); + GPR_ASSERT( + 0 == bind(svr_fd, (struct sockaddr *)addr, (socklen_t)resolved_addr.len)); GPR_ASSERT(0 == listen(svr_fd, 1)); gpr_mu_lock(g_mu); @@ -109,16 +111,17 @@ void test_succeeds(void) { gpr_mu_unlock(g_mu); /* connect to it */ - GPR_ASSERT(getsockname(svr_fd, (struct sockaddr *)&addr, &addr_len) == 0); + GPR_ASSERT(getsockname(svr_fd, (struct sockaddr *)addr, + (socklen_t *)&resolved_addr.len) == 0); grpc_closure_init(&done, must_succeed, NULL); grpc_tcp_client_connect(&exec_ctx, &done, &g_connecting, g_pollset_set, - (struct sockaddr *)&addr, addr_len, - gpr_inf_future(GPR_CLOCK_REALTIME)); + &resolved_addr, gpr_inf_future(GPR_CLOCK_REALTIME)); /* await the connection */ do { - addr_len = sizeof(addr); - r = accept(svr_fd, (struct sockaddr *)&addr, &addr_len); + resolved_addr.len = sizeof(addr); + r = accept(svr_fd, (struct sockaddr *)addr, + (socklen_t *)&resolved_addr.len); } while (r == -1 && errno == EINTR); GPR_ASSERT(r >= 0); close(r); @@ -143,16 +146,17 @@ void test_succeeds(void) { } void test_fails(void) { - struct sockaddr_in addr; - socklen_t addr_len = sizeof(addr); + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; int connections_complete_before; grpc_closure done; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; gpr_log(GPR_DEBUG, "test_fails"); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; gpr_mu_lock(g_mu); connections_complete_before = g_connections_complete; @@ -161,8 +165,7 @@ void test_fails(void) { /* connect to a broken address */ grpc_closure_init(&done, must_fail, NULL); grpc_tcp_client_connect(&exec_ctx, &done, &g_connecting, g_pollset_set, - (struct sockaddr *)&addr, addr_len, - gpr_inf_future(GPR_CLOCK_REALTIME)); + &resolved_addr, gpr_inf_future(GPR_CLOCK_REALTIME)); gpr_mu_lock(g_mu); diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c index 42614567ca..d998958744 100644 --- a/test/core/iomgr/tcp_posix_test.c +++ b/test/core/iomgr/tcp_posix_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "src/core/lib/iomgr/tcp_posix.h" #include <errno.h> @@ -544,3 +549,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.c index 5791f562e1..f839911a84 100644 --- a/test/core/iomgr/tcp_server_posix_test.c +++ b/test/core/iomgr/tcp_server_posix_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "src/core/lib/iomgr/tcp_server.h" #include <errno.h> @@ -46,6 +51,7 @@ #include <grpc/support/time.h> #include "src/core/lib/iomgr/iomgr.h" +#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include "test/core/util/port.h" #include "test/core/util/test_config.h" @@ -149,16 +155,18 @@ static void test_no_op_with_start(void) { static void test_no_op_with_port(void) { grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_in addr; + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; grpc_tcp_server *s; GPR_ASSERT(GRPC_ERROR_NONE == grpc_tcp_server_create(NULL, NULL, &s)); LOG_TEST("test_no_op_with_port"); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; int port; - GPR_ASSERT(grpc_tcp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr), - &port) == GRPC_ERROR_NONE && + GPR_ASSERT(grpc_tcp_server_add_port(s, &resolved_addr, &port) == + GRPC_ERROR_NONE && port > 0); grpc_tcp_server_unref(&exec_ctx, s); @@ -167,16 +175,18 @@ static void test_no_op_with_port(void) { static void test_no_op_with_port_and_start(void) { grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_in addr; + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; grpc_tcp_server *s; GPR_ASSERT(GRPC_ERROR_NONE == grpc_tcp_server_create(NULL, NULL, &s)); LOG_TEST("test_no_op_with_port_and_start"); int port; - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - GPR_ASSERT(grpc_tcp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr), - &port) == GRPC_ERROR_NONE && + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; + GPR_ASSERT(grpc_tcp_server_add_port(s, &resolved_addr, &port) == + GRPC_ERROR_NONE && port > 0); grpc_tcp_server_start(&exec_ctx, s, NULL, 0, on_connect, NULL); @@ -221,9 +231,11 @@ static void tcp_connect(grpc_exec_ctx *exec_ctx, const struct sockaddr *remote, the same port should be tested. */ static void test_connect(unsigned n) { grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_storage addr; - struct sockaddr_storage addr1; - socklen_t addr_len = sizeof(addr); + grpc_resolved_address resolved_addr; + grpc_resolved_address resolved_addr1; + struct sockaddr_storage *addr = (struct sockaddr_storage *)resolved_addr.addr; + struct sockaddr_storage *addr1 = + (struct sockaddr_storage *)resolved_addr1.addr; unsigned svr_fd_count; int svr_port; unsigned svr1_fd_count; @@ -235,19 +247,20 @@ static void test_connect(unsigned n) { server_weak_ref_init(&weak_ref); LOG_TEST("test_connect"); gpr_log(GPR_INFO, "clients=%d", n); - memset(&addr, 0, sizeof(addr)); - memset(&addr1, 0, sizeof(addr1)); - addr.ss_family = addr1.ss_family = AF_INET; + memset(&resolved_addr, 0, sizeof(resolved_addr)); + memset(&resolved_addr1, 0, sizeof(resolved_addr1)); + resolved_addr.len = sizeof(struct sockaddr_storage); + resolved_addr1.len = sizeof(struct sockaddr_storage); + addr->ss_family = addr1->ss_family = AF_INET; GPR_ASSERT(GRPC_ERROR_NONE == - grpc_tcp_server_add_port(s, (struct sockaddr *)&addr, addr_len, - &svr_port)); + grpc_tcp_server_add_port(s, &resolved_addr, &svr_port)); GPR_ASSERT(svr_port > 0); /* Cannot use wildcard (port==0), because add_port() will try to reuse the same port as a previous add_port(). */ svr1_port = grpc_pick_unused_port_or_die(); - grpc_sockaddr_set_port((struct sockaddr *)&addr1, svr1_port); - GPR_ASSERT(grpc_tcp_server_add_port(s, (struct sockaddr *)&addr1, addr_len, - &svr_port) == GRPC_ERROR_NONE && + grpc_sockaddr_set_port(&resolved_addr1, svr1_port); + GPR_ASSERT(grpc_tcp_server_add_port(s, &resolved_addr1, &svr_port) == + GRPC_ERROR_NONE && svr_port == svr1_port); /* Bad port_index. */ @@ -268,16 +281,18 @@ static void test_connect(unsigned n) { int fd = grpc_tcp_server_port_fd(s, 0, i); GPR_ASSERT(fd >= 0); if (i == 0) { - GPR_ASSERT(getsockname(fd, (struct sockaddr *)&addr, &addr_len) == 0); - GPR_ASSERT(addr_len <= sizeof(addr)); + GPR_ASSERT(getsockname(fd, (struct sockaddr *)addr, + (socklen_t *)&resolved_addr.len) == 0); + GPR_ASSERT(resolved_addr.len <= sizeof(*addr)); } } for (i = 0; i < svr1_fd_count; ++i) { int fd = grpc_tcp_server_port_fd(s, 1, i); GPR_ASSERT(fd >= 0); if (i == 0) { - GPR_ASSERT(getsockname(fd, (struct sockaddr *)&addr1, &addr_len) == 0); - GPR_ASSERT(addr_len <= sizeof(addr1)); + GPR_ASSERT(getsockname(fd, (struct sockaddr *)addr1, + (socklen_t *)&resolved_addr1.len) == 0); + GPR_ASSERT(resolved_addr1.len <= sizeof(*addr1)); } } @@ -287,7 +302,8 @@ static void test_connect(unsigned n) { on_connect_result result; int svr_fd; on_connect_result_init(&result); - tcp_connect(&exec_ctx, (struct sockaddr *)&addr, addr_len, &result); + tcp_connect(&exec_ctx, (struct sockaddr *)addr, + (socklen_t)resolved_addr.len, &result); GPR_ASSERT(result.server_fd >= 0); svr_fd = result.server_fd; GPR_ASSERT(grpc_tcp_server_port_fd(s, result.port_index, result.fd_index) == @@ -301,7 +317,8 @@ static void test_connect(unsigned n) { grpc_tcp_server_unref(&exec_ctx, result.server); on_connect_result_init(&result); - tcp_connect(&exec_ctx, (struct sockaddr *)&addr1, addr_len, &result); + tcp_connect(&exec_ctx, (struct sockaddr *)addr1, + (socklen_t)resolved_addr1.len, &result); GPR_ASSERT(result.server_fd >= 0); GPR_ASSERT(result.server_fd != svr_fd); GPR_ASSERT(grpc_tcp_server_port_fd(s, result.port_index, result.fd_index) == @@ -350,3 +367,9 @@ int main(int argc, char **argv) { gpr_free(g_pollset); return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/iomgr/timer_heap_test.c b/test/core/iomgr/timer_heap_test.c index d1cb0047f2..410d972313 100644 --- a/test/core/iomgr/timer_heap_test.c +++ b/test/core/iomgr/timer_heap_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test only works with the generic timer implementation +#ifdef GRPC_TIMER_USE_GENERIC + #include "src/core/lib/iomgr/timer_heap.h" #include <stdlib.h> @@ -315,3 +320,9 @@ int main(int argc, char **argv) { return 0; } + +#else /* GRPC_TIMER_USE_GENERIC */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_TIMER_USE_GENERIC */ diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c index 71d2fb5bd4..9bea229466 100644 --- a/test/core/iomgr/udp_server_test.c +++ b/test/core/iomgr/udp_server_test.c @@ -31,6 +31,11 @@ * */ +#include "src/core/lib/iomgr/port.h" + +// This test won't work except with posix sockets enabled +#ifdef GRPC_POSIX_SOCKET + #include "src/core/lib/iomgr/udp_server.h" #include <netinet/in.h> @@ -98,14 +103,16 @@ static void test_no_op_with_start(void) { static void test_no_op_with_port(void) { g_number_of_orphan_calls = 0; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_in addr; + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; grpc_udp_server *s = grpc_udp_server_create(); LOG_TEST("test_no_op_with_port"); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr), - on_read, on_fd_orphaned)); + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; + GPR_ASSERT( + grpc_udp_server_add_port(s, &resolved_addr, on_read, on_fd_orphaned)); grpc_udp_server_destroy(&exec_ctx, s, NULL); grpc_exec_ctx_finish(&exec_ctx); @@ -117,14 +124,16 @@ static void test_no_op_with_port(void) { static void test_no_op_with_port_and_start(void) { g_number_of_orphan_calls = 0; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_in addr; + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; grpc_udp_server *s = grpc_udp_server_create(); LOG_TEST("test_no_op_with_port_and_start"); - memset(&addr, 0, sizeof(addr)); - addr.sin_family = AF_INET; - GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, sizeof(addr), - on_read, on_fd_orphaned)); + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_in); + addr->sin_family = AF_INET; + GPR_ASSERT( + grpc_udp_server_add_port(s, &resolved_addr, on_read, on_fd_orphaned)); grpc_udp_server_start(&exec_ctx, s, NULL, 0, NULL); @@ -138,8 +147,8 @@ static void test_no_op_with_port_and_start(void) { static void test_receive(int number_of_clients) { grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_storage addr; - socklen_t addr_len = sizeof(addr); + grpc_resolved_address resolved_addr; + struct sockaddr_storage *addr = (struct sockaddr_storage *)resolved_addr.addr; int clifd, svrfd; grpc_udp_server *s = grpc_udp_server_create(); int i; @@ -152,15 +161,17 @@ static void test_receive(int number_of_clients) { g_number_of_bytes_read = 0; g_number_of_orphan_calls = 0; - memset(&addr, 0, sizeof(addr)); - addr.ss_family = AF_INET; - GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len, - on_read, on_fd_orphaned)); + memset(&resolved_addr, 0, sizeof(resolved_addr)); + resolved_addr.len = sizeof(struct sockaddr_storage); + addr->ss_family = AF_INET; + GPR_ASSERT( + grpc_udp_server_add_port(s, &resolved_addr, on_read, on_fd_orphaned)); svrfd = grpc_udp_server_get_fd(s, 0); GPR_ASSERT(svrfd >= 0); - GPR_ASSERT(getsockname(svrfd, (struct sockaddr *)&addr, &addr_len) == 0); - GPR_ASSERT(addr_len <= sizeof(addr)); + GPR_ASSERT(getsockname(svrfd, (struct sockaddr *)addr, + (socklen_t *)&resolved_addr.len) == 0); + GPR_ASSERT(resolved_addr.len <= sizeof(struct sockaddr_storage)); pollsets[0] = g_pollset; grpc_udp_server_start(&exec_ctx, s, pollsets, 1, NULL); @@ -172,9 +183,10 @@ static void test_receive(int number_of_clients) { number_of_reads_before = g_number_of_reads; /* Create a socket, send a packet to the UDP server. */ - clifd = socket(addr.ss_family, SOCK_DGRAM, 0); + clifd = socket(addr->ss_family, SOCK_DGRAM, 0); GPR_ASSERT(clifd >= 0); - GPR_ASSERT(connect(clifd, (struct sockaddr *)&addr, addr_len) == 0); + GPR_ASSERT(connect(clifd, (struct sockaddr *)addr, + (socklen_t)resolved_addr.len) == 0); GPR_ASSERT(5 == write(clifd, "hello", 5)); while (g_number_of_reads == number_of_reads_before && gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0) { @@ -229,3 +241,9 @@ int main(int argc, char **argv) { grpc_iomgr_shutdown(); return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/iomgr/wakeup_fd_cv_test.c b/test/core/iomgr/wakeup_fd_cv_test.c index 952985ed7e..82452d2157 100644 --- a/test/core/iomgr/wakeup_fd_cv_test.c +++ b/test/core/iomgr/wakeup_fd_cv_test.c @@ -31,6 +31,10 @@ * */ +#include "src/core/lib/iomgr/port.h" + +#ifdef GRPC_POSIX_SOCKET + #include <pthread.h> #include <grpc/support/log.h> @@ -238,3 +242,9 @@ int main(int argc, char **argv) { grpc_iomgr_platform_shutdown(); return 0; } + +#else /* GRPC_POSIX_SOCKET */ + +int main(int argc, char **argv) { return 1; } + +#endif /* GRPC_POSIX_SOCKET */ diff --git a/test/core/security/credentials_test.c b/test/core/security/credentials_test.c index 2f8ffe4da6..b74baa33f1 100644 --- a/test/core/security/credentials_test.c +++ b/test/core/security/credentials_test.c @@ -1125,28 +1125,19 @@ static void test_metadata_plugin_failure(void) { } static void test_get_well_known_google_credentials_file_path(void) { -#ifdef GPR_POSIX_FILE char *path; - char *old_home = gpr_getenv("HOME"); - gpr_setenv("HOME", "/tmp"); + char *home = gpr_getenv("HOME"); path = grpc_get_well_known_google_credentials_file_path(); GPR_ASSERT(path != NULL); - GPR_ASSERT(0 == strcmp("/tmp/.config/" GRPC_GOOGLE_CLOUD_SDK_CONFIG_DIRECTORY - "/" GRPC_GOOGLE_WELL_KNOWN_CREDENTIALS_FILE, - path)); gpr_free(path); #if defined(GPR_POSIX_ENV) || defined(GPR_LINUX_ENV) unsetenv("HOME"); path = grpc_get_well_known_google_credentials_file_path(); GPR_ASSERT(path == NULL); -#endif /* GPR_POSIX_ENV || GPR_LINUX_ENV */ - gpr_setenv("HOME", old_home); - gpr_free(old_home); -#else /* GPR_POSIX_FILE */ - char *path = grpc_get_well_known_google_credentials_file_path(); - GPR_ASSERT(path != NULL); + gpr_setenv("HOME", home); gpr_free(path); -#endif +#endif /* GPR_POSIX_ENV || GPR_LINUX_ENV */ + gpr_free(home); } static void test_channel_creds_duplicate_without_call_creds(void) { diff --git a/test/core/surface/concurrent_connectivity_test.c b/test/core/surface/concurrent_connectivity_test.c index f7567f350d..f9f723baaa 100644 --- a/test/core/surface/concurrent_connectivity_test.c +++ b/test/core/surface/concurrent_connectivity_test.c @@ -31,6 +31,12 @@ * */ +/* With the addition of a libuv endpoint, sockaddr.h now includes uv.h when + using that endpoint. Because of various transitive includes in uv.h, + including windows.h on Windows, uv.h must be included before other system + headers. Therefore, sockaddr.h must always be included first */ +#include "src/core/lib/iomgr/sockaddr.h" + #include <memory.h> #include <stdio.h> @@ -42,6 +48,7 @@ #include "src/core/lib/iomgr/exec_ctx.h" #include "src/core/lib/iomgr/iomgr.h" +#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/sockaddr_utils.h" #include "src/core/lib/iomgr/tcp_server.h" @@ -109,16 +116,15 @@ void bad_server_thread(void *vargs) { struct server_thread_args *args = (struct server_thread_args *)vargs; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - struct sockaddr_storage addr; - socklen_t addr_len = sizeof(addr); + grpc_resolved_address resolved_addr; + struct sockaddr_storage *addr = (struct sockaddr_storage *)resolved_addr.addr; int port; grpc_tcp_server *s; grpc_error *error = grpc_tcp_server_create(NULL, NULL, &s); GPR_ASSERT(error == GRPC_ERROR_NONE); - memset(&addr, 0, sizeof(addr)); - addr.ss_family = AF_INET; - error = - grpc_tcp_server_add_port(s, (struct sockaddr *)&addr, addr_len, &port); + memset(&resolved_addr, 0, sizeof(resolved_addr)); + addr->ss_family = AF_INET; + error = grpc_tcp_server_add_port(s, &resolved_addr, &port); GPR_ASSERT(GRPC_LOG_IF_ERROR("grpc_tcp_server_add_port", error)); GPR_ASSERT(port > 0); gpr_asprintf(&args->addr, "localhost:%d", port); diff --git a/test/core/transport/chttp2/alpn_test.c b/test/core/transport/chttp2/alpn_test.c index 48064ec9b3..cde891cd5d 100644 --- a/test/core/transport/chttp2/alpn_test.c +++ b/test/core/transport/chttp2/alpn_test.c @@ -38,6 +38,7 @@ static void test_alpn_success(void) { GPR_ASSERT(grpc_chttp2_is_alpn_version_supported("h2", 2)); + GPR_ASSERT(grpc_chttp2_is_alpn_version_supported("grpc-exp", 8)); } static void test_alpn_failure(void) { @@ -45,9 +46,27 @@ static void test_alpn_failure(void) { GPR_ASSERT(!grpc_chttp2_is_alpn_version_supported("h1-15", 5)); } +// First index in ALPN supported version list of a given protocol. Returns a +// value one beyond the last valid element index if not found. +static size_t alpn_version_index(const char *version, size_t size) { + size_t i; + for (i = 0; i < grpc_chttp2_num_alpn_versions(); ++i) { + if (!strncmp(version, grpc_chttp2_get_alpn_version_index(i), size)) { + return i; + } + } + return i; +} + +static void test_alpn_grpc_before_h2(void) { + // grpc-exp is preferred over h2. + GPR_ASSERT(alpn_version_index("grpc-exp", 8) < alpn_version_index("h2", 2)); +} + int main(int argc, char **argv) { grpc_test_init(argc, argv); test_alpn_success(); test_alpn_failure(); + test_alpn_grpc_before_h2(); return 0; } diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c index 265e0acee1..60537b4946 100644 --- a/test/core/util/port_posix.c +++ b/test/core/util/port_posix.c @@ -31,9 +31,9 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" #include "test/core/util/test_config.h" -#if defined(GPR_POSIX_SOCKET) && defined(GRPC_TEST_PICK_PORT) +#if defined(GRPC_POSIX_SOCKET) && defined(GRPC_TEST_PICK_PORT) #include "test/core/util/port.h" @@ -237,4 +237,4 @@ int grpc_pick_unused_port_or_die(void) { void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); } -#endif /* GPR_POSIX_SOCKET && GRPC_TEST_PICK_PORT */ +#endif /* GRPC_POSIX_SOCKET && GRPC_TEST_PICK_PORT */ diff --git a/test/core/util/port_uv.c b/test/core/util/port_uv.c new file mode 100644 index 0000000000..0c9c0d87d6 --- /dev/null +++ b/test/core/util/port_uv.c @@ -0,0 +1,117 @@ +/* + * + * Copyright 2015, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "src/core/lib/iomgr/port.h" +#include "test/core/util/test_config.h" +#if defined(GRPC_UV) && defined(GRPC_TEST_PICK_PORT) + +#include <grpc/support/alloc.h> +#include <grpc/support/log.h> + +#include "src/core/lib/support/env.h" +#include "test/core/util/port.h" +#include "test/core/util/port_server_client.h" + +// Almost everything in this file has been copied from port_posix.c + +static int *chosen_ports = NULL; +static size_t num_chosen_ports = 0; + +static int free_chosen_port(int port) { + size_t i; + int found = 0; + size_t found_at = 0; + char *env = gpr_getenv("GRPC_TEST_PORT_SERVER"); + /* Find the port and erase it from the list, then tell the server it can be + freed. */ + for (i = 0; i < num_chosen_ports; i++) { + if (chosen_ports[i] == port) { + GPR_ASSERT(found == 0); + found = 1; + found_at = i; + } + } + if (found) { + chosen_ports[found_at] = chosen_ports[num_chosen_ports - 1]; + num_chosen_ports--; + if (env) { + grpc_free_port_using_server(env, port); + } + } + gpr_free(env); + return found; +} + +static void free_chosen_ports(void) { + char *env = gpr_getenv("GRPC_TEST_PORT_SERVER"); + if (env != NULL) { + size_t i; + for (i = 0; i < num_chosen_ports; i++) { + grpc_free_port_using_server(env, chosen_ports[i]); + } + gpr_free(env); + } + + gpr_free(chosen_ports); +} + +static void chose_port(int port) { + if (chosen_ports == NULL) { + atexit(free_chosen_ports); + } + num_chosen_ports++; + chosen_ports = gpr_realloc(chosen_ports, sizeof(int) * num_chosen_ports); + chosen_ports[num_chosen_ports - 1] = port; +} + +int grpc_pick_unused_port(void) { + // Currently only works with the port server + char *env = gpr_getenv("GRPC_TEST_PORT_SERVER"); + GPR_ASSERT(env); + int port = grpc_pick_port_using_server(env); + gpr_free(env); + if (port != 0) { + chose_port(port); + } + return port; +} + +int grpc_pick_unused_port_or_die(void) { + int port = grpc_pick_unused_port(); + GPR_ASSERT(port > 0); + return port; +} + +void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); } + +#endif /* GRPC_UV && GRPC_TEST_PICK_PORT */ diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c index 9023719675..0c50a46644 100644 --- a/test/core/util/port_windows.c +++ b/test/core/util/port_windows.c @@ -31,9 +31,11 @@ * */ -#include <grpc/support/port_platform.h> +#include "src/core/lib/iomgr/port.h" #include "test/core/util/test_config.h" -#if defined(GPR_WINSOCK_SOCKET) && defined(GRPC_TEST_PICK_PORT) +#if defined(GRPC_WINSOCK_SOCKET) && defined(GRPC_TEST_PICK_PORT) + +#include "src/core/lib/iomgr/sockaddr.h" #include "test/core/util/port.h" @@ -242,4 +244,4 @@ int grpc_pick_unused_port_or_die(void) { void grpc_recycle_unused_port(int port) { GPR_ASSERT(free_chosen_port(port)); } -#endif /* GPR_WINSOCK_SOCKET && GRPC_TEST_PICK_PORT */ +#endif /* GRPC_WINSOCK_SOCKET && GRPC_TEST_PICK_PORT */ diff --git a/test/core/util/test_tcp_server.c b/test/core/util/test_tcp_server.c index 8a0b3932d8..9ac97413d4 100644 --- a/test/core/util/test_tcp_server.c +++ b/test/core/util/test_tcp_server.c @@ -31,6 +31,8 @@ * */ +#include "src/core/lib/iomgr/sockaddr.h" + #include "test/core/util/test_tcp_server.h" #include <grpc/grpc.h> @@ -41,7 +43,7 @@ #include <grpc/support/time.h> #include <string.h> #include "src/core/lib/iomgr/endpoint.h" -#include "src/core/lib/iomgr/sockaddr.h" +#include "src/core/lib/iomgr/resolve_address.h" #include "src/core/lib/iomgr/tcp_server.h" #include "test/core/util/port.h" @@ -64,19 +66,20 @@ void test_tcp_server_init(test_tcp_server *server, } void test_tcp_server_start(test_tcp_server *server, int port) { - struct sockaddr_in addr; + grpc_resolved_address resolved_addr; + struct sockaddr_in *addr = (struct sockaddr_in *)resolved_addr.addr; int port_added; grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; - addr.sin_family = AF_INET; - addr.sin_port = htons((uint16_t)port); - memset(&addr.sin_addr, 0, sizeof(addr.sin_addr)); + addr->sin_family = AF_INET; + addr->sin_port = htons((uint16_t)port); + memset(&addr->sin_addr, 0, sizeof(addr->sin_addr)); grpc_error *error = grpc_tcp_server_create(&server->shutdown_complete, NULL, &server->tcp_server); GPR_ASSERT(error == GRPC_ERROR_NONE); - error = grpc_tcp_server_add_port(server->tcp_server, &addr, sizeof(addr), - &port_added); + error = + grpc_tcp_server_add_port(server->tcp_server, &resolved_addr, &port_added); GPR_ASSERT(error == GRPC_ERROR_NONE); GPR_ASSERT(port_added == port); diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc index a9b7c8f8d3..823f0bd035 100644 --- a/test/cpp/end2end/async_end2end_test.cc +++ b/test/cpp/end2end/async_end2end_test.cc @@ -47,6 +47,7 @@ #include <grpc/support/tls.h> #include <gtest/gtest.h> +#include "src/core/lib/iomgr/port.h" #include "src/proto/grpc/testing/duplicate/echo_duplicate.grpc.pb.h" #include "src/proto/grpc/testing/echo.grpc.pb.h" #include "test/core/util/port.h" @@ -54,7 +55,7 @@ #include "test/cpp/util/string_ref_helper.h" #include "test/cpp/util/test_credentials_provider.h" -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET #include "src/core/lib/iomgr/ev_posix.h" #endif @@ -73,7 +74,7 @@ namespace { void* tag(int i) { return (void*)(intptr_t)i; } int detag(void* p) { return static_cast<int>(reinterpret_cast<intptr_t>(p)); } -#ifdef GPR_POSIX_SOCKET +#ifdef GRPC_POSIX_SOCKET static int maybe_assert_non_blocking_poll(struct pollfd* pfds, nfds_t nfds, int timeout) { if (gpr_tls_get(&g_is_async_end2end_test)) { diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc index b1d3ce92f6..7af0fb997e 100644 --- a/test/cpp/end2end/end2end_test.cc +++ b/test/cpp/end2end/end2end_test.cc @@ -636,7 +636,7 @@ TEST_P(End2endTest, SimpleRpcWithCustomeUserAgentPrefix) { auto iter = trailing_metadata.find("user-agent"); EXPECT_TRUE(iter != trailing_metadata.end()); grpc::string expected_prefix = user_agent_prefix_ + " grpc-c++/"; - EXPECT_TRUE(iter->second.starts_with(expected_prefix)); + EXPECT_TRUE(iter->second.starts_with(expected_prefix)) << iter->second; } TEST_P(End2endTest, MultipleRpcsWithVariedBinaryMetadataValue) { diff --git a/tools/buildgen/plugins/make_fuzzer_tests.py b/tools/buildgen/plugins/make_fuzzer_tests.py index 1d215e9fe0..ba9825acb9 100644 --- a/tools/buildgen/plugins/make_fuzzer_tests.py +++ b/tools/buildgen/plugins/make_fuzzer_tests.py @@ -49,6 +49,7 @@ def mako_plugin(dictionary): tests.append({ 'name': new_target['name'], 'args': [fn], + 'exclude_iomgrs': ['uv'], 'exclude_configs': ['tsan'], 'uses_polling': False, 'platforms': ['linux'], diff --git a/tools/distrib/python/docgen.py b/tools/distrib/python/docgen.py index 15bd8d855f..622317920d 100755 --- a/tools/distrib/python/docgen.py +++ b/tools/distrib/python/docgen.py @@ -67,6 +67,7 @@ environment.update({ 'LDFLAGS': '-L{}'.format(LIBRARY_PATH), 'LD_LIBRARY_PATH': LIBRARY_PATH, 'GRPC_PYTHON_BUILD_WITH_CYTHON': '1', + 'GRPC_PYTHON_ENABLE_DOCUMENTATION_BUILD': '1', }) subprocess_arguments_list = [ diff --git a/tools/dockerfile/test/cxx_jessie_x64/Dockerfile b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile index 67cee19914..1f6641ac42 100644 --- a/tools/dockerfile/test/cxx_jessie_x64/Dockerfile +++ b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile @@ -126,5 +126,8 @@ RUN ln -s /usr/bin/ccache /usr/local/bin/clang++ RUN mkdir /var/local/jenkins +#================ +# libuv +RUN cd /tmp && wget http://dist.libuv.org/dist/v1.9.1/libuv-v1.9.1.tar.gz && tar -xf libuv-v1.9.1.tar.gz && cd libuv-v1.9.1 && sh autogen.sh && ./configure --prefix=/usr && make && make install # Define the default command. CMD ["bash"] diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index 89d8e708e6..8db1a79be0 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -824,27 +824,34 @@ src/core/lib/iomgr/polling_entity.h \ src/core/lib/iomgr/pollset.h \ src/core/lib/iomgr/pollset_set.h \ src/core/lib/iomgr/pollset_set_windows.h \ +src/core/lib/iomgr/pollset_uv.h \ src/core/lib/iomgr/pollset_windows.h \ +src/core/lib/iomgr/port.h \ src/core/lib/iomgr/resolve_address.h \ src/core/lib/iomgr/sockaddr.h \ src/core/lib/iomgr/sockaddr_posix.h \ src/core/lib/iomgr/sockaddr_utils.h \ src/core/lib/iomgr/sockaddr_windows.h \ +src/core/lib/iomgr/socket_utils.h \ src/core/lib/iomgr/socket_utils_posix.h \ src/core/lib/iomgr/socket_windows.h \ src/core/lib/iomgr/tcp_client.h \ src/core/lib/iomgr/tcp_posix.h \ src/core/lib/iomgr/tcp_server.h \ +src/core/lib/iomgr/tcp_uv.h \ src/core/lib/iomgr/tcp_windows.h \ src/core/lib/iomgr/time_averaged_stats.h \ src/core/lib/iomgr/timer.h \ +src/core/lib/iomgr/timer_generic.h \ src/core/lib/iomgr/timer_heap.h \ +src/core/lib/iomgr/timer_uv.h \ src/core/lib/iomgr/udp_server.h \ src/core/lib/iomgr/unix_sockets_posix.h \ src/core/lib/iomgr/wakeup_fd_cv.h \ src/core/lib/iomgr/wakeup_fd_pipe.h \ src/core/lib/iomgr/wakeup_fd_posix.h \ src/core/lib/iomgr/workqueue.h \ +src/core/lib/iomgr/workqueue_uv.h \ src/core/lib/iomgr/workqueue_windows.h \ src/core/lib/json/json.h \ src/core/lib/json/json_common.h \ @@ -866,6 +873,7 @@ src/core/lib/transport/connectivity_state.h \ src/core/lib/transport/mdstr_hash_table.h \ src/core/lib/transport/metadata.h \ src/core/lib/transport/metadata_batch.h \ +src/core/lib/transport/method_config.h \ src/core/lib/transport/static_metadata.h \ src/core/lib/transport/timeout_encoding.h \ src/core/lib/transport/transport.h \ @@ -923,12 +931,10 @@ src/core/ext/client_channel/initial_connect_string.h \ src/core/ext/client_channel/lb_policy.h \ src/core/ext/client_channel/lb_policy_factory.h \ src/core/ext/client_channel/lb_policy_registry.h \ -src/core/ext/client_channel/method_config.h \ src/core/ext/client_channel/parse_address.h \ src/core/ext/client_channel/resolver.h \ src/core/ext/client_channel/resolver_factory.h \ src/core/ext/client_channel/resolver_registry.h \ -src/core/ext/client_channel/resolver_result.h \ src/core/ext/client_channel/subchannel.h \ src/core/ext/client_channel/subchannel_index.h \ src/core/ext/client_channel/uri_parser.h \ @@ -973,6 +979,7 @@ src/core/lib/iomgr/closure.c \ src/core/lib/iomgr/combiner.c \ src/core/lib/iomgr/endpoint.c \ src/core/lib/iomgr/endpoint_pair_posix.c \ +src/core/lib/iomgr/endpoint_pair_uv.c \ src/core/lib/iomgr/endpoint_pair_windows.c \ src/core/lib/iomgr/error.c \ src/core/lib/iomgr/ev_epoll_linux.c \ @@ -984,28 +991,38 @@ src/core/lib/iomgr/executor.c \ src/core/lib/iomgr/iocp_windows.c \ src/core/lib/iomgr/iomgr.c \ src/core/lib/iomgr/iomgr_posix.c \ +src/core/lib/iomgr/iomgr_uv.c \ src/core/lib/iomgr/iomgr_windows.c \ src/core/lib/iomgr/load_file.c \ src/core/lib/iomgr/network_status_tracker.c \ src/core/lib/iomgr/polling_entity.c \ +src/core/lib/iomgr/pollset_set_uv.c \ src/core/lib/iomgr/pollset_set_windows.c \ +src/core/lib/iomgr/pollset_uv.c \ src/core/lib/iomgr/pollset_windows.c \ src/core/lib/iomgr/resolve_address_posix.c \ +src/core/lib/iomgr/resolve_address_uv.c \ src/core/lib/iomgr/resolve_address_windows.c \ src/core/lib/iomgr/sockaddr_utils.c \ src/core/lib/iomgr/socket_utils_common_posix.c \ src/core/lib/iomgr/socket_utils_linux.c \ src/core/lib/iomgr/socket_utils_posix.c \ +src/core/lib/iomgr/socket_utils_uv.c \ +src/core/lib/iomgr/socket_utils_windows.c \ src/core/lib/iomgr/socket_windows.c \ src/core/lib/iomgr/tcp_client_posix.c \ +src/core/lib/iomgr/tcp_client_uv.c \ src/core/lib/iomgr/tcp_client_windows.c \ src/core/lib/iomgr/tcp_posix.c \ src/core/lib/iomgr/tcp_server_posix.c \ +src/core/lib/iomgr/tcp_server_uv.c \ src/core/lib/iomgr/tcp_server_windows.c \ +src/core/lib/iomgr/tcp_uv.c \ src/core/lib/iomgr/tcp_windows.c \ src/core/lib/iomgr/time_averaged_stats.c \ -src/core/lib/iomgr/timer.c \ +src/core/lib/iomgr/timer_generic.c \ src/core/lib/iomgr/timer_heap.c \ +src/core/lib/iomgr/timer_uv.c \ src/core/lib/iomgr/udp_server.c \ src/core/lib/iomgr/unix_sockets_posix.c \ src/core/lib/iomgr/unix_sockets_posix_noop.c \ @@ -1014,6 +1031,7 @@ src/core/lib/iomgr/wakeup_fd_eventfd.c \ src/core/lib/iomgr/wakeup_fd_nospecial.c \ src/core/lib/iomgr/wakeup_fd_pipe.c \ src/core/lib/iomgr/wakeup_fd_posix.c \ +src/core/lib/iomgr/workqueue_uv.c \ src/core/lib/iomgr/workqueue_windows.c \ src/core/lib/json/json.c \ src/core/lib/json/json_reader.c \ @@ -1042,6 +1060,7 @@ src/core/lib/transport/connectivity_state.c \ src/core/lib/transport/mdstr_hash_table.c \ src/core/lib/transport/metadata.c \ src/core/lib/transport/metadata_batch.c \ +src/core/lib/transport/method_config.c \ src/core/lib/transport/static_metadata.c \ src/core/lib/transport/timeout_encoding.c \ src/core/lib/transport/transport.c \ @@ -1075,8 +1094,7 @@ src/core/lib/security/credentials/composite/composite_credentials.c \ src/core/lib/security/credentials/credentials.c \ src/core/lib/security/credentials/credentials_metadata.c \ src/core/lib/security/credentials/fake/fake_credentials.c \ -src/core/lib/security/credentials/google_default/credentials_posix.c \ -src/core/lib/security/credentials/google_default/credentials_windows.c \ +src/core/lib/security/credentials/google_default/credentials_generic.c \ src/core/lib/security/credentials/google_default/google_default_credentials.c \ src/core/lib/security/credentials/iam/iam_credentials.c \ src/core/lib/security/credentials/jwt/json_token.c \ @@ -1109,12 +1127,10 @@ src/core/ext/client_channel/initial_connect_string.c \ src/core/ext/client_channel/lb_policy.c \ src/core/ext/client_channel/lb_policy_factory.c \ src/core/ext/client_channel/lb_policy_registry.c \ -src/core/ext/client_channel/method_config.c \ src/core/ext/client_channel/parse_address.c \ src/core/ext/client_channel/resolver.c \ src/core/ext/client_channel/resolver_factory.c \ src/core/ext/client_channel/resolver_registry.c \ -src/core/ext/client_channel/resolver_result.c \ src/core/ext/client_channel/subchannel.c \ src/core/ext/client_channel/subchannel_index.c \ src/core/ext/client_channel/uri_parser.c \ diff --git a/tools/run_tests/build_python.sh b/tools/run_tests/build_python.sh index b786c479f3..54e2fe5347 100755 --- a/tools/run_tests/build_python.sh +++ b/tools/run_tests/build_python.sh @@ -39,6 +39,14 @@ cd $(dirname $0)/../.. PLATFORM=`uname -s` +function is_msys() { + if [ "${PLATFORM/MSYS}" != "$PLATFORM" ]; then + echo true + else + exit 1 + fi +} + function is_mingw() { if [ "${PLATFORM/MINGW}" != "$PLATFORM" ]; then echo true @@ -108,6 +116,12 @@ VENV=${2:-$(venv $PYTHON)} VENV_RELATIVE_PYTHON=${3:-$(venv_relative_python)} TOOLCHAIN=${4:-$(toolchain)} +if [ $(is_msys) ]; then + echo "MSYS doesn't directly provide the right compiler(s);" + echo "switch to a MinGW shell." + exit 1 +fi + ROOT=`pwd` export CFLAGS="-I$ROOT/include -std=gnu99 -fno-wrapv $CFLAGS" export GRPC_PYTHON_BUILD_WITH_CYTHON=1 diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py index e1c1bc65b6..4a4ce4537d 100644 --- a/tools/run_tests/performance/scenario_config.py +++ b/tools/run_tests/performance/scenario_config.py @@ -229,6 +229,15 @@ class CXXLanguage: secure=secure, categories=smoketest_categories + [SCALABLE]) + yield _ping_pong_scenario( + 'cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_%s' % secstr, + rpc_type='STREAMING', + client_type='ASYNC_CLIENT', + server_type='SYNC_SERVER', + unconstrained_client='async', + secure=secure, + categories=smoketest_categories+[SCALABLE]) + for rpc_type in ['unary', 'streaming']: for synchronicity in ['sync', 'async']: yield _ping_pong_scenario( @@ -348,7 +357,8 @@ class NodeLanguage: self.safename = str(self) def worker_cmdline(self): - return ['tools/run_tests/performance/run_worker_node.sh'] + return ['tools/run_tests/performance/run_worker_node.sh', + '--benchmark_impl=grpc'] def worker_port_offset(self): return 200 @@ -371,6 +381,11 @@ class NodeLanguage: categories=[SCALABLE, SMOKETEST]) yield _ping_pong_scenario( + 'cpp_to_node_unary_ping_pong', rpc_type='UNARY', + client_type='ASYNC_CLIENT', server_type='async_server', + client_language='c++') + + yield _ping_pong_scenario( 'node_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY', client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', unconstrained_client='async', @@ -646,11 +661,69 @@ class GoLanguage: def __str__(self): return 'go' +class NodeExpressLanguage: + + def __init__(self): + pass + self.safename = str(self) + + def worker_cmdline(self): + return ['tools/run_tests/performance/run_worker_node.sh', + '--benchmark_impl=express'] + + def worker_port_offset(self): + return 700 + + def scenarios(self): + # TODO(jtattermusch): make this scenario work + #yield _ping_pong_scenario( + # 'node_generic_async_streaming_ping_pong', rpc_type='STREAMING', + # client_type='ASYNC_CLIENT', server_type='ASYNC_GENERIC_SERVER', + # use_generic_payload=True) + + # TODO(jtattermusch): make this scenario work + #yield _ping_pong_scenario( + # 'node_protobuf_async_streaming_ping_pong', rpc_type='STREAMING', + # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER') + + yield _ping_pong_scenario( + 'node_protobuf_unary_ping_pong', rpc_type='UNARY', + client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', + categories=[SCALABLE, SMOKETEST]) + + yield _ping_pong_scenario( + 'node_protobuf_async_unary_qps_unconstrained', rpc_type='UNARY', + client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', + unconstrained_client='async', + categories=[SCALABLE, SMOKETEST]) + + # TODO(jtattermusch): make this scenario work + #yield _ping_pong_scenario( + # 'node_protobuf_async_streaming_qps_unconstrained', rpc_type='STREAMING', + # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', + # unconstrained_client='async') + + # TODO(jtattermusch): make this scenario work + #yield _ping_pong_scenario( + # 'node_to_cpp_protobuf_async_unary_ping_pong', rpc_type='UNARY', + # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', + # server_language='c++', server_core_limit=1, async_server_threads=1) + + # TODO(jtattermusch): make this scenario work + #yield _ping_pong_scenario( + # 'node_to_cpp_protobuf_async_streaming_ping_pong', rpc_type='STREAMING', + # client_type='ASYNC_CLIENT', server_type='ASYNC_SERVER', + # server_language='c++', server_core_limit=1, async_server_threads=1) + + def __str__(self): + return 'node_express' + LANGUAGES = { 'c++' : CXXLanguage(), 'csharp' : CSharpLanguage(), 'node' : NodeLanguage(), + 'node_express': NodeExpressLanguage(), 'ruby' : RubyLanguage(), 'java' : JavaLanguage(), 'python' : PythonLanguage(), diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py index e9ee5f538d..2886870d38 100755 --- a/tools/run_tests/run_tests.py +++ b/tools/run_tests/run_tests.py @@ -83,7 +83,7 @@ _DEFAULT_TIMEOUT_SECONDS = 5 * 60 # SimpleConfig: just compile with CONFIG=config, and run the binary to test class Config(object): - def __init__(self, config, environ=None, timeout_multiplier=1, tool_prefix=[]): + def __init__(self, config, environ=None, timeout_multiplier=1, tool_prefix=[], iomgr_platform='native'): if environ is None: environ = {} self.build_config = config @@ -91,6 +91,7 @@ class Config(object): self.environ['CONFIG'] = config self.tool_prefix = tool_prefix self.timeout_multiplier = timeout_multiplier + self.iomgr_platform = iomgr_platform def job_spec(self, cmdline, timeout_seconds=_DEFAULT_TIMEOUT_SECONDS, shortname=None, environ={}, cpu_cost=1.0, flaky=False): @@ -202,6 +203,18 @@ class CLanguage(object): else: self._docker_distro, self._make_options = self._compiler_options(self.args.use_docker, self.args.compiler) + if args.iomgr_platform == "uv": + cflags = '-DGRPC_UV ' + try: + cflags += subprocess.check_output(['pkg-config', '--cflags', 'libuv']).strip() + ' ' + except (subprocess.CalledProcessError, OSError): + pass + try: + ldflags = subprocess.check_output(['pkg-config', '--libs', 'libuv']).strip() + ' ' + except (subprocess.CalledProcessError, OSError): + ldflags = '-luv ' + self._make_options += ['EXTRA_CPPFLAGS={}'.format(cflags), + 'EXTRA_LDLIBS={}'.format(ldflags)] def test_specs(self): out = [] @@ -210,6 +223,8 @@ class CLanguage(object): polling_strategies = (_POLLING_STRATEGIES.get(self.platform, ['all']) if target.get('uses_polling', True) else ['all']) + if self.args.iomgr_platform == 'uv': + polling_strategies = ['all'] for polling_strategy in polling_strategies: env={'GRPC_DEFAULT_SSL_ROOTS_FILE_PATH': _ROOT + '/src/core/lib/tsi/test_creds/ca.pem', @@ -218,6 +233,8 @@ class CLanguage(object): shortname_ext = '' if polling_strategy=='all' else ' GRPC_POLL_STRATEGY=%s' % polling_strategy if self.config.build_config in target['exclude_configs']: continue + if self.args.iomgr_platform in target.get('exclude_iomgrs', []): + continue if self.platform == 'windows': binary = 'vsprojects/%s%s/%s.exe' % ( 'x64/' if self.args.arch == 'x64' else '', @@ -825,6 +842,53 @@ class Sanity(object): def __str__(self): return 'sanity' +class NodeExpressLanguage(object): + """Dummy Node express test target to enable running express performance + benchmarks""" + + def __init__(self): + self.platform = platform_string() + + def configure(self, config, args): + self.config = config + self.args = args + _check_compiler(self.args.compiler, ['default', 'node0.12', + 'node4', 'node5', 'node6']) + if self.args.compiler == 'default': + self.node_version = '4' + else: + # Take off the word "node" + self.node_version = self.args.compiler[4:] + + def test_specs(self): + return [] + + def pre_build_steps(self): + if self.platform == 'windows': + return [['tools\\run_tests\\pre_build_node.bat']] + else: + return [['tools/run_tests/pre_build_node.sh', self.node_version]] + + def make_targets(self): + return [] + + def make_options(self): + return [] + + def build_steps(self): + return [] + + def post_tests_steps(self): + return [] + + def makefile_name(self): + return 'Makefile' + + def dockerfile_dir(self): + return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(self.args.arch) + + def __str__(self): + return 'node_express' # different configurations we can run under with open('tools/run_tests/configs.json') as f: @@ -835,6 +899,7 @@ _LANGUAGES = { 'c++': CLanguage('cxx', 'c++'), 'c': CLanguage('c', 'c'), 'node': NodeLanguage(), + 'node_express': NodeExpressLanguage(), 'php': PhpLanguage(), 'php7': Php7Language(), 'python': PythonLanguage(), @@ -1002,6 +1067,10 @@ argp.add_argument('--compiler', 'coreclr'], default='default', help='Selects compiler to use. Allowed values depend on the platform and language.') +argp.add_argument('--iomgr_platform', + choices=['native', 'uv'], + default='native', + help='Selects iomgr platform to build on') argp.add_argument('--build_only', default=False, action='store_const', diff --git a/tools/run_tests/run_tests_matrix.py b/tools/run_tests/run_tests_matrix.py index 550dd10ea5..b65010ad8b 100755 --- a/tools/run_tests/run_tests_matrix.py +++ b/tools/run_tests/run_tests_matrix.py @@ -114,28 +114,28 @@ def _create_test_jobs(extra_args=[]): platforms=['linux'], labels=['basictests'], extra_args=extra_args) - + # supported on all platforms. test_jobs += _generate_jobs(languages=['c', 'csharp', 'node', 'python'], configs=['dbg', 'opt'], platforms=['linux', 'macos', 'windows'], labels=['basictests'], extra_args=extra_args) - + # supported on linux and mac. test_jobs += _generate_jobs(languages=['c++', 'ruby', 'php'], configs=['dbg', 'opt'], platforms=['linux', 'macos'], labels=['basictests'], extra_args=extra_args) - + # supported on mac only. test_jobs += _generate_jobs(languages=['objc'], configs=['dbg', 'opt'], platforms=['macos'], labels=['basictests'], extra_args=extra_args) - + # sanitizers test_jobs += _generate_jobs(languages=['c'], configs=['msan', 'asan', 'tsan'], @@ -147,9 +147,17 @@ def _create_test_jobs(extra_args=[]): platforms=['linux'], labels=['sanitizers'], extra_args=extra_args) + + # libuv tests + test_jobs += _generate_jobs(languages=['c'], + configs=['dbg', 'opt'], + platforms=['linux'], + labels=['libuv'], + extra_args=extra_args + ['--iomgr_platform=uv']) + return test_jobs - + def _create_portability_test_jobs(extra_args=[]): test_jobs = [] # portability C x86 @@ -160,7 +168,7 @@ def _create_portability_test_jobs(extra_args=[]): compiler='default', labels=['portability'], extra_args=extra_args) - + # portability C and C++ on x64 for compiler in ['gcc4.4', 'gcc4.6', 'gcc5.3', 'clang3.5', 'clang3.6', 'clang3.7']: @@ -171,7 +179,7 @@ def _create_portability_test_jobs(extra_args=[]): compiler=compiler, labels=['portability'], extra_args=extra_args) - + # portability C on Windows for arch in ['x86', 'x64']: for compiler in ['vs2013', 'vs2015']: @@ -182,7 +190,7 @@ def _create_portability_test_jobs(extra_args=[]): compiler=compiler, labels=['portability'], extra_args=extra_args) - + test_jobs += _generate_jobs(languages=['python'], configs=['dbg'], platforms=['linux'], @@ -190,7 +198,7 @@ def _create_portability_test_jobs(extra_args=[]): compiler='python3.4', labels=['portability'], extra_args=extra_args) - + test_jobs += _generate_jobs(languages=['csharp'], configs=['dbg'], platforms=['linux'], @@ -198,7 +206,7 @@ def _create_portability_test_jobs(extra_args=[]): compiler='coreclr', labels=['portability'], extra_args=extra_args) - return test_jobs + return test_jobs def _allowed_labels(): @@ -260,12 +268,12 @@ if not jobs: jobset.message('FAILED', 'No test suites match given criteria.', do_newline=True) sys.exit(1) - + print('IMPORTANT: The changes you are testing need to be locally committed') print('because only the committed changes in the current branch will be') print('copied to the docker environment or into subworkspaces.') -print +print print 'Will run these tests:' for job in jobs: if args.dry_run: diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 82ba546ce7..d7d6911c0e 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -1140,6 +1140,40 @@ "headers": [], "is_filegroup": false, "language": "c", + "name": "handshake_client", + "src": [ + "test/core/handshake/client_ssl.c" + ], + "third_party": false, + "type": "target" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c", + "name": "handshake_server", + "src": [ + "test/core/handshake/server_ssl.c" + ], + "third_party": false, + "type": "target" + }, + { + "deps": [ + "gpr", + "gpr_test_util", + "grpc", + "grpc_test_util" + ], + "headers": [], + "is_filegroup": false, + "language": "c", "name": "hpack_parser_fuzzer_test", "src": [ "test/core/transport/chttp2/hpack_parser_fuzzer_test.c" @@ -6500,27 +6534,34 @@ "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_posix.h", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.h", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.h", "src/core/lib/iomgr/wakeup_fd_cv.h", "src/core/lib/iomgr/wakeup_fd_pipe.h", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.h", "src/core/lib/json/json_common.h", @@ -6542,6 +6583,7 @@ "src/core/lib/transport/mdstr_hash_table.h", "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.h", "src/core/lib/transport/transport.h", @@ -6599,6 +6641,7 @@ "src/core/lib/iomgr/endpoint.h", "src/core/lib/iomgr/endpoint_pair.h", "src/core/lib/iomgr/endpoint_pair_posix.c", + "src/core/lib/iomgr/endpoint_pair_uv.c", "src/core/lib/iomgr/endpoint_pair_windows.c", "src/core/lib/iomgr/error.c", "src/core/lib/iomgr/error.h", @@ -6621,6 +6664,7 @@ "src/core/lib/iomgr/iomgr_internal.h", "src/core/lib/iomgr/iomgr_posix.c", "src/core/lib/iomgr/iomgr_posix.h", + "src/core/lib/iomgr/iomgr_uv.c", "src/core/lib/iomgr/iomgr_windows.c", "src/core/lib/iomgr/load_file.c", "src/core/lib/iomgr/load_file.h", @@ -6630,40 +6674,55 @@ "src/core/lib/iomgr/polling_entity.h", "src/core/lib/iomgr/pollset.h", "src/core/lib/iomgr/pollset_set.h", + "src/core/lib/iomgr/pollset_set_uv.c", "src/core/lib/iomgr/pollset_set_windows.c", "src/core/lib/iomgr/pollset_set_windows.h", + "src/core/lib/iomgr/pollset_uv.c", + "src/core/lib/iomgr/pollset_uv.h", "src/core/lib/iomgr/pollset_windows.c", "src/core/lib/iomgr/pollset_windows.h", + "src/core/lib/iomgr/port.h", "src/core/lib/iomgr/resolve_address.h", "src/core/lib/iomgr/resolve_address_posix.c", + "src/core/lib/iomgr/resolve_address_uv.c", "src/core/lib/iomgr/resolve_address_windows.c", "src/core/lib/iomgr/sockaddr.h", "src/core/lib/iomgr/sockaddr_posix.h", "src/core/lib/iomgr/sockaddr_utils.c", "src/core/lib/iomgr/sockaddr_utils.h", "src/core/lib/iomgr/sockaddr_windows.h", + "src/core/lib/iomgr/socket_utils.h", "src/core/lib/iomgr/socket_utils_common_posix.c", "src/core/lib/iomgr/socket_utils_linux.c", "src/core/lib/iomgr/socket_utils_posix.c", "src/core/lib/iomgr/socket_utils_posix.h", + "src/core/lib/iomgr/socket_utils_uv.c", + "src/core/lib/iomgr/socket_utils_windows.c", "src/core/lib/iomgr/socket_windows.c", "src/core/lib/iomgr/socket_windows.h", "src/core/lib/iomgr/tcp_client.h", "src/core/lib/iomgr/tcp_client_posix.c", + "src/core/lib/iomgr/tcp_client_uv.c", "src/core/lib/iomgr/tcp_client_windows.c", "src/core/lib/iomgr/tcp_posix.c", "src/core/lib/iomgr/tcp_posix.h", "src/core/lib/iomgr/tcp_server.h", "src/core/lib/iomgr/tcp_server_posix.c", + "src/core/lib/iomgr/tcp_server_uv.c", "src/core/lib/iomgr/tcp_server_windows.c", + "src/core/lib/iomgr/tcp_uv.c", + "src/core/lib/iomgr/tcp_uv.h", "src/core/lib/iomgr/tcp_windows.c", "src/core/lib/iomgr/tcp_windows.h", "src/core/lib/iomgr/time_averaged_stats.c", "src/core/lib/iomgr/time_averaged_stats.h", - "src/core/lib/iomgr/timer.c", "src/core/lib/iomgr/timer.h", + "src/core/lib/iomgr/timer_generic.c", + "src/core/lib/iomgr/timer_generic.h", "src/core/lib/iomgr/timer_heap.c", "src/core/lib/iomgr/timer_heap.h", + "src/core/lib/iomgr/timer_uv.c", + "src/core/lib/iomgr/timer_uv.h", "src/core/lib/iomgr/udp_server.c", "src/core/lib/iomgr/udp_server.h", "src/core/lib/iomgr/unix_sockets_posix.c", @@ -6678,6 +6737,8 @@ "src/core/lib/iomgr/wakeup_fd_posix.c", "src/core/lib/iomgr/wakeup_fd_posix.h", "src/core/lib/iomgr/workqueue.h", + "src/core/lib/iomgr/workqueue_uv.c", + "src/core/lib/iomgr/workqueue_uv.h", "src/core/lib/iomgr/workqueue_windows.c", "src/core/lib/iomgr/workqueue_windows.h", "src/core/lib/json/json.c", @@ -6727,6 +6788,8 @@ "src/core/lib/transport/metadata.h", "src/core/lib/transport/metadata_batch.c", "src/core/lib/transport/metadata_batch.h", + "src/core/lib/transport/method_config.c", + "src/core/lib/transport/method_config.h", "src/core/lib/transport/static_metadata.c", "src/core/lib/transport/static_metadata.h", "src/core/lib/transport/timeout_encoding.c", @@ -6753,12 +6816,10 @@ "src/core/ext/client_channel/lb_policy.h", "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.h", "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.h", "src/core/ext/client_channel/uri_parser.h" @@ -6786,8 +6847,6 @@ "src/core/ext/client_channel/lb_policy_factory.h", "src/core/ext/client_channel/lb_policy_registry.c", "src/core/ext/client_channel/lb_policy_registry.h", - "src/core/ext/client_channel/method_config.c", - "src/core/ext/client_channel/method_config.h", "src/core/ext/client_channel/parse_address.c", "src/core/ext/client_channel/parse_address.h", "src/core/ext/client_channel/resolver.c", @@ -6796,8 +6855,6 @@ "src/core/ext/client_channel/resolver_factory.h", "src/core/ext/client_channel/resolver_registry.c", "src/core/ext/client_channel/resolver_registry.h", - "src/core/ext/client_channel/resolver_result.c", - "src/core/ext/client_channel/resolver_result.h", "src/core/ext/client_channel/subchannel.c", "src/core/ext/client_channel/subchannel.h", "src/core/ext/client_channel/subchannel_index.c", @@ -6989,8 +7046,7 @@ "src/core/lib/security/credentials/credentials_metadata.c", "src/core/lib/security/credentials/fake/fake_credentials.c", "src/core/lib/security/credentials/fake/fake_credentials.h", - "src/core/lib/security/credentials/google_default/credentials_posix.c", - "src/core/lib/security/credentials/google_default/credentials_windows.c", + "src/core/lib/security/credentials/google_default/credentials_generic.c", "src/core/lib/security/credentials/google_default/google_default_credentials.c", "src/core/lib/security/credentials/google_default/google_default_credentials.h", "src/core/lib/security/credentials/iam/iam_credentials.c", @@ -7075,6 +7131,7 @@ "test/core/util/port_posix.c", "test/core/util/port_server_client.c", "test/core/util/port_server_client.h", + "test/core/util/port_uv.c", "test/core/util/port_windows.c", "test/core/util/slice_splitter.c", "test/core/util/slice_splitter.h" @@ -7288,7 +7345,8 @@ }, { "deps": [ - "gpr" + "gpr", + "grpc_base" ], "headers": [ "src/core/lib/tsi/fake_transport_security.h", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index 938aa2edde..e5b406db12 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -11,6 +11,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -32,6 +33,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -53,6 +55,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -74,6 +77,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -95,6 +99,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -116,6 +123,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -137,6 +145,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -158,6 +167,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -179,6 +189,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -200,6 +211,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -221,6 +233,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -242,6 +255,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -263,6 +277,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -284,6 +299,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -305,6 +321,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -326,6 +343,7 @@ ], "cpu_cost": 30, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -347,6 +365,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -368,6 +387,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -389,6 +411,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -410,6 +433,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -431,6 +457,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -451,6 +478,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -471,6 +501,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -489,6 +522,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -506,6 +542,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -525,6 +564,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -544,6 +586,7 @@ ], "cpu_cost": 1.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -563,6 +606,7 @@ ], "cpu_cost": 1.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -582,6 +626,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -602,6 +649,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -623,6 +671,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -644,6 +693,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -665,6 +715,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -686,6 +737,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -707,6 +759,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -728,6 +781,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -749,6 +803,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -770,6 +825,7 @@ ], "cpu_cost": 30, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -791,6 +847,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -812,6 +869,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -833,6 +891,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -854,6 +913,7 @@ ], "cpu_cost": 7, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -875,6 +935,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -896,6 +957,7 @@ ], "cpu_cost": 10, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -917,6 +979,7 @@ ], "cpu_cost": 10, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -938,6 +1001,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -959,6 +1023,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -980,6 +1045,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1001,6 +1067,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1022,6 +1089,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1043,6 +1111,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1064,6 +1133,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1085,6 +1155,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1106,6 +1177,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1127,6 +1201,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1148,6 +1223,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1168,6 +1244,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1188,6 +1265,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1209,6 +1287,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1223,6 +1302,38 @@ { "args": [], "ci_platforms": [ + "linux" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": false, + "language": "c", + "name": "handshake_client", + "platforms": [ + "linux" + ] + }, + { + "args": [], + "ci_platforms": [ + "linux" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "exclude_iomgrs": [], + "flaky": false, + "gtest": false, + "language": "c", + "name": "handshake_server", + "platforms": [ + "linux" + ] + }, + { + "args": [], + "ci_platforms": [ "linux", "mac", "posix", @@ -1230,6 +1341,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1251,6 +1363,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1272,6 +1385,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1293,6 +1407,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1313,6 +1428,7 @@ ], "cpu_cost": 0.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1330,6 +1446,7 @@ ], "cpu_cost": 0.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1348,6 +1465,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1369,6 +1487,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1390,6 +1509,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1411,6 +1531,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1432,6 +1553,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1453,6 +1575,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1474,6 +1597,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": true, "gtest": false, "language": "c", @@ -1495,6 +1619,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1516,6 +1641,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1537,6 +1663,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": true, "gtest": false, "language": "c", @@ -1558,6 +1685,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1579,6 +1707,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1600,6 +1729,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1621,6 +1751,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1642,6 +1775,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1663,6 +1797,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1684,6 +1821,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1705,6 +1845,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1726,6 +1867,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1747,6 +1889,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1768,6 +1913,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1789,6 +1935,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1809,6 +1956,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1828,6 +1978,9 @@ ], "cpu_cost": 0.5, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1847,6 +2000,9 @@ ], "cpu_cost": 0.2, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1866,6 +2022,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1886,6 +2045,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1907,6 +2067,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1928,6 +2089,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1949,6 +2113,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -1970,6 +2137,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -1991,6 +2159,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -2011,6 +2180,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -2030,6 +2200,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2050,6 +2223,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -2070,6 +2244,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2090,6 +2267,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2111,6 +2289,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2132,6 +2311,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2153,6 +2333,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2174,6 +2355,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2194,6 +2376,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2214,6 +2397,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2235,6 +2419,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2256,6 +2441,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2277,6 +2463,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2298,6 +2485,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2319,6 +2507,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2340,6 +2529,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2361,6 +2551,7 @@ ], "cpu_cost": 0.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2382,6 +2573,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2403,6 +2595,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2424,6 +2617,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2445,6 +2639,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2466,6 +2661,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2487,6 +2683,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c++", @@ -2508,6 +2705,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2528,6 +2726,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c++", @@ -2548,6 +2747,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2569,6 +2769,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2589,6 +2790,7 @@ ], "cpu_cost": 0.5, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c++", @@ -2609,6 +2811,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2629,6 +2832,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c++", @@ -2649,6 +2853,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2670,6 +2875,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2690,6 +2896,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2710,6 +2917,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2731,6 +2939,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c++", @@ -2751,6 +2960,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2771,6 +2981,7 @@ ], "cpu_cost": 100, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": true, "language": "c++", @@ -2792,6 +3003,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c89", @@ -2813,6 +3025,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2834,6 +3049,9 @@ ], "cpu_cost": 0.2, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2855,6 +3073,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2876,6 +3097,9 @@ ], "cpu_cost": 0.2, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2897,6 +3121,9 @@ ], "cpu_cost": 0.2, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2918,6 +3145,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2939,6 +3169,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2960,6 +3193,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -2981,6 +3217,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -3002,6 +3241,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "gtest": false, "language": "c", @@ -3022,6 +3264,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "gtest": false, "language": "c", @@ -4590,6 +4833,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4612,6 +4856,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4634,6 +4879,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4656,6 +4902,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4678,6 +4925,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4700,6 +4948,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4722,6 +4971,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4744,6 +4994,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4766,6 +5017,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4788,6 +5040,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4810,6 +5063,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4832,6 +5088,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4854,6 +5111,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4876,6 +5134,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4898,6 +5157,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4920,6 +5180,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4942,6 +5203,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4964,6 +5226,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -4986,6 +5249,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5008,6 +5272,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5030,6 +5295,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5052,6 +5318,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5074,6 +5341,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5096,6 +5364,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5118,6 +5387,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5140,6 +5410,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5162,6 +5433,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5184,6 +5456,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5206,6 +5479,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5228,6 +5502,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5250,6 +5525,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5272,6 +5548,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5294,6 +5571,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5316,6 +5594,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5338,6 +5617,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5360,6 +5640,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5382,6 +5663,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5404,6 +5686,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5426,6 +5709,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5448,6 +5732,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5470,6 +5755,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5492,6 +5778,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5514,6 +5801,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5536,6 +5824,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_test", @@ -5558,6 +5847,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5580,6 +5870,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5602,6 +5893,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5624,6 +5916,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5646,6 +5939,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5668,6 +5962,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5690,6 +5985,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5712,6 +6008,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5734,6 +6031,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5756,6 +6054,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5778,6 +6077,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5800,6 +6102,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5822,6 +6125,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5844,6 +6148,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5866,6 +6171,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5888,6 +6194,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5910,6 +6217,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5932,6 +6240,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5954,6 +6263,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5976,6 +6286,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -5998,6 +6309,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6020,6 +6332,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6042,6 +6355,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6064,6 +6378,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6086,6 +6401,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6108,6 +6424,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6130,6 +6447,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6152,6 +6470,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6174,6 +6493,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6196,6 +6516,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6218,6 +6539,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6240,6 +6562,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6262,6 +6585,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6284,6 +6608,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6306,6 +6631,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6328,6 +6654,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6350,6 +6677,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6372,6 +6700,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6394,6 +6723,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6416,6 +6746,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6438,6 +6769,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6460,6 +6792,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6482,6 +6815,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6504,6 +6838,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_test", @@ -6526,6 +6861,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6548,6 +6884,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6570,6 +6907,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6592,6 +6930,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6614,6 +6953,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6636,6 +6976,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6658,6 +6999,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6680,6 +7022,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6702,6 +7045,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6724,6 +7068,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6746,6 +7091,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6768,6 +7116,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6790,6 +7139,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6812,6 +7162,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6834,6 +7185,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6856,6 +7208,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6878,6 +7231,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6900,6 +7254,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6922,6 +7277,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6944,6 +7300,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6966,6 +7323,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -6988,6 +7346,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7010,6 +7369,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7032,6 +7392,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7054,6 +7415,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7076,6 +7438,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7098,6 +7461,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7120,6 +7484,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7142,6 +7507,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7164,6 +7530,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7186,6 +7553,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7208,6 +7576,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7230,6 +7599,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7252,6 +7622,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7274,6 +7645,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7296,6 +7668,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7318,6 +7691,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7340,6 +7714,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7362,6 +7737,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7384,6 +7760,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7406,6 +7783,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7428,6 +7806,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7450,6 +7829,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7472,6 +7852,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_test", @@ -7493,6 +7874,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7514,6 +7896,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7535,6 +7918,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7556,6 +7940,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7577,6 +7962,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7598,6 +7984,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7619,6 +8006,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7640,6 +8028,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7661,6 +8050,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7682,6 +8072,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7703,6 +8094,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7724,6 +8118,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7745,6 +8140,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7766,6 +8162,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7787,6 +8184,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7808,6 +8206,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7829,6 +8228,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7850,6 +8250,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7871,6 +8272,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7892,6 +8294,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7913,6 +8316,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7934,6 +8338,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7955,6 +8360,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7976,6 +8382,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -7997,6 +8404,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8018,6 +8426,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8039,6 +8448,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8060,6 +8470,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8081,6 +8492,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8102,6 +8514,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8123,6 +8536,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8144,6 +8558,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8165,6 +8580,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8186,6 +8602,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8207,6 +8624,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8228,6 +8646,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8249,6 +8668,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8270,6 +8690,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8291,6 +8712,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8312,6 +8734,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8333,6 +8756,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8354,6 +8778,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8375,6 +8800,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8396,6 +8822,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fakesec_test", @@ -8417,6 +8844,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8437,6 +8867,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8457,6 +8890,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8477,6 +8913,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8497,6 +8936,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8517,6 +8959,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8537,6 +8982,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8557,6 +9005,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8577,6 +9028,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8597,6 +9051,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8617,6 +9074,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8637,6 +9097,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8657,6 +9120,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8677,6 +9143,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8697,6 +9166,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8717,6 +9189,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8737,6 +9212,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8757,6 +9235,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8777,6 +9258,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8797,6 +9281,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8817,6 +9304,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8837,6 +9327,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8857,6 +9350,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8877,6 +9373,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8897,6 +9396,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8917,6 +9419,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8937,6 +9442,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8957,6 +9465,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8977,6 +9488,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -8997,6 +9511,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9017,6 +9534,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9037,6 +9557,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9057,6 +9580,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9077,6 +9603,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9097,6 +9626,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9117,6 +9649,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9137,6 +9672,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9157,6 +9695,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9177,6 +9718,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_test", @@ -9198,6 +9742,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9220,6 +9765,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9242,6 +9788,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9264,6 +9811,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9286,6 +9834,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9308,6 +9857,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9330,6 +9880,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9352,6 +9903,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9374,6 +9926,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9396,6 +9949,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9418,6 +9972,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9440,6 +9997,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9462,6 +10020,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9484,6 +10043,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9506,6 +10066,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9528,6 +10089,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9550,6 +10112,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9572,6 +10135,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9594,6 +10158,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9616,6 +10181,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9638,6 +10204,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9660,6 +10227,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9682,6 +10250,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9704,6 +10273,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9726,6 +10296,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9748,6 +10319,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9770,6 +10342,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9792,6 +10365,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9814,6 +10388,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9836,6 +10411,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9858,6 +10434,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9880,6 +10457,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9902,6 +10480,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9924,6 +10503,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9946,6 +10526,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9968,6 +10549,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -9990,6 +10572,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10012,6 +10595,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10034,6 +10618,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10056,6 +10641,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10078,6 +10664,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10100,6 +10687,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10122,6 +10710,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10144,6 +10733,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_test", @@ -10163,6 +10753,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10179,6 +10772,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10195,6 +10791,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10211,6 +10810,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10227,6 +10829,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10243,6 +10848,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10259,6 +10867,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10275,6 +10886,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10291,6 +10905,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10307,6 +10924,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10323,6 +10943,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10339,6 +10962,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10355,6 +10981,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10371,6 +11000,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10387,6 +11019,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10403,6 +11038,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10419,6 +11057,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10435,6 +11076,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10451,6 +11095,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10467,6 +11114,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10483,6 +11133,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10499,6 +11152,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10515,6 +11171,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10531,6 +11190,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10547,6 +11209,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10563,6 +11228,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10579,6 +11247,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10595,6 +11266,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10611,6 +11285,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10627,6 +11304,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10643,6 +11323,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10659,6 +11342,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10675,6 +11361,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10691,6 +11380,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10707,6 +11399,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10723,6 +11418,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10739,6 +11437,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10755,6 +11456,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10771,6 +11475,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10787,6 +11494,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10803,6 +11513,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10819,6 +11532,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10835,6 +11551,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10851,6 +11570,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_test", @@ -10870,6 +11592,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -10892,6 +11615,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -10914,6 +11638,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -10936,6 +11661,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -10958,6 +11684,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -10980,6 +11707,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11002,6 +11730,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11024,6 +11753,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11046,6 +11776,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11068,6 +11799,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11090,6 +11822,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11112,6 +11847,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11134,6 +11870,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11156,6 +11893,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11178,6 +11916,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11200,6 +11939,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11222,6 +11962,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11244,6 +11985,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11266,6 +12008,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11288,6 +12031,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11310,6 +12054,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11332,6 +12077,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11354,6 +12100,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11376,6 +12123,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11398,6 +12146,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11420,6 +12169,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11442,6 +12192,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11464,6 +12215,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11486,6 +12238,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11508,6 +12261,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11530,6 +12284,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11552,6 +12307,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11574,6 +12330,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11596,6 +12353,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11618,6 +12376,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11640,6 +12399,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11662,6 +12422,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11684,6 +12445,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11706,6 +12468,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11728,6 +12491,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11750,6 +12514,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11772,6 +12537,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_test", @@ -11793,6 +12559,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11814,6 +12583,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11835,6 +12607,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11856,6 +12631,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11877,6 +12655,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11898,6 +12679,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11919,6 +12703,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11940,6 +12727,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11961,6 +12751,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -11982,6 +12775,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12003,6 +12799,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12024,6 +12823,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12045,6 +12847,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12066,6 +12871,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12087,6 +12895,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12108,6 +12919,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12129,6 +12943,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12150,6 +12967,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12171,6 +12991,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12192,6 +13015,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12213,6 +13039,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12234,6 +13063,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12255,6 +13087,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12276,6 +13111,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12297,6 +13135,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12318,6 +13159,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12339,6 +13183,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12360,6 +13207,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12381,6 +13231,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12402,6 +13255,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12423,6 +13279,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12444,6 +13303,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12465,6 +13327,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12486,6 +13351,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12507,6 +13375,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12528,6 +13399,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12549,6 +13423,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12570,6 +13447,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12591,6 +13471,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12612,6 +13495,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12633,6 +13519,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12654,6 +13543,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12675,6 +13567,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12696,6 +13591,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_test", @@ -12718,6 +13616,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12740,6 +13639,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12762,6 +13662,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12784,6 +13685,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12806,6 +13708,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12828,6 +13731,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12850,6 +13754,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12872,6 +13777,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12894,6 +13800,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12916,6 +13823,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12938,6 +13846,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12960,6 +13871,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -12982,6 +13894,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13004,6 +13917,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13026,6 +13940,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13048,6 +13963,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13070,6 +13986,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13092,6 +14009,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13114,6 +14032,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13136,6 +14055,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13158,6 +14078,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13180,6 +14101,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13202,6 +14124,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13224,6 +14147,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13246,6 +14170,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13268,6 +14193,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13290,6 +14216,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13312,6 +14239,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13334,6 +14262,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13356,6 +14285,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13378,6 +14308,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13400,6 +14331,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13422,6 +14354,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13444,6 +14377,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13466,6 +14400,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13488,6 +14423,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13510,6 +14446,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13532,6 +14469,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13554,6 +14492,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13576,6 +14515,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13598,6 +14538,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13620,6 +14561,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13642,6 +14584,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13664,6 +14607,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_test", @@ -13685,6 +14629,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13706,6 +14653,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13727,6 +14677,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13748,6 +14701,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13769,6 +14725,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13790,6 +14749,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13811,6 +14773,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13832,6 +14797,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13853,6 +14821,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13874,6 +14845,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13895,6 +14869,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13916,6 +14893,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13937,6 +14917,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13958,6 +14941,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -13979,6 +14965,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14000,6 +14989,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14021,6 +15013,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14042,6 +15037,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14063,6 +15061,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14084,6 +15085,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14105,6 +15109,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14126,6 +15133,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14147,6 +15157,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14168,6 +15181,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14189,6 +15205,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14210,6 +15229,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14231,6 +15253,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14252,6 +15277,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14273,6 +15301,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14294,6 +15325,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14315,6 +15349,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14336,6 +15373,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14357,6 +15397,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14378,6 +15421,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14399,6 +15445,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14420,6 +15469,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14441,6 +15493,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14462,6 +15517,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14483,6 +15541,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14504,6 +15565,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14525,6 +15589,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14546,6 +15613,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14567,6 +15637,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14588,6 +15661,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_oauth2_test", @@ -14609,6 +15685,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14630,6 +15709,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14651,6 +15733,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14672,6 +15757,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14693,6 +15781,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14714,6 +15805,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14735,6 +15829,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14756,6 +15853,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14777,6 +15877,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14798,6 +15901,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14819,6 +15925,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14840,6 +15949,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14861,6 +15973,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14882,6 +15997,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14903,6 +16021,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14924,6 +16045,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14945,6 +16069,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14966,6 +16093,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -14987,6 +16117,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15008,6 +16141,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15029,6 +16165,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15050,6 +16189,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15071,6 +16213,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15092,6 +16237,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15113,6 +16261,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15134,6 +16285,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15155,6 +16309,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15176,6 +16333,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15197,6 +16357,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15218,6 +16381,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15239,6 +16405,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15260,6 +16429,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15281,6 +16453,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15302,6 +16477,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15323,6 +16501,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15344,6 +16525,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15365,6 +16549,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15386,6 +16573,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_test", @@ -15407,6 +16597,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15428,6 +16621,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15449,6 +16645,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15470,6 +16669,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15491,6 +16693,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15512,6 +16717,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15533,6 +16741,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15554,6 +16765,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15575,6 +16789,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15596,6 +16813,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15617,6 +16837,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15638,6 +16861,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15659,6 +16885,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15680,6 +16909,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15701,6 +16933,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15722,6 +16957,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15743,6 +16981,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15764,6 +17005,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15785,6 +17029,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15806,6 +17053,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15827,6 +17077,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15848,6 +17101,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15869,6 +17125,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15890,6 +17149,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15911,6 +17173,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15932,6 +17197,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15953,6 +17221,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15974,6 +17245,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -15995,6 +17269,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16016,6 +17293,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16037,6 +17317,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16058,6 +17341,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16079,6 +17365,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16100,6 +17389,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16121,6 +17413,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16142,6 +17437,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16163,6 +17461,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16184,6 +17485,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16205,6 +17509,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_test", @@ -16226,6 +17533,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16247,6 +17557,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16268,6 +17581,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16289,6 +17605,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16310,6 +17629,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16331,6 +17653,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16352,6 +17677,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16373,6 +17701,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16394,6 +17725,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16415,6 +17749,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16436,6 +17773,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16457,6 +17797,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16478,6 +17821,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16499,6 +17845,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16520,6 +17869,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16541,6 +17893,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16562,6 +17917,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16583,6 +17941,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16604,6 +17965,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16625,6 +17989,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16646,6 +18013,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16667,6 +18037,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16688,6 +18061,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16709,6 +18085,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16730,6 +18109,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16751,6 +18133,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16772,6 +18157,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16793,6 +18181,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16814,6 +18205,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16835,6 +18229,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16856,6 +18253,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16877,6 +18277,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16898,6 +18301,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16919,6 +18325,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16940,6 +18349,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16961,6 +18373,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -16982,6 +18397,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_test", @@ -17005,6 +18423,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17028,6 +18449,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17051,6 +18475,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17074,6 +18501,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17097,6 +18527,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17120,6 +18553,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17143,6 +18579,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17166,6 +18605,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17189,6 +18631,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17212,6 +18657,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17235,6 +18683,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17258,6 +18709,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17281,6 +18735,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17304,6 +18761,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17327,6 +18787,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17350,6 +18813,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17373,6 +18839,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17396,6 +18865,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17419,6 +18891,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17442,6 +18917,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17465,6 +18943,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17488,6 +18969,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17511,6 +18995,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17534,6 +19021,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17557,6 +19047,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17580,6 +19073,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17603,6 +19099,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17626,6 +19125,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17649,6 +19151,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17672,6 +19177,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17695,6 +19203,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17718,6 +19229,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17741,6 +19255,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17764,6 +19281,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17787,6 +19307,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17810,6 +19333,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17833,6 +19359,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17856,6 +19385,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17879,6 +19411,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_test", @@ -17901,6 +19436,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -17923,6 +19459,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -17945,6 +19482,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -17967,6 +19505,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -17989,6 +19528,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18011,6 +19551,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18033,6 +19574,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18055,6 +19597,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18077,6 +19620,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18099,6 +19643,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18121,6 +19666,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18143,6 +19691,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18165,6 +19714,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18187,6 +19737,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18209,6 +19760,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18231,6 +19783,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18253,6 +19806,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18275,6 +19829,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18297,6 +19852,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18319,6 +19875,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18341,6 +19898,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18363,6 +19921,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18385,6 +19944,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18407,6 +19967,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18429,6 +19990,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18451,6 +20013,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18473,6 +20036,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18495,6 +20059,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18517,6 +20082,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18539,6 +20105,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18561,6 +20128,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18583,6 +20151,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18605,6 +20174,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18627,6 +20197,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18649,6 +20220,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18671,6 +20243,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18693,6 +20266,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18715,6 +20289,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18737,6 +20312,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18759,6 +20335,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18781,6 +20358,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18803,6 +20381,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18825,6 +20404,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18847,6 +20427,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_test", @@ -18869,6 +20450,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -18891,6 +20473,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -18913,6 +20496,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -18935,6 +20519,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -18957,6 +20542,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -18979,6 +20565,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19001,6 +20588,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19023,6 +20611,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19045,6 +20634,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19067,6 +20657,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19089,6 +20680,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19111,6 +20705,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19133,6 +20728,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19155,6 +20751,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19177,6 +20774,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19199,6 +20797,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19221,6 +20820,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19243,6 +20843,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19265,6 +20866,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19287,6 +20889,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19309,6 +20912,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19331,6 +20935,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19353,6 +20958,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19375,6 +20981,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19397,6 +21004,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19419,6 +21027,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19441,6 +21050,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19463,6 +21073,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19485,6 +21096,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19507,6 +21119,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19529,6 +21142,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19551,6 +21165,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19573,6 +21188,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19595,6 +21211,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19617,6 +21234,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19639,6 +21257,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19661,6 +21280,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19683,6 +21303,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19705,6 +21326,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19727,6 +21349,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19749,6 +21372,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19771,6 +21395,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19793,6 +21418,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19815,6 +21441,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_ssl_cert_test", @@ -19836,6 +21463,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19857,6 +21487,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19878,6 +21511,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19899,6 +21535,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19920,6 +21559,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19941,6 +21583,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19962,6 +21607,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -19983,6 +21631,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20004,6 +21655,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20025,6 +21679,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20046,6 +21703,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20067,6 +21727,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20088,6 +21751,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20109,6 +21775,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20130,6 +21799,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20151,6 +21823,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20172,6 +21847,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20193,6 +21871,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20214,6 +21895,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20235,6 +21919,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20256,6 +21943,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20277,6 +21967,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20298,6 +21991,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20319,6 +22015,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20340,6 +22039,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20361,6 +22063,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20382,6 +22087,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20403,6 +22111,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20424,6 +22135,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20445,6 +22159,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20466,6 +22183,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20487,6 +22207,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20508,6 +22231,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20529,6 +22255,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20550,6 +22279,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20571,6 +22303,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20592,6 +22327,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20613,6 +22351,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_ssl_proxy_test", @@ -20634,6 +22375,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20654,6 +22398,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20674,6 +22421,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20694,6 +22444,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20714,6 +22467,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20734,6 +22490,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20754,6 +22513,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20774,6 +22536,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20794,6 +22559,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20814,6 +22582,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20834,6 +22605,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20854,6 +22628,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20874,6 +22651,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20894,6 +22674,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20914,6 +22697,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20934,6 +22720,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20954,6 +22743,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20974,6 +22766,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -20994,6 +22789,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21014,6 +22812,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21034,6 +22835,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21054,6 +22858,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21074,6 +22881,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21094,6 +22904,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21114,6 +22927,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21134,6 +22950,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21154,6 +22973,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21174,6 +22996,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21194,6 +23019,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21214,6 +23042,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21234,6 +23065,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21254,6 +23088,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21274,6 +23111,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21294,6 +23134,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21314,6 +23157,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21334,6 +23180,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21354,6 +23203,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21374,6 +23226,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21394,6 +23249,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21414,6 +23272,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21434,6 +23295,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21454,6 +23318,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21474,6 +23341,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_test", @@ -21495,6 +23365,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21517,6 +23388,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21539,6 +23411,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21561,6 +23434,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21583,6 +23457,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21605,6 +23480,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21627,6 +23503,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21649,6 +23526,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21671,6 +23549,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21693,6 +23572,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21715,6 +23597,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21737,6 +23620,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21759,6 +23643,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21781,6 +23666,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21803,6 +23689,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21825,6 +23712,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21847,6 +23735,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21869,6 +23758,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21891,6 +23781,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21913,6 +23804,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21935,6 +23827,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21957,6 +23850,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -21979,6 +23873,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22001,6 +23896,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22023,6 +23919,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22045,6 +23942,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22067,6 +23965,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22089,6 +23988,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22111,6 +24011,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22133,6 +24034,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22155,6 +24057,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22177,6 +24080,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22199,6 +24103,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22221,6 +24126,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22243,6 +24149,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22265,6 +24172,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22287,6 +24195,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22309,6 +24218,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22331,6 +24241,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22353,6 +24264,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22375,6 +24287,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22397,6 +24310,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22419,6 +24333,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_census_nosec_test", @@ -22441,6 +24356,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22463,6 +24379,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22485,6 +24402,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22507,6 +24425,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22529,6 +24448,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22551,6 +24471,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22573,6 +24494,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22595,6 +24517,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22617,6 +24540,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22639,6 +24563,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22661,6 +24588,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22683,6 +24611,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22705,6 +24634,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22727,6 +24657,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22749,6 +24680,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22771,6 +24703,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22793,6 +24726,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22815,6 +24749,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22837,6 +24772,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22859,6 +24795,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22881,6 +24818,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22903,6 +24841,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22925,6 +24864,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22947,6 +24887,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22969,6 +24910,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -22991,6 +24933,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23013,6 +24956,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23035,6 +24979,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23057,6 +25002,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23079,6 +25025,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23101,6 +25048,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23123,6 +25071,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23145,6 +25094,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23167,6 +25117,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23189,6 +25140,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23211,6 +25163,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23233,6 +25186,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23255,6 +25209,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23277,6 +25232,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23299,6 +25255,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23321,6 +25278,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23343,6 +25301,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23365,6 +25324,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_compress_nosec_test", @@ -23387,6 +25347,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23409,6 +25370,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23431,6 +25393,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23453,6 +25416,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23475,6 +25439,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23497,6 +25462,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23519,6 +25485,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23541,6 +25508,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23563,6 +25531,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23585,6 +25554,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23607,6 +25579,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23629,6 +25602,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23651,6 +25625,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23673,6 +25648,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23695,6 +25671,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23717,6 +25694,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23739,6 +25717,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23761,6 +25740,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23783,6 +25763,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23805,6 +25786,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23827,6 +25809,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23849,6 +25832,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23871,6 +25855,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23893,6 +25878,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23915,6 +25901,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23937,6 +25924,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23959,6 +25947,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -23981,6 +25970,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24003,6 +25993,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24025,6 +26016,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24047,6 +26039,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24069,6 +26062,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24091,6 +26085,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24113,6 +26108,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24135,6 +26131,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24157,6 +26154,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24179,6 +26177,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24201,6 +26200,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24223,6 +26223,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24245,6 +26246,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24267,6 +26269,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24289,6 +26292,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24311,6 +26315,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_fake_resolver_nosec_test", @@ -24332,6 +26337,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24352,6 +26360,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24372,6 +26383,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24392,6 +26406,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24412,6 +26429,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24432,6 +26452,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24452,6 +26475,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24472,6 +26498,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24492,6 +26521,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24512,6 +26544,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24532,6 +26567,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24552,6 +26590,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24572,6 +26613,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24592,6 +26636,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24612,6 +26659,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24632,6 +26682,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24652,6 +26705,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24672,6 +26728,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24692,6 +26751,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24712,6 +26774,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24732,6 +26797,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24752,6 +26820,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24772,6 +26843,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24792,6 +26866,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24812,6 +26889,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24832,6 +26912,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24852,6 +26935,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24872,6 +26958,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24892,6 +26981,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24912,6 +27004,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24932,6 +27027,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24952,6 +27050,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24972,6 +27073,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -24992,6 +27096,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -25012,6 +27119,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -25032,6 +27142,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -25052,6 +27165,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -25072,6 +27188,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_fd_nosec_test", @@ -25093,6 +27212,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25115,6 +27235,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25137,6 +27258,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25159,6 +27281,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25181,6 +27304,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25203,6 +27327,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25225,6 +27350,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25247,6 +27373,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25269,6 +27396,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25291,6 +27419,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25313,6 +27444,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25335,6 +27467,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25357,6 +27490,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25379,6 +27513,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25401,6 +27536,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25423,6 +27559,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25445,6 +27582,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25467,6 +27605,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25489,6 +27628,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25511,6 +27651,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25533,6 +27674,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25555,6 +27697,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25577,6 +27720,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25599,6 +27743,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25621,6 +27766,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25643,6 +27789,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25665,6 +27812,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25687,6 +27835,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25709,6 +27858,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25731,6 +27881,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25753,6 +27904,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25775,6 +27927,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25797,6 +27950,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25819,6 +27973,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25841,6 +27996,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25863,6 +28019,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25885,6 +28042,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25907,6 +28065,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25929,6 +28088,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25951,6 +28111,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25973,6 +28134,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -25995,6 +28157,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -26017,6 +28180,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full_nosec_test", @@ -26036,6 +28200,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26052,6 +28219,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26068,6 +28238,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26084,6 +28257,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26100,6 +28276,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26116,6 +28295,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26132,6 +28314,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26148,6 +28333,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26164,6 +28352,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26180,6 +28371,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26196,6 +28390,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26212,6 +28409,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26228,6 +28428,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26244,6 +28447,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26260,6 +28466,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26276,6 +28485,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26292,6 +28504,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26308,6 +28523,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26324,6 +28542,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26340,6 +28561,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26356,6 +28580,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26372,6 +28599,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26388,6 +28618,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26404,6 +28637,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26420,6 +28656,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26436,6 +28675,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26452,6 +28694,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26468,6 +28713,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26484,6 +28732,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26500,6 +28751,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26516,6 +28770,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26532,6 +28789,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26548,6 +28808,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26564,6 +28827,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26580,6 +28846,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26596,6 +28865,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26612,6 +28884,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26628,6 +28903,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26644,6 +28922,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26660,6 +28941,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26676,6 +28960,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26692,6 +28979,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26708,6 +28998,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+pipe_nosec_test", @@ -26727,6 +29020,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26749,6 +29043,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26771,6 +29066,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26793,6 +29089,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26815,6 +29112,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26837,6 +29135,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26859,6 +29158,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26881,6 +29181,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26903,6 +29204,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26925,6 +29227,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26947,6 +29252,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26969,6 +29275,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -26991,6 +29298,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27013,6 +29321,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27035,6 +29344,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27057,6 +29367,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27079,6 +29390,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27101,6 +29413,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27123,6 +29436,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27145,6 +29459,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27167,6 +29482,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27189,6 +29505,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27211,6 +29528,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27233,6 +29551,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27255,6 +29574,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27277,6 +29597,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27299,6 +29620,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27321,6 +29643,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27343,6 +29666,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27365,6 +29689,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27387,6 +29712,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27409,6 +29735,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27431,6 +29758,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27453,6 +29781,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27475,6 +29804,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27497,6 +29827,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27519,6 +29850,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27541,6 +29873,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27563,6 +29896,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27585,6 +29919,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27607,6 +29942,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_full+trace_nosec_test", @@ -27628,6 +29964,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27649,6 +29988,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27670,6 +30012,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27691,6 +30036,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27712,6 +30060,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27733,6 +30084,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27754,6 +30108,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27775,6 +30132,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27796,6 +30156,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27817,6 +30180,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27838,6 +30204,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27859,6 +30228,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27880,6 +30252,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27901,6 +30276,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27922,6 +30300,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27943,6 +30324,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27964,6 +30348,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -27985,6 +30372,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28006,6 +30396,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28027,6 +30420,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28048,6 +30444,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28069,6 +30468,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28090,6 +30492,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28111,6 +30516,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28132,6 +30540,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28153,6 +30564,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28174,6 +30588,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28195,6 +30612,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28216,6 +30636,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28237,6 +30660,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28258,6 +30684,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28279,6 +30708,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28300,6 +30732,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28321,6 +30756,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28342,6 +30780,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28363,6 +30804,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28384,6 +30828,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28405,6 +30852,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28426,6 +30876,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28447,6 +30900,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28468,6 +30924,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28489,6 +30948,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28510,6 +30972,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_http_proxy_nosec_test", @@ -28532,6 +30997,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28554,6 +31020,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28576,6 +31043,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28598,6 +31066,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28620,6 +31089,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28642,6 +31112,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28664,6 +31135,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28686,6 +31158,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28708,6 +31181,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28730,6 +31204,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28752,6 +31229,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28774,6 +31252,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28796,6 +31275,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28818,6 +31298,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28840,6 +31321,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28862,6 +31344,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28884,6 +31367,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28906,6 +31390,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28928,6 +31413,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28950,6 +31436,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28972,6 +31459,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -28994,6 +31482,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29016,6 +31505,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29038,6 +31528,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29060,6 +31551,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29082,6 +31574,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29104,6 +31597,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29126,6 +31620,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29148,6 +31643,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29170,6 +31666,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29192,6 +31689,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29214,6 +31712,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29236,6 +31735,7 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29258,6 +31758,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29280,6 +31781,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29302,6 +31804,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29324,6 +31827,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29346,6 +31850,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29368,6 +31873,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29390,6 +31896,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29412,6 +31919,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29434,6 +31942,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29456,6 +31965,7 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [], "flaky": false, "language": "c", "name": "h2_load_reporting_nosec_test", @@ -29477,6 +31987,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29498,6 +32011,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29519,6 +32035,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29540,6 +32059,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29561,6 +32083,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29582,6 +32107,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29603,6 +32131,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29624,6 +32155,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29645,6 +32179,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29666,6 +32203,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29687,6 +32227,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29708,6 +32251,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29729,6 +32275,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29750,6 +32299,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29771,6 +32323,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29792,6 +32347,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29813,6 +32371,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29834,6 +32395,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29855,6 +32419,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29876,6 +32443,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29897,6 +32467,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29918,6 +32491,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29939,6 +32515,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29960,6 +32539,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -29981,6 +32563,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30002,6 +32587,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30023,6 +32611,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30044,6 +32635,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30065,6 +32659,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30086,6 +32683,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30107,6 +32707,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30128,6 +32731,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30149,6 +32755,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30170,6 +32779,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30191,6 +32803,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30212,6 +32827,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30233,6 +32851,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_proxy_nosec_test", @@ -30254,6 +32875,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30275,6 +32899,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30296,6 +32923,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30317,6 +32947,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30338,6 +32971,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30359,6 +32995,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30380,6 +33019,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30401,6 +33043,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30422,6 +33067,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30443,6 +33091,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30464,6 +33115,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30485,6 +33139,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30506,6 +33163,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30527,6 +33187,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30548,6 +33211,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30569,6 +33235,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30590,6 +33259,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30611,6 +33283,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30632,6 +33307,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30653,6 +33331,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30674,6 +33355,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30695,6 +33379,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30716,6 +33403,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30737,6 +33427,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30758,6 +33451,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30779,6 +33475,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30800,6 +33499,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30821,6 +33523,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30842,6 +33547,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30863,6 +33571,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30884,6 +33595,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30905,6 +33619,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30926,6 +33643,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30947,6 +33667,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30968,6 +33691,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -30989,6 +33715,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -31010,6 +33739,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -31031,6 +33763,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_nosec_test", @@ -31052,6 +33787,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31073,6 +33811,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31094,6 +33835,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31115,6 +33859,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31136,6 +33883,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31157,6 +33907,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31178,6 +33931,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31199,6 +33955,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31220,6 +33979,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31241,6 +34003,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31262,6 +34027,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31283,6 +34051,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31304,6 +34075,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31325,6 +34099,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31346,6 +34123,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31367,6 +34147,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31388,6 +34171,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31409,6 +34195,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31430,6 +34219,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31451,6 +34243,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31472,6 +34267,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31493,6 +34291,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31514,6 +34315,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31535,6 +34339,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31556,6 +34363,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31577,6 +34387,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31598,6 +34411,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31619,6 +34435,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31640,6 +34459,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31661,6 +34483,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31682,6 +34507,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31703,6 +34531,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31724,6 +34555,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31745,6 +34579,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31766,6 +34603,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31787,6 +34627,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair+trace_nosec_test", @@ -31810,6 +34653,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31833,6 +34679,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31856,6 +34705,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31879,6 +34731,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31902,6 +34757,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31925,6 +34783,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31948,6 +34809,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31971,6 +34835,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -31994,6 +34861,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32017,6 +34887,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32040,6 +34913,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32063,6 +34939,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32086,6 +34965,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32109,6 +34991,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32132,6 +35017,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32155,6 +35043,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32178,6 +35069,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32201,6 +35095,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32224,6 +35121,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32247,6 +35147,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32270,6 +35173,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32293,6 +35199,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32316,6 +35225,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32339,6 +35251,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32362,6 +35277,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32385,6 +35303,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32408,6 +35329,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32431,6 +35355,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32454,6 +35381,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32477,6 +35407,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32500,6 +35433,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32523,6 +35459,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32546,6 +35485,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32569,6 +35511,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32592,6 +35537,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32615,6 +35563,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32638,6 +35589,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32661,6 +35615,9 @@ "exclude_configs": [ "msan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_sockpair_1byte_nosec_test", @@ -32682,6 +35639,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32702,6 +35662,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32722,6 +35685,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32742,6 +35708,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32762,6 +35731,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32782,6 +35754,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32802,6 +35777,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32822,6 +35800,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32842,6 +35823,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32862,6 +35846,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32882,6 +35869,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32902,6 +35892,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32922,6 +35915,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32942,6 +35938,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32962,6 +35961,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -32982,6 +35984,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33002,6 +36007,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33022,6 +36030,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33042,6 +36053,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33062,6 +36076,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33082,6 +36099,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33102,6 +36122,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33122,6 +36145,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33142,6 +36168,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33162,6 +36191,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33182,6 +36214,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33202,6 +36237,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33222,6 +36260,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33242,6 +36283,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33262,6 +36306,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33282,6 +36329,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33302,6 +36352,9 @@ ], "cpu_cost": 0.1, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33322,6 +36375,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33342,6 +36398,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33362,6 +36421,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33382,6 +36444,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33402,6 +36467,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33422,6 +36490,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33442,6 +36513,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33462,6 +36536,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33482,6 +36559,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33502,6 +36582,9 @@ ], "cpu_cost": 1.0, "exclude_configs": [], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "h2_uds_nosec_test", @@ -33598,6 +36681,27 @@ { "args": [ "--scenarios_json", + "{\"scenarios\": [{\"name\": \"cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_secure\", \"warmup_seconds\": 0, \"benchmark_seconds\": 1, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}]}" + ], + "boringssl": true, + "ci_platforms": [ + "linux" + ], + "cpu_cost": 8, + "defaults": "boringssl", + "exclude_configs": [], + "flaky": false, + "language": "c++", + "name": "json_run_localhost", + "platforms": [ + "linux" + ], + "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_secure", + "timeout_seconds": 180 + }, + { + "args": [ + "--scenarios_json", "{\"scenarios\": [{\"name\": \"cpp_protobuf_sync_unary_ping_pong_secure\", \"warmup_seconds\": 0, \"benchmark_seconds\": 1, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": {\"use_test_ca\": true, \"server_host_override\": \"foo.test.google.fr\"}, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}]}" ], "boringssl": true, @@ -33850,6 +36954,27 @@ { "args": [ "--scenarios_json", + "{\"scenarios\": [{\"name\": \"cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_insecure\", \"warmup_seconds\": 0, \"benchmark_seconds\": 1, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 0, \"core_limit\": 0, \"security_params\": null, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"ASYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 64, \"async_client_threads\": 0, \"outstanding_rpcs_per_channel\": 100, \"rpc_type\": \"STREAMING\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 0}]}" + ], + "boringssl": true, + "ci_platforms": [ + "linux" + ], + "cpu_cost": 8, + "defaults": "boringssl", + "exclude_configs": [], + "flaky": false, + "language": "c++", + "name": "json_run_localhost", + "platforms": [ + "linux" + ], + "shortname": "json_run_localhost:cpp_protobuf_async_client_sync_server_streaming_qps_unconstrained_insecure", + "timeout_seconds": 180 + }, + { + "args": [ + "--scenarios_json", "{\"scenarios\": [{\"name\": \"cpp_protobuf_sync_unary_ping_pong_insecure\", \"warmup_seconds\": 0, \"benchmark_seconds\": 1, \"num_servers\": 1, \"server_config\": {\"async_server_threads\": 1, \"core_limit\": 1, \"security_params\": null, \"server_type\": \"SYNC_SERVER\"}, \"client_config\": {\"client_type\": \"SYNC_CLIENT\", \"security_params\": null, \"payload_config\": {\"simple_params\": {\"resp_size\": 0, \"req_size\": 0}}, \"client_channels\": 1, \"async_client_threads\": 1, \"outstanding_rpcs_per_channel\": 1, \"rpc_type\": \"UNARY\", \"load_params\": {\"closed_loop\": {}}, \"histogram_params\": {\"max_possible\": 60000000000.0, \"resolution\": 0.01}}, \"num_clients\": 1}]}" ], "boringssl": true, @@ -34026,6 +37151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34045,6 +37173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34064,6 +37195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34083,6 +37217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34102,6 +37239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34121,6 +37261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34140,6 +37283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34159,6 +37305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34178,6 +37327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34197,6 +37349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34216,6 +37371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34235,6 +37393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34254,6 +37415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34273,6 +37437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34292,6 +37459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34311,6 +37481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34330,6 +37503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34349,6 +37525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34368,6 +37547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34387,6 +37569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34406,6 +37591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34425,6 +37613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34444,6 +37635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34463,6 +37657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34482,6 +37679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34501,6 +37701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34520,6 +37723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34539,6 +37745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34558,6 +37767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34577,6 +37789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34596,6 +37811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34615,6 +37833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34634,6 +37855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34653,6 +37877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34672,6 +37899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34691,6 +37921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34710,6 +37943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34729,6 +37965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34748,6 +37987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34767,6 +38009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34786,6 +38031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34805,6 +38053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34824,6 +38075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34843,6 +38097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34862,6 +38119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34881,6 +38141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34900,6 +38163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34919,6 +38185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34938,6 +38207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34957,6 +38229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34976,6 +38251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -34995,6 +38273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35014,6 +38295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35033,6 +38317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35052,6 +38339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35071,6 +38361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35090,6 +38383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35109,6 +38405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35128,6 +38427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35147,6 +38449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35166,6 +38471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35185,6 +38493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35204,6 +38515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35223,6 +38537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35242,6 +38559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35261,6 +38581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35280,6 +38603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35299,6 +38625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35318,6 +38647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35337,6 +38669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35356,6 +38691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35375,6 +38713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35394,6 +38735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35413,6 +38757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35432,6 +38779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35451,6 +38801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35470,6 +38823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35489,6 +38845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35508,6 +38867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35527,6 +38889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35546,6 +38911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35565,6 +38933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35584,6 +38955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35603,6 +38977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35622,6 +38999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35641,6 +39021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35660,6 +39043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35679,6 +39065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35698,6 +39087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35717,6 +39109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35736,6 +39131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35755,6 +39153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35774,6 +39175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35793,6 +39197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35812,6 +39219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35831,6 +39241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35850,6 +39263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35869,6 +39285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35888,6 +39307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35907,6 +39329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35926,6 +39351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35945,6 +39373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35964,6 +39395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -35983,6 +39417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36002,6 +39439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36021,6 +39461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36040,6 +39483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36059,6 +39505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36078,6 +39527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36097,6 +39549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36116,6 +39571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36135,6 +39593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36154,6 +39615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36173,6 +39637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36192,6 +39659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36211,6 +39681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36230,6 +39703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36249,6 +39725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36268,6 +39747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36287,6 +39769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36306,6 +39791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36325,6 +39813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36344,6 +39835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36363,6 +39857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36382,6 +39879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36401,6 +39901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36420,6 +39923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36439,6 +39945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36458,6 +39967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36477,6 +39989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36496,6 +40011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36515,6 +40033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36534,6 +40055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36553,6 +40077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36572,6 +40099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36591,6 +40121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36610,6 +40143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36629,6 +40165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36648,6 +40187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36667,6 +40209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36686,6 +40231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36705,6 +40253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36724,6 +40275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36743,6 +40297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36762,6 +40319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36781,6 +40341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36800,6 +40363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36819,6 +40385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36838,6 +40407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36857,6 +40429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36876,6 +40451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36895,6 +40473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36914,6 +40495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36933,6 +40517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36952,6 +40539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36971,6 +40561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -36990,6 +40583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37009,6 +40605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37028,6 +40627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37047,6 +40649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37066,6 +40671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37085,6 +40693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37104,6 +40715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37123,6 +40737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37142,6 +40759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37161,6 +40781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37180,6 +40803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37199,6 +40825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37218,6 +40847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37237,6 +40869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37256,6 +40891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37275,6 +40913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37294,6 +40935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37313,6 +40957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37332,6 +40979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37351,6 +41001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37370,6 +41023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37389,6 +41045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37408,6 +41067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37427,6 +41089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37446,6 +41111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37465,6 +41133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37484,6 +41155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37503,6 +41177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37522,6 +41199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37541,6 +41221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37560,6 +41243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37579,6 +41265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37598,6 +41287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37617,6 +41309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37636,6 +41331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37655,6 +41353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37674,6 +41375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37693,6 +41397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37712,6 +41419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37731,6 +41441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37750,6 +41463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37769,6 +41485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37788,6 +41507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37807,6 +41529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37826,6 +41551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37845,6 +41573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37864,6 +41595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37883,6 +41617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37902,6 +41639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37921,6 +41661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37940,6 +41683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37959,6 +41705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37978,6 +41727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -37997,6 +41749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38016,6 +41771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38035,6 +41793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38054,6 +41815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38073,6 +41837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38092,6 +41859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38111,6 +41881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38130,6 +41903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38149,6 +41925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38168,6 +41947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38187,6 +41969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38206,6 +41991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38225,6 +42013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38244,6 +42035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38263,6 +42057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38282,6 +42079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38301,6 +42101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38320,6 +42123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38339,6 +42145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38358,6 +42167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38377,6 +42189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38396,6 +42211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38415,6 +42233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38434,6 +42255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38453,6 +42277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38472,6 +42299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38491,6 +42321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38510,6 +42343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38529,6 +42365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38548,6 +42387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38567,6 +42409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38586,6 +42431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38605,6 +42453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38624,6 +42475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38643,6 +42497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38662,6 +42519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38681,6 +42541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38700,6 +42563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38719,6 +42585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38738,6 +42607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38757,6 +42629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38776,6 +42651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38795,6 +42673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38814,6 +42695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38833,6 +42717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38852,6 +42739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38871,6 +42761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38890,6 +42783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38909,6 +42805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38928,6 +42827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38947,6 +42849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38966,6 +42871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -38985,6 +42893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39004,6 +42915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39023,6 +42937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39042,6 +42959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39061,6 +42981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39080,6 +43003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39099,6 +43025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39118,6 +43047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39137,6 +43069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39156,6 +43091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39175,6 +43113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39194,6 +43135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39213,6 +43157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39232,6 +43179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39251,6 +43201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39270,6 +43223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39289,6 +43245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39308,6 +43267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39327,6 +43289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39346,6 +43311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39365,6 +43333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39384,6 +43355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39403,6 +43377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39422,6 +43399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39441,6 +43421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39460,6 +43443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39479,6 +43465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39498,6 +43487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39517,6 +43509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39536,6 +43531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39555,6 +43553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39574,6 +43575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39593,6 +43597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39612,6 +43619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39631,6 +43641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39650,6 +43663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39669,6 +43685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39688,6 +43707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39707,6 +43729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39726,6 +43751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39745,6 +43773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39764,6 +43795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39783,6 +43817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39802,6 +43839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39821,6 +43861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39840,6 +43883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39859,6 +43905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39878,6 +43927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39897,6 +43949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39916,6 +43971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39935,6 +43993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39954,6 +44015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39973,6 +44037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -39992,6 +44059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40011,6 +44081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40030,6 +44103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40049,6 +44125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40068,6 +44147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40087,6 +44169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40106,6 +44191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40125,6 +44213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40144,6 +44235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40163,6 +44257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40182,6 +44279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40201,6 +44301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40220,6 +44323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40239,6 +44345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40258,6 +44367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40277,6 +44389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40296,6 +44411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40315,6 +44433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40334,6 +44455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40353,6 +44477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40372,6 +44499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40391,6 +44521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40410,6 +44543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40429,6 +44565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40448,6 +44587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40467,6 +44609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40486,6 +44631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40505,6 +44653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40524,6 +44675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40543,6 +44697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40562,6 +44719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40581,6 +44741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40600,6 +44763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40619,6 +44785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40638,6 +44807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40657,6 +44829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40676,6 +44851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40695,6 +44873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40714,6 +44895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40733,6 +44917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40752,6 +44939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40771,6 +44961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40790,6 +44983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40809,6 +45005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40828,6 +45027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40847,6 +45049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40866,6 +45071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40885,6 +45093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40904,6 +45115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40923,6 +45137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40942,6 +45159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40961,6 +45181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40980,6 +45203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -40999,6 +45225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41018,6 +45247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41037,6 +45269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41056,6 +45291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41075,6 +45313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41094,6 +45335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41113,6 +45357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41132,6 +45379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41151,6 +45401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41170,6 +45423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41189,6 +45445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41208,6 +45467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41227,6 +45489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41246,6 +45511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41265,6 +45533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41284,6 +45555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41303,6 +45577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41322,6 +45599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41341,6 +45621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41360,6 +45643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41379,6 +45665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41398,6 +45687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41417,6 +45709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41436,6 +45731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41455,6 +45753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41474,6 +45775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41493,6 +45797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41512,6 +45819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41531,6 +45841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41550,6 +45863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41569,6 +45885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41588,6 +45907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41607,6 +45929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41626,6 +45951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41645,6 +45973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41664,6 +45995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41683,6 +46017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41702,6 +46039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41721,6 +46061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41740,6 +46083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41759,6 +46105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41778,6 +46127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41797,6 +46149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41816,6 +46171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41835,6 +46193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41854,6 +46215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41873,6 +46237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41892,6 +46259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41911,6 +46281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41930,6 +46303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41949,6 +46325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41968,6 +46347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -41987,6 +46369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42006,6 +46391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42025,6 +46413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42044,6 +46435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42063,6 +46457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42082,6 +46479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42101,6 +46501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42120,6 +46523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42139,6 +46545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42158,6 +46567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42177,6 +46589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42196,6 +46611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42215,6 +46633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42234,6 +46655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42253,6 +46677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42272,6 +46699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42291,6 +46721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42310,6 +46743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42329,6 +46765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42348,6 +46787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42367,6 +46809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42386,6 +46831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42405,6 +46853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42424,6 +46875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42443,6 +46897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42462,6 +46919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42481,6 +46941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42500,6 +46963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42519,6 +46985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42538,6 +47007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42557,6 +47029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42576,6 +47051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42595,6 +47073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42614,6 +47095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42633,6 +47117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42652,6 +47139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42671,6 +47161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42690,6 +47183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42709,6 +47205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42728,6 +47227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42747,6 +47249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42766,6 +47271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42785,6 +47293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42804,6 +47315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42823,6 +47337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42842,6 +47359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42861,6 +47381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42880,6 +47403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42899,6 +47425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42918,6 +47447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42937,6 +47469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42956,6 +47491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42975,6 +47513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -42994,6 +47535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43013,6 +47557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43032,6 +47579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43051,6 +47601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43070,6 +47623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43089,6 +47645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43108,6 +47667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43127,6 +47689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43146,6 +47711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43165,6 +47733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43184,6 +47755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43203,6 +47777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43222,6 +47799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43241,6 +47821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43260,6 +47843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43279,6 +47865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43298,6 +47887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43317,6 +47909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43336,6 +47931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43355,6 +47953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43374,6 +47975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43393,6 +47997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43412,6 +48019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43431,6 +48041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43450,6 +48063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43469,6 +48085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43488,6 +48107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43507,6 +48129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43526,6 +48151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43545,6 +48173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43564,6 +48195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43583,6 +48217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43602,6 +48239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43621,6 +48261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43640,6 +48283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43659,6 +48305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43678,6 +48327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43697,6 +48349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43716,6 +48371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43735,6 +48393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43754,6 +48415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43773,6 +48437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43792,6 +48459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43811,6 +48481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43830,6 +48503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43849,6 +48525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43868,6 +48547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43887,6 +48569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43906,6 +48591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43925,6 +48613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43944,6 +48635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43963,6 +48657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -43982,6 +48679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44001,6 +48701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44020,6 +48723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44039,6 +48745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44058,6 +48767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44077,6 +48789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44096,6 +48811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44115,6 +48833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44134,6 +48855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44153,6 +48877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44172,6 +48899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44191,6 +48921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44210,6 +48943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44229,6 +48965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44248,6 +48987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44267,6 +49009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44286,6 +49031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44305,6 +49053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44324,6 +49075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44343,6 +49097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44362,6 +49119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44381,6 +49141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44400,6 +49163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44419,6 +49185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44438,6 +49207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44457,6 +49229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44476,6 +49251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44495,6 +49273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44514,6 +49295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44533,6 +49317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44552,6 +49339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44571,6 +49361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44590,6 +49383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44609,6 +49405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44628,6 +49427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44647,6 +49449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44666,6 +49471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44685,6 +49493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44704,6 +49515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44723,6 +49537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44742,6 +49559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44761,6 +49581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44780,6 +49603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44799,6 +49625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44818,6 +49647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44837,6 +49669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44856,6 +49691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44875,6 +49713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44894,6 +49735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44913,6 +49757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44932,6 +49779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44951,6 +49801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44970,6 +49823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -44989,6 +49845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45008,6 +49867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45027,6 +49889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45046,6 +49911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45065,6 +49933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45084,6 +49955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45103,6 +49977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45122,6 +49999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45141,6 +50021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45160,6 +50043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45179,6 +50065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45198,6 +50087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45217,6 +50109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45236,6 +50131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45255,6 +50153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45274,6 +50175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45293,6 +50197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45312,6 +50219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45331,6 +50241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45350,6 +50263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45369,6 +50285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45388,6 +50307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45407,6 +50329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45426,6 +50351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45445,6 +50373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45464,6 +50395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45483,6 +50417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45502,6 +50439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45521,6 +50461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45540,6 +50483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45559,6 +50505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45578,6 +50527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45597,6 +50549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45616,6 +50571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45635,6 +50593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45654,6 +50615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45673,6 +50637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45692,6 +50659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45711,6 +50681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45730,6 +50703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45749,6 +50725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45768,6 +50747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45787,6 +50769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45806,6 +50791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45825,6 +50813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45844,6 +50835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45863,6 +50857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45882,6 +50879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45901,6 +50901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45920,6 +50923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45939,6 +50945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45958,6 +50967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45977,6 +50989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -45996,6 +51011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46015,6 +51033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46034,6 +51055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46053,6 +51077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46072,6 +51099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46091,6 +51121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46110,6 +51143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46129,6 +51165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46148,6 +51187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46167,6 +51209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46186,6 +51231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46205,6 +51253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46224,6 +51275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46243,6 +51297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46262,6 +51319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46281,6 +51341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46300,6 +51363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46319,6 +51385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46338,6 +51407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46357,6 +51429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46376,6 +51451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46395,6 +51473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46414,6 +51495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46433,6 +51517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46452,6 +51539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46471,6 +51561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46490,6 +51583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46509,6 +51605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46528,6 +51627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46547,6 +51649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46566,6 +51671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46585,6 +51693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46604,6 +51715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46623,6 +51737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46642,6 +51759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46661,6 +51781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46680,6 +51803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46699,6 +51825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46718,6 +51847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46737,6 +51869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46756,6 +51891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46775,6 +51913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46794,6 +51935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46813,6 +51957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46832,6 +51979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46851,6 +52001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46870,6 +52023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46889,6 +52045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46908,6 +52067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46927,6 +52089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46946,6 +52111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46965,6 +52133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -46984,6 +52155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47003,6 +52177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47022,6 +52199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47041,6 +52221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47060,6 +52243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47079,6 +52265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47098,6 +52287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47117,6 +52309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47136,6 +52331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47155,6 +52353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47174,6 +52375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47193,6 +52397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47212,6 +52419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47231,6 +52441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47250,6 +52463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47269,6 +52485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47288,6 +52507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47307,6 +52529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47326,6 +52551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47345,6 +52573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47364,6 +52595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47383,6 +52617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47402,6 +52639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47421,6 +52661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47440,6 +52683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47459,6 +52705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47478,6 +52727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47497,6 +52749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47516,6 +52771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47535,6 +52793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47554,6 +52815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47573,6 +52837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47592,6 +52859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47611,6 +52881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47630,6 +52903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47649,6 +52925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47668,6 +52947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47687,6 +52969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47706,6 +52991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47725,6 +53013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47744,6 +53035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47763,6 +53057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47782,6 +53079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47801,6 +53101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47820,6 +53123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47839,6 +53145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47858,6 +53167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47877,6 +53189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47896,6 +53211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47915,6 +53233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47934,6 +53255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47953,6 +53277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47972,6 +53299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -47991,6 +53321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48010,6 +53343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48029,6 +53365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48048,6 +53387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48067,6 +53409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48086,6 +53431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48105,6 +53453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48124,6 +53475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48143,6 +53497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48162,6 +53519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48181,6 +53541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48200,6 +53563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48219,6 +53585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48238,6 +53607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48257,6 +53629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48276,6 +53651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48295,6 +53673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48314,6 +53695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48333,6 +53717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48352,6 +53739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48371,6 +53761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48390,6 +53783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48409,6 +53805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48428,6 +53827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48447,6 +53849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48466,6 +53871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48485,6 +53893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48504,6 +53915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48523,6 +53937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48542,6 +53959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48561,6 +53981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48580,6 +54003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48599,6 +54025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48618,6 +54047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48637,6 +54069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48656,6 +54091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48675,6 +54113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48694,6 +54135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48713,6 +54157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48732,6 +54179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48751,6 +54201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48770,6 +54223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48789,6 +54245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48808,6 +54267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48827,6 +54289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48846,6 +54311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48865,6 +54333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48884,6 +54355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48903,6 +54377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48922,6 +54399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48941,6 +54421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48960,6 +54443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48979,6 +54465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -48998,6 +54487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49017,6 +54509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49036,6 +54531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49055,6 +54553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49074,6 +54575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49093,6 +54597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49112,6 +54619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49131,6 +54641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49150,6 +54663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49169,6 +54685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49188,6 +54707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49207,6 +54729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49226,6 +54751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49245,6 +54773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49264,6 +54795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49283,6 +54817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49302,6 +54839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49321,6 +54861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49340,6 +54883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49359,6 +54905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49378,6 +54927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49397,6 +54949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49416,6 +54971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49435,6 +54993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49454,6 +55015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49473,6 +55037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49492,6 +55059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49511,6 +55081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49530,6 +55103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49549,6 +55125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49568,6 +55147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49587,6 +55169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49606,6 +55191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49625,6 +55213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49644,6 +55235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49663,6 +55257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49682,6 +55279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49701,6 +55301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49720,6 +55323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49739,6 +55345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49758,6 +55367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49777,6 +55389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49796,6 +55411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49815,6 +55433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49834,6 +55455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49853,6 +55477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49872,6 +55499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49891,6 +55521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49910,6 +55543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49929,6 +55565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49948,6 +55587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49967,6 +55609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -49986,6 +55631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50005,6 +55653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50024,6 +55675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50043,6 +55697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50062,6 +55719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50081,6 +55741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50100,6 +55763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50119,6 +55785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50138,6 +55807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50157,6 +55829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50176,6 +55851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50195,6 +55873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50214,6 +55895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50233,6 +55917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50252,6 +55939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50271,6 +55961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50290,6 +55983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50309,6 +56005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50328,6 +56027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50347,6 +56049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50366,6 +56071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50385,6 +56093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50404,6 +56115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50423,6 +56137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50442,6 +56159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50461,6 +56181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50480,6 +56203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50499,6 +56225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50518,6 +56247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50537,6 +56269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50556,6 +56291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50575,6 +56313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50594,6 +56335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50613,6 +56357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50632,6 +56379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50651,6 +56401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50670,6 +56423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50689,6 +56445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50708,6 +56467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50727,6 +56489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50746,6 +56511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50765,6 +56533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50784,6 +56555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50803,6 +56577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50822,6 +56599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50841,6 +56621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50860,6 +56643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50879,6 +56665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50898,6 +56687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50917,6 +56709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50936,6 +56731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50955,6 +56753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50974,6 +56775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -50993,6 +56797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51012,6 +56819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51031,6 +56841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51050,6 +56863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51069,6 +56885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51088,6 +56907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51107,6 +56929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51126,6 +56951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51145,6 +56973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51164,6 +56995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51183,6 +57017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51202,6 +57039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51221,6 +57061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51240,6 +57083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51259,6 +57105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51278,6 +57127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51297,6 +57149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51316,6 +57171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51335,6 +57193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51354,6 +57215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51373,6 +57237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51392,6 +57259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51411,6 +57281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51430,6 +57303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51449,6 +57325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51468,6 +57347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51487,6 +57369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51506,6 +57391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51525,6 +57413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51544,6 +57435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51563,6 +57457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51582,6 +57479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51601,6 +57501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51620,6 +57523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51639,6 +57545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51658,6 +57567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51677,6 +57589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51696,6 +57611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51715,6 +57633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51734,6 +57655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51753,6 +57677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51772,6 +57699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51791,6 +57721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51810,6 +57743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51829,6 +57765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51848,6 +57787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51867,6 +57809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51886,6 +57831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51905,6 +57853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51924,6 +57875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51943,6 +57897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51962,6 +57919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -51981,6 +57941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52000,6 +57963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52019,6 +57985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52038,6 +58007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52057,6 +58029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52076,6 +58051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52095,6 +58073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52114,6 +58095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52133,6 +58117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52152,6 +58139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52171,6 +58161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52190,6 +58183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52209,6 +58205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52228,6 +58227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52247,6 +58249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52266,6 +58271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52285,6 +58293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52304,6 +58315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52323,6 +58337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52342,6 +58359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52361,6 +58381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52380,6 +58403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52399,6 +58425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52418,6 +58447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52437,6 +58469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52456,6 +58491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52475,6 +58513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52494,6 +58535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52513,6 +58557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52532,6 +58579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52551,6 +58601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52570,6 +58623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52589,6 +58645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52608,6 +58667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52627,6 +58689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52646,6 +58711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52665,6 +58733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52684,6 +58755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52703,6 +58777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52722,6 +58799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52741,6 +58821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52760,6 +58843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52779,6 +58865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52798,6 +58887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52817,6 +58909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52836,6 +58931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52855,6 +58953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52874,6 +58975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52893,6 +58997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52912,6 +59019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52931,6 +59041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52950,6 +59063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52969,6 +59085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -52988,6 +59107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53007,6 +59129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53026,6 +59151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53045,6 +59173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53064,6 +59195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53083,6 +59217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53102,6 +59239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53121,6 +59261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53140,6 +59283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53159,6 +59305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53178,6 +59327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53197,6 +59349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53216,6 +59371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53235,6 +59393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53254,6 +59415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53273,6 +59437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53292,6 +59459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53311,6 +59481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53330,6 +59503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53349,6 +59525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53368,6 +59547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53387,6 +59569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53406,6 +59591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53425,6 +59613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53444,6 +59635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53463,6 +59657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53482,6 +59679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53501,6 +59701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53520,6 +59723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53539,6 +59745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53558,6 +59767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53577,6 +59789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53596,6 +59811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53615,6 +59833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53634,6 +59855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53653,6 +59877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53672,6 +59899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53691,6 +59921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53710,6 +59943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53729,6 +59965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53748,6 +59987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53767,6 +60009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53786,6 +60031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53805,6 +60053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53824,6 +60075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53843,6 +60097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53862,6 +60119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53881,6 +60141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53900,6 +60163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53919,6 +60185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53938,6 +60207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53957,6 +60229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53976,6 +60251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -53995,6 +60273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54014,6 +60295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54033,6 +60317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54052,6 +60339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54071,6 +60361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54090,6 +60383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54109,6 +60405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54128,6 +60427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54147,6 +60449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54166,6 +60471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54185,6 +60493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54204,6 +60515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54223,6 +60537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54242,6 +60559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54261,6 +60581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54280,6 +60603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54299,6 +60625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54318,6 +60647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54337,6 +60669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54356,6 +60691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54375,6 +60713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54394,6 +60735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54413,6 +60757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54432,6 +60779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54451,6 +60801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54470,6 +60823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54489,6 +60845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54508,6 +60867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54527,6 +60889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54546,6 +60911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54565,6 +60933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54584,6 +60955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54603,6 +60977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54622,6 +60999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54641,6 +61021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54660,6 +61043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54679,6 +61065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54698,6 +61087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54717,6 +61109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54736,6 +61131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54755,6 +61153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54774,6 +61175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54793,6 +61197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54812,6 +61219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54831,6 +61241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54850,6 +61263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54869,6 +61285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54888,6 +61307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54907,6 +61329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54926,6 +61351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54945,6 +61373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54964,6 +61395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -54983,6 +61417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55002,6 +61439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55021,6 +61461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55040,6 +61483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55059,6 +61505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55078,6 +61527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55097,6 +61549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55116,6 +61571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55135,6 +61593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55154,6 +61615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55173,6 +61637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55192,6 +61659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55211,6 +61681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55230,6 +61703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55249,6 +61725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55268,6 +61747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55287,6 +61769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55306,6 +61791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55325,6 +61813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55344,6 +61835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55363,6 +61857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55382,6 +61879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55401,6 +61901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55420,6 +61923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55439,6 +61945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55458,6 +61967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55477,6 +61989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55496,6 +62011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55515,6 +62033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55534,6 +62055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55553,6 +62077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55572,6 +62099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55591,6 +62121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55610,6 +62143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55629,6 +62165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55648,6 +62187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55667,6 +62209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55686,6 +62231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55705,6 +62253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55724,6 +62275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55743,6 +62297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55762,6 +62319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55781,6 +62341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55800,6 +62363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55819,6 +62385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55838,6 +62407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55857,6 +62429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55876,6 +62451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55895,6 +62473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55914,6 +62495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55933,6 +62517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55952,6 +62539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55971,6 +62561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -55990,6 +62583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56009,6 +62605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56028,6 +62627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56047,6 +62649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56066,6 +62671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56085,6 +62693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56104,6 +62715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56123,6 +62737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56142,6 +62759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56161,6 +62781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56180,6 +62803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56199,6 +62825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56218,6 +62847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56237,6 +62869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56256,6 +62891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56275,6 +62913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56294,6 +62935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56313,6 +62957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56332,6 +62979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56351,6 +63001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56370,6 +63023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56389,6 +63045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56408,6 +63067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56427,6 +63089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56446,6 +63111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56465,6 +63133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56484,6 +63155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56503,6 +63177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56522,6 +63199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56541,6 +63221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56560,6 +63243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56579,6 +63265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56598,6 +63287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56617,6 +63309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56636,6 +63331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56655,6 +63353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56674,6 +63375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56693,6 +63397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56712,6 +63419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56731,6 +63441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56750,6 +63463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56769,6 +63485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56788,6 +63507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56807,6 +63529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56826,6 +63551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56845,6 +63573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56864,6 +63595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56883,6 +63617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56902,6 +63639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56921,6 +63661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56940,6 +63683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56959,6 +63705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56978,6 +63727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -56997,6 +63749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57016,6 +63771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57035,6 +63793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57054,6 +63815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57073,6 +63837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57092,6 +63859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57111,6 +63881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57130,6 +63903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57149,6 +63925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57168,6 +63947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57187,6 +63969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57206,6 +63991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57225,6 +64013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57244,6 +64035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57263,6 +64057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57282,6 +64079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57301,6 +64101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57320,6 +64123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57339,6 +64145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57358,6 +64167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57377,6 +64189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57396,6 +64211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57415,6 +64233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57434,6 +64255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57453,6 +64277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57472,6 +64299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57491,6 +64321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57510,6 +64343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57529,6 +64365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57548,6 +64387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57567,6 +64409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57586,6 +64431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57605,6 +64453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57624,6 +64475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57643,6 +64497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57662,6 +64519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57681,6 +64541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57700,6 +64563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57719,6 +64585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57738,6 +64607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57757,6 +64629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57776,6 +64651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57795,6 +64673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57814,6 +64695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57833,6 +64717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57852,6 +64739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57871,6 +64761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57890,6 +64783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57909,6 +64805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57928,6 +64827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57947,6 +64849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57966,6 +64871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -57985,6 +64893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58004,6 +64915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58023,6 +64937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58042,6 +64959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58061,6 +64981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58080,6 +65003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58099,6 +65025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58118,6 +65047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58137,6 +65069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58156,6 +65091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58175,6 +65113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58194,6 +65135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58213,6 +65157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58232,6 +65179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58251,6 +65201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58270,6 +65223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58289,6 +65245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58308,6 +65267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58327,6 +65289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58346,6 +65311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58365,6 +65333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58384,6 +65355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58403,6 +65377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58422,6 +65399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58441,6 +65421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58460,6 +65443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58479,6 +65465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58498,6 +65487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58517,6 +65509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58536,6 +65531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58555,6 +65553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58574,6 +65575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58593,6 +65597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58612,6 +65619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58631,6 +65641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58650,6 +65663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58669,6 +65685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58688,6 +65707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58707,6 +65729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58726,6 +65751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58745,6 +65773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58764,6 +65795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58783,6 +65817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58802,6 +65839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58821,6 +65861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58840,6 +65883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58859,6 +65905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58878,6 +65927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58897,6 +65949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58916,6 +65971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58935,6 +65993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58954,6 +66015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58973,6 +66037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -58992,6 +66059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59011,6 +66081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59030,6 +66103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59049,6 +66125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59068,6 +66147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59087,6 +66169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59106,6 +66191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59125,6 +66213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59144,6 +66235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59163,6 +66257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59182,6 +66279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59201,6 +66301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59220,6 +66323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59239,6 +66345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59258,6 +66367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59277,6 +66389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59296,6 +66411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59315,6 +66433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59334,6 +66455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59353,6 +66477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59372,6 +66499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59391,6 +66521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59410,6 +66543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59429,6 +66565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59448,6 +66587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59467,6 +66609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59486,6 +66631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59505,6 +66653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59524,6 +66675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59543,6 +66697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59562,6 +66719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59581,6 +66741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59600,6 +66763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59619,6 +66785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59638,6 +66807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59657,6 +66829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59676,6 +66851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59695,6 +66873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59714,6 +66895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59733,6 +66917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59752,6 +66939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59771,6 +66961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59790,6 +66983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59809,6 +67005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59828,6 +67027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59847,6 +67049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59866,6 +67071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59885,6 +67093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59904,6 +67115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59923,6 +67137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59942,6 +67159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59961,6 +67181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59980,6 +67203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -59999,6 +67225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -60018,6 +67247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -60037,6 +67269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "api_fuzzer_one_entry", @@ -60056,6 +67291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60075,6 +67313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60094,6 +67335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60113,6 +67357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60132,6 +67379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60151,6 +67401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60170,6 +67423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60189,6 +67445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60208,6 +67467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60227,6 +67489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60246,6 +67511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60265,6 +67533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60284,6 +67555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60303,6 +67577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60322,6 +67599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60341,6 +67621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60360,6 +67643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60379,6 +67665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60398,6 +67687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60417,6 +67709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60436,6 +67731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60455,6 +67753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60474,6 +67775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60493,6 +67797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60512,6 +67819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60531,6 +67841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60550,6 +67863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60569,6 +67885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60588,6 +67907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60607,6 +67929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60626,6 +67951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60645,6 +67973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60664,6 +67995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60683,6 +68017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60702,6 +68039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60721,6 +68061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60740,6 +68083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60759,6 +68105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60778,6 +68127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60797,6 +68149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60816,6 +68171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60835,6 +68193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60854,6 +68215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60873,6 +68237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60892,6 +68259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60911,6 +68281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60930,6 +68303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60949,6 +68325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60968,6 +68347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -60987,6 +68369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61006,6 +68391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61025,6 +68413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61044,6 +68435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61063,6 +68457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61082,6 +68479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61101,6 +68501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61120,6 +68523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61139,6 +68545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61158,6 +68567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61177,6 +68589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61196,6 +68611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61215,6 +68633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61234,6 +68655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61253,6 +68677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61272,6 +68699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61291,6 +68721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61310,6 +68743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61329,6 +68765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61348,6 +68787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61367,6 +68809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61386,6 +68831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61405,6 +68853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61424,6 +68875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61443,6 +68897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61462,6 +68919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61481,6 +68941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61500,6 +68963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61519,6 +68985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61538,6 +69007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61557,6 +69029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61576,6 +69051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61595,6 +69073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61614,6 +69095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61633,6 +69117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61652,6 +69139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61671,6 +69161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61690,6 +69183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61709,6 +69205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61728,6 +69227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61747,6 +69249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61766,6 +69271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61785,6 +69293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61804,6 +69315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61823,6 +69337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61842,6 +69359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61861,6 +69381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61880,6 +69403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61899,6 +69425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61918,6 +69447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61937,6 +69469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61956,6 +69491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61975,6 +69513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -61994,6 +69535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62013,6 +69557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62032,6 +69579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62051,6 +69601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62070,6 +69623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62089,6 +69645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62108,6 +69667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62127,6 +69689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62146,6 +69711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62165,6 +69733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62184,6 +69755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62203,6 +69777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62222,6 +69799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62241,6 +69821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62260,6 +69843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62279,6 +69865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62298,6 +69887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62317,6 +69909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62336,6 +69931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62355,6 +69953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62374,6 +69975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62393,6 +69997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62412,6 +70019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62431,6 +70041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62450,6 +70063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62469,6 +70085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62488,6 +70107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62507,6 +70129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62526,6 +70151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62545,6 +70173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62564,6 +70195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62583,6 +70217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62602,6 +70239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62621,6 +70261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62640,6 +70283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62659,6 +70305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62678,6 +70327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62697,6 +70349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62716,6 +70371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62735,6 +70393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62754,6 +70415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62773,6 +70437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62792,6 +70459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62811,6 +70481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62830,6 +70503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62849,6 +70525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62868,6 +70547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62887,6 +70569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62906,6 +70591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62925,6 +70613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62944,6 +70635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62963,6 +70657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -62982,6 +70679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63001,6 +70701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63020,6 +70723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63039,6 +70745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63058,6 +70767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63077,6 +70789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63096,6 +70811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63115,6 +70833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63134,6 +70855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63153,6 +70877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63172,6 +70899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63191,6 +70921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63210,6 +70943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63229,6 +70965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63248,6 +70987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63267,6 +71009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63286,6 +71031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63305,6 +71053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63324,6 +71075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63343,6 +71097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63362,6 +71119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63381,6 +71141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63400,6 +71163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63419,6 +71185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63438,6 +71207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63457,6 +71229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63476,6 +71251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63495,6 +71273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63514,6 +71295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63533,6 +71317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63552,6 +71339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63571,6 +71361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63590,6 +71383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63609,6 +71405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63628,6 +71427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63647,6 +71449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63666,6 +71471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63685,6 +71493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63704,6 +71515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63723,6 +71537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63742,6 +71559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63761,6 +71581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63780,6 +71603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63799,6 +71625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63818,6 +71647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63837,6 +71669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63856,6 +71691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63875,6 +71713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63894,6 +71735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63913,6 +71757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63932,6 +71779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63951,6 +71801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63970,6 +71823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -63989,6 +71845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64008,6 +71867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64027,6 +71889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64046,6 +71911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64065,6 +71933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64084,6 +71955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64103,6 +71977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64122,6 +71999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64141,6 +72021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64160,6 +72043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64179,6 +72065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64198,6 +72087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64217,6 +72109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64236,6 +72131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64255,6 +72153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64274,6 +72175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64293,6 +72197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64312,6 +72219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64331,6 +72241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64350,6 +72263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64369,6 +72285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64388,6 +72307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64407,6 +72329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64426,6 +72351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64445,6 +72373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64464,6 +72395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64483,6 +72417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64502,6 +72439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64521,6 +72461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64540,6 +72483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64559,6 +72505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64578,6 +72527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64597,6 +72549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64616,6 +72571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64635,6 +72593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64654,6 +72615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64673,6 +72637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64692,6 +72659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64711,6 +72681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64730,6 +72703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64749,6 +72725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64768,6 +72747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64787,6 +72769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64806,6 +72791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64825,6 +72813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64844,6 +72835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64863,6 +72857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64882,6 +72879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64901,6 +72901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64920,6 +72923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64939,6 +72945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64958,6 +72967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64977,6 +72989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -64996,6 +73011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65015,6 +73033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65034,6 +73055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65053,6 +73077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65072,6 +73099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65091,6 +73121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65110,6 +73143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65129,6 +73165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65148,6 +73187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65167,6 +73209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65186,6 +73231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65205,6 +73253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65224,6 +73275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65243,6 +73297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65262,6 +73319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65281,6 +73341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65300,6 +73363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65319,6 +73385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65338,6 +73407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65357,6 +73429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65376,6 +73451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65395,6 +73473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65414,6 +73495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65433,6 +73517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65452,6 +73539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65471,6 +73561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65490,6 +73583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65509,6 +73605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65528,6 +73627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65547,6 +73649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65566,6 +73671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65585,6 +73693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65604,6 +73715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65623,6 +73737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65642,6 +73759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65661,6 +73781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65680,6 +73803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65699,6 +73825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65718,6 +73847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65737,6 +73869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65756,6 +73891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65775,6 +73913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65794,6 +73935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65813,6 +73957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65832,6 +73979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65851,6 +74001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65870,6 +74023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65889,6 +74045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65908,6 +74067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65927,6 +74089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65946,6 +74111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65965,6 +74133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -65984,6 +74155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66003,6 +74177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66022,6 +74199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66041,6 +74221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66060,6 +74243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66079,6 +74265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66098,6 +74287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66117,6 +74309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66136,6 +74331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66155,6 +74353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66174,6 +74375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66193,6 +74397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66212,6 +74419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66231,6 +74441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66250,6 +74463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66269,6 +74485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66288,6 +74507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66307,6 +74529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66326,6 +74551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66345,6 +74573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66364,6 +74595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66383,6 +74617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66402,6 +74639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66421,6 +74661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66440,6 +74683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66459,6 +74705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66478,6 +74727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66497,6 +74749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66516,6 +74771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66535,6 +74793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66554,6 +74815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66573,6 +74837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66592,6 +74859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66611,6 +74881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66630,6 +74903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66649,6 +74925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66668,6 +74947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66687,6 +74969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66706,6 +74991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66725,6 +75013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66744,6 +75035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66763,6 +75057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66782,6 +75079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66801,6 +75101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66820,6 +75123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66839,6 +75145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66858,6 +75167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66877,6 +75189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66896,6 +75211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66915,6 +75233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66934,6 +75255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66953,6 +75277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66972,6 +75299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -66991,6 +75321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67010,6 +75343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67029,6 +75365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67048,6 +75387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67067,6 +75409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67086,6 +75431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67105,6 +75453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67124,6 +75475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67143,6 +75497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67162,6 +75519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67181,6 +75541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67200,6 +75563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67219,6 +75585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67238,6 +75607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67257,6 +75629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67276,6 +75651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67295,6 +75673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67314,6 +75695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67333,6 +75717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67352,6 +75739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67371,6 +75761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67390,6 +75783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67409,6 +75805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67428,6 +75827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67447,6 +75849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67466,6 +75871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67485,6 +75893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67504,6 +75915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67523,6 +75937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67542,6 +75959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67561,6 +75981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67580,6 +76003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67599,6 +76025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67618,6 +76047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67637,6 +76069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67656,6 +76091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67675,6 +76113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67694,6 +76135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67713,6 +76157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67732,6 +76179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67751,6 +76201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67770,6 +76223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67789,6 +76245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67808,6 +76267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67827,6 +76289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67846,6 +76311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67865,6 +76333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67884,6 +76355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67903,6 +76377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67922,6 +76399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67941,6 +76421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67960,6 +76443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67979,6 +76465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -67998,6 +76487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68017,6 +76509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68036,6 +76531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68055,6 +76553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68074,6 +76575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68093,6 +76597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68112,6 +76619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68131,6 +76641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68150,6 +76663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68169,6 +76685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68188,6 +76707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68207,6 +76729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68226,6 +76751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68245,6 +76773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68264,6 +76795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68283,6 +76817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68302,6 +76839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68321,6 +76861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68340,6 +76883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68359,6 +76905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68378,6 +76927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68397,6 +76949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68416,6 +76971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68435,6 +76993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68454,6 +77015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68473,6 +77037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68492,6 +77059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68511,6 +77081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68530,6 +77103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68549,6 +77125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68568,6 +77147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68587,6 +77169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68606,6 +77191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68625,6 +77213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68644,6 +77235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68663,6 +77257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68682,6 +77279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68701,6 +77301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68720,6 +77323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68739,6 +77345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68758,6 +77367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68777,6 +77389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68796,6 +77411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68815,6 +77433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68834,6 +77455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68853,6 +77477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68872,6 +77499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68891,6 +77521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68910,6 +77543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68929,6 +77565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68948,6 +77587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68967,6 +77609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -68986,6 +77631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69005,6 +77653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69024,6 +77675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69043,6 +77697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69062,6 +77719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69081,6 +77741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69100,6 +77763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69119,6 +77785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69138,6 +77807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69157,6 +77829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69176,6 +77851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69195,6 +77873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69214,6 +77895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69233,6 +77917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69252,6 +77939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69271,6 +77961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69290,6 +77983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69309,6 +78005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69328,6 +78027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69347,6 +78049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69366,6 +78071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69385,6 +78093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69404,6 +78115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69423,6 +78137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69442,6 +78159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69461,6 +78181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69480,6 +78203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69499,6 +78225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69518,6 +78247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69537,6 +78269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69556,6 +78291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69575,6 +78313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69594,6 +78335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69613,6 +78357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69632,6 +78379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69651,6 +78401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69670,6 +78423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69689,6 +78445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69708,6 +78467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69727,6 +78489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69746,6 +78511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69765,6 +78533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69784,6 +78555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69803,6 +78577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69822,6 +78599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69841,6 +78621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69860,6 +78643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69879,6 +78665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69898,6 +78687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69917,6 +78709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69936,6 +78731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69955,6 +78753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69974,6 +78775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -69993,6 +78797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70012,6 +78819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70031,6 +78841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70050,6 +78863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70069,6 +78885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70088,6 +78907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70107,6 +78929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70126,6 +78951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70145,6 +78973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70164,6 +78995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70183,6 +79017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70202,6 +79039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70221,6 +79061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70240,6 +79083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70259,6 +79105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70278,6 +79127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70297,6 +79149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70316,6 +79171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70335,6 +79193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70354,6 +79215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70373,6 +79237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70392,6 +79259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70411,6 +79281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70430,6 +79303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70449,6 +79325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70468,6 +79347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70487,6 +79369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70506,6 +79391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70525,6 +79413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70544,6 +79435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70563,6 +79457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70582,6 +79479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70601,6 +79501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70620,6 +79523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70639,6 +79545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70658,6 +79567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70677,6 +79589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70696,6 +79611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70715,6 +79633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70734,6 +79655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70753,6 +79677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70772,6 +79699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70791,6 +79721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70810,6 +79743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70829,6 +79765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70848,6 +79787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70867,6 +79809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70886,6 +79831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70905,6 +79853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70924,6 +79875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70943,6 +79897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70962,6 +79919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -70981,6 +79941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71000,6 +79963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71019,6 +79985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71038,6 +80007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71057,6 +80029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71076,6 +80051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71095,6 +80073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71114,6 +80095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71133,6 +80117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71152,6 +80139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71171,6 +80161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71190,6 +80183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71209,6 +80205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71228,6 +80227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71247,6 +80249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71266,6 +80271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71285,6 +80293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71304,6 +80315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71323,6 +80337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71342,6 +80359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71361,6 +80381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71380,6 +80403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71399,6 +80425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "client_fuzzer_one_entry", @@ -71418,6 +80447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71437,6 +80469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71456,6 +80491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71475,6 +80513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71494,6 +80535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71513,6 +80557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71532,6 +80579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71551,6 +80601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71570,6 +80623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71589,6 +80645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71608,6 +80667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71627,6 +80689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71646,6 +80711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71665,6 +80733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71684,6 +80755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71703,6 +80777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71722,6 +80799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71741,6 +80821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71760,6 +80843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71779,6 +80865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71798,6 +80887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71817,6 +80909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71836,6 +80931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71855,6 +80953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71874,6 +80975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71893,6 +80997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71912,6 +81019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71931,6 +81041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71950,6 +81063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71969,6 +81085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -71988,6 +81107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72007,6 +81129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72026,6 +81151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72045,6 +81173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72064,6 +81195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72083,6 +81217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72102,6 +81239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72121,6 +81261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72140,6 +81283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72159,6 +81305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72178,6 +81327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72197,6 +81349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72216,6 +81371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72235,6 +81393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72254,6 +81415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72273,6 +81437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72292,6 +81459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72311,6 +81481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72330,6 +81503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72349,6 +81525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72368,6 +81547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72387,6 +81569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72406,6 +81591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72425,6 +81613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72444,6 +81635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72463,6 +81657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72482,6 +81679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72501,6 +81701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72520,6 +81723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72539,6 +81745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72558,6 +81767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72577,6 +81789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72596,6 +81811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72615,6 +81833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72634,6 +81855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72653,6 +81877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72672,6 +81899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72691,6 +81921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72710,6 +81943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72729,6 +81965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72748,6 +81987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72767,6 +82009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72786,6 +82031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72805,6 +82053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72824,6 +82075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72843,6 +82097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72862,6 +82119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72881,6 +82141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72900,6 +82163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72919,6 +82185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72938,6 +82207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72957,6 +82229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72976,6 +82251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -72995,6 +82273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73014,6 +82295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73033,6 +82317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73052,6 +82339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73071,6 +82361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73090,6 +82383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73109,6 +82405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73128,6 +82427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73147,6 +82449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73166,6 +82471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73185,6 +82493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73204,6 +82515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73223,6 +82537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73242,6 +82559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73261,6 +82581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73280,6 +82603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73299,6 +82625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73318,6 +82647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73337,6 +82669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73356,6 +82691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73375,6 +82713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73394,6 +82735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73413,6 +82757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73432,6 +82779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73451,6 +82801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73470,6 +82823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73489,6 +82845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73508,6 +82867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73527,6 +82889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73546,6 +82911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73565,6 +82933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73584,6 +82955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73603,6 +82977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73622,6 +82999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73641,6 +83021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73660,6 +83043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73679,6 +83065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73698,6 +83087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73717,6 +83109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73736,6 +83131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73755,6 +83153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73774,6 +83175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73793,6 +83197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73812,6 +83219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73831,6 +83241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73850,6 +83263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73869,6 +83285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73888,6 +83307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73907,6 +83329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73926,6 +83351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73945,6 +83373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73964,6 +83395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -73983,6 +83417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74002,6 +83439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74021,6 +83461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74040,6 +83483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74059,6 +83505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74078,6 +83527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74097,6 +83549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74116,6 +83571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74135,6 +83593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74154,6 +83615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74173,6 +83637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74192,6 +83659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74211,6 +83681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74230,6 +83703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74249,6 +83725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74268,6 +83747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74287,6 +83769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74306,6 +83791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74325,6 +83813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74344,6 +83835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74363,6 +83857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74382,6 +83879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74401,6 +83901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74420,6 +83923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74439,6 +83945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74458,6 +83967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74477,6 +83989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74496,6 +84011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74515,6 +84033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74534,6 +84055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74553,6 +84077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74572,6 +84099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74591,6 +84121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74610,6 +84143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74629,6 +84165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74648,6 +84187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74667,6 +84209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74686,6 +84231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74705,6 +84253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74724,6 +84275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74743,6 +84297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74762,6 +84319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74781,6 +84341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74800,6 +84363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74819,6 +84385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74838,6 +84407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74857,6 +84429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74876,6 +84451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74895,6 +84473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74914,6 +84495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74933,6 +84517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74952,6 +84539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74971,6 +84561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -74990,6 +84583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75009,6 +84605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75028,6 +84627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75047,6 +84649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75066,6 +84671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75085,6 +84693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75104,6 +84715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75123,6 +84737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75142,6 +84759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75161,6 +84781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75180,6 +84803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75199,6 +84825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75218,6 +84847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75237,6 +84869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75256,6 +84891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75275,6 +84913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75294,6 +84935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75313,6 +84957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75332,6 +84979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75351,6 +85001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75370,6 +85023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75389,6 +85045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75408,6 +85067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75427,6 +85089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75446,6 +85111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75465,6 +85133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75484,6 +85155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75503,6 +85177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75522,6 +85199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75541,6 +85221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75560,6 +85243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75579,6 +85265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75598,6 +85287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75617,6 +85309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75636,6 +85331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75655,6 +85353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75674,6 +85375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75693,6 +85397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75712,6 +85419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75731,6 +85441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75750,6 +85463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75769,6 +85485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75788,6 +85507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75807,6 +85529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75826,6 +85551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75845,6 +85573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75864,6 +85595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75883,6 +85617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75902,6 +85639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75921,6 +85661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75940,6 +85683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75959,6 +85705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75978,6 +85727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -75997,6 +85749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76016,6 +85771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76035,6 +85793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76054,6 +85815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76073,6 +85837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76092,6 +85859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76111,6 +85881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76130,6 +85903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76149,6 +85925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76168,6 +85947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76187,6 +85969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76206,6 +85991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76225,6 +86013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76244,6 +86035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76263,6 +86057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76282,6 +86079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76301,6 +86101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76320,6 +86123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76339,6 +86145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76358,6 +86167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76377,6 +86189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76396,6 +86211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76415,6 +86233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76434,6 +86255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76453,6 +86277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76472,6 +86299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76491,6 +86321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76510,6 +86343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76529,6 +86365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76548,6 +86387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76567,6 +86409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76586,6 +86431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76605,6 +86453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76624,6 +86475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76643,6 +86497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76662,6 +86519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76681,6 +86541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76700,6 +86563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76719,6 +86585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76738,6 +86607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76757,6 +86629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76776,6 +86651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76795,6 +86673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76814,6 +86695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76833,6 +86717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76852,6 +86739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76871,6 +86761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76890,6 +86783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76909,6 +86805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76928,6 +86827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76947,6 +86849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76966,6 +86871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -76985,6 +86893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77004,6 +86915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77023,6 +86937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77042,6 +86959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77061,6 +86981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77080,6 +87003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77099,6 +87025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77118,6 +87047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77137,6 +87069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77156,6 +87091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77175,6 +87113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77194,6 +87135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77213,6 +87157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77232,6 +87179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77251,6 +87201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77270,6 +87223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77289,6 +87245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77308,6 +87267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77327,6 +87289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77346,6 +87311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77365,6 +87333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77384,6 +87355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77403,6 +87377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77422,6 +87399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77441,6 +87421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77460,6 +87443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77479,6 +87465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77498,6 +87487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77517,6 +87509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77536,6 +87531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77555,6 +87553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77574,6 +87575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77593,6 +87597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77612,6 +87619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77631,6 +87641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "hpack_parser_fuzzer_test_one_entry", @@ -77650,6 +87663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77669,6 +87685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77688,6 +87707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77707,6 +87729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77726,6 +87751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77745,6 +87773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77764,6 +87795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77783,6 +87817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77802,6 +87839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77821,6 +87861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77840,6 +87883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77859,6 +87905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77878,6 +87927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77897,6 +87949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77916,6 +87971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77935,6 +87993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77954,6 +88015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77973,6 +88037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -77992,6 +88059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78011,6 +88081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78030,6 +88103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78049,6 +88125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78068,6 +88147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78087,6 +88169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78106,6 +88191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78125,6 +88213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78144,6 +88235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78163,6 +88257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78182,6 +88279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78201,6 +88301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78220,6 +88323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78239,6 +88345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78258,6 +88367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78277,6 +88389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78296,6 +88411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78315,6 +88433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78334,6 +88455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78353,6 +88477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78372,6 +88499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78391,6 +88521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78410,6 +88543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78429,6 +88565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78448,6 +88587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78467,6 +88609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78486,6 +88631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78505,6 +88653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78524,6 +88675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78543,6 +88697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78562,6 +88719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78581,6 +88741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78600,6 +88763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78619,6 +88785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78638,6 +88807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78657,6 +88829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78676,6 +88851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78695,6 +88873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78714,6 +88895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78733,6 +88917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78752,6 +88939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78771,6 +88961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78790,6 +88983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78809,6 +89005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78828,6 +89027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78847,6 +89049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78866,6 +89071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78885,6 +89093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78904,6 +89115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78923,6 +89137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78942,6 +89159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78961,6 +89181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78980,6 +89203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -78999,6 +89225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79018,6 +89247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79037,6 +89269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79056,6 +89291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79075,6 +89313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79094,6 +89335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79113,6 +89357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79132,6 +89379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79151,6 +89401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79170,6 +89423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79189,6 +89445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79208,6 +89467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79227,6 +89489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79246,6 +89511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79265,6 +89533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79284,6 +89555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79303,6 +89577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79322,6 +89599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79341,6 +89621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79360,6 +89643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79379,6 +89665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79398,6 +89687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79417,6 +89709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79436,6 +89731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79455,6 +89753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79474,6 +89775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79493,6 +89797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79512,6 +89819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79531,6 +89841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79550,6 +89863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79569,6 +89885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79588,6 +89907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79607,6 +89929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79626,6 +89951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79645,6 +89973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79664,6 +89995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79683,6 +90017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79702,6 +90039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79721,6 +90061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79740,6 +90083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79759,6 +90105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79778,6 +90127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79797,6 +90149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79816,6 +90171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79835,6 +90193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79854,6 +90215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79873,6 +90237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79892,6 +90259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79911,6 +90281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79930,6 +90303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79949,6 +90325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79968,6 +90347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -79987,6 +90369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80006,6 +90391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80025,6 +90413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80044,6 +90435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80063,6 +90457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80082,6 +90479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80101,6 +90501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80120,6 +90523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80139,6 +90545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80158,6 +90567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80177,6 +90589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80196,6 +90611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80215,6 +90633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80234,6 +90655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80253,6 +90677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80272,6 +90699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80291,6 +90721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80310,6 +90743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80329,6 +90765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80348,6 +90787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80367,6 +90809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80386,6 +90831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80405,6 +90853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80424,6 +90875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80443,6 +90897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80462,6 +90919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80481,6 +90941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80500,6 +90963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80519,6 +90985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80538,6 +91007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80557,6 +91029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80576,6 +91051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80595,6 +91073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80614,6 +91095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80633,6 +91117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80652,6 +91139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80671,6 +91161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80690,6 +91183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80709,6 +91205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80728,6 +91227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80747,6 +91249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80766,6 +91271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80785,6 +91293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80804,6 +91315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80823,6 +91337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80842,6 +91359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80861,6 +91381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80880,6 +91403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80899,6 +91425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80918,6 +91447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80937,6 +91469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80956,6 +91491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80975,6 +91513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -80994,6 +91535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81013,6 +91557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81032,6 +91579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81051,6 +91601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81070,6 +91623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81089,6 +91645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81108,6 +91667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81127,6 +91689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81146,6 +91711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81165,6 +91733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81184,6 +91755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81203,6 +91777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81222,6 +91799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81241,6 +91821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81260,6 +91843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81279,6 +91865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81298,6 +91887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81317,6 +91909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81336,6 +91931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81355,6 +91953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81374,6 +91975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81393,6 +91997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81412,6 +92019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81431,6 +92041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81450,6 +92063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81469,6 +92085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81488,6 +92107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81507,6 +92129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81526,6 +92151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81545,6 +92173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81564,6 +92195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81583,6 +92217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81602,6 +92239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81621,6 +92261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81640,6 +92283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81659,6 +92305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81678,6 +92327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81697,6 +92349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81716,6 +92371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81735,6 +92393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81754,6 +92415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81773,6 +92437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81792,6 +92459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81811,6 +92481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81830,6 +92503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81849,6 +92525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81868,6 +92547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81887,6 +92569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81906,6 +92591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81925,6 +92613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81944,6 +92635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81963,6 +92657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -81982,6 +92679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82001,6 +92701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82020,6 +92723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82039,6 +92745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82058,6 +92767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82077,6 +92789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82096,6 +92811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82115,6 +92833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82134,6 +92855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82153,6 +92877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82172,6 +92899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82191,6 +92921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82210,6 +92943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82229,6 +92965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82248,6 +92987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82267,6 +93009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82286,6 +93031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82305,6 +93053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82324,6 +93075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82343,6 +93097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82362,6 +93119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82381,6 +93141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82400,6 +93163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82419,6 +93185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82438,6 +93207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82457,6 +93229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82476,6 +93251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82495,6 +93273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82514,6 +93295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82533,6 +93317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82552,6 +93339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82571,6 +93361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82590,6 +93383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82609,6 +93405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82628,6 +93427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82647,6 +93449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82666,6 +93471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82685,6 +93493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82704,6 +93515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82723,6 +93537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82742,6 +93559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82761,6 +93581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82780,6 +93603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82799,6 +93625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82818,6 +93647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82837,6 +93669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82856,6 +93691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82875,6 +93713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82894,6 +93735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82913,6 +93757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82932,6 +93779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82951,6 +93801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82970,6 +93823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -82989,6 +93845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83008,6 +93867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83027,6 +93889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83046,6 +93911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83065,6 +93933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83084,6 +93955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83103,6 +93977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83122,6 +93999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83141,6 +94021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83160,6 +94043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83179,6 +94065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83198,6 +94087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83217,6 +94109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83236,6 +94131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83255,6 +94153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83274,6 +94175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83293,6 +94197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83312,6 +94219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83331,6 +94241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83350,6 +94263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83369,6 +94285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83388,6 +94307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83407,6 +94329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83426,6 +94351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83445,6 +94373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83464,6 +94395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83483,6 +94417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83502,6 +94439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83521,6 +94461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83540,6 +94483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83559,6 +94505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83578,6 +94527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83597,6 +94549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83616,6 +94571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83635,6 +94593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83654,6 +94615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83673,6 +94637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83692,6 +94659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83711,6 +94681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83730,6 +94703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83749,6 +94725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83768,6 +94747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83787,6 +94769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83806,6 +94791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83825,6 +94813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83844,6 +94835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83863,6 +94857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83882,6 +94879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83901,6 +94901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83920,6 +94923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83939,6 +94945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83958,6 +94967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83977,6 +94989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -83996,6 +95011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84015,6 +95033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84034,6 +95055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84053,6 +95077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84072,6 +95099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84091,6 +95121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84110,6 +95143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84129,6 +95165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84148,6 +95187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84167,6 +95209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84186,6 +95231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84205,6 +95253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84224,6 +95275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84243,6 +95297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "json_fuzzer_test_one_entry", @@ -84262,6 +95319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84281,6 +95341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84300,6 +95363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84319,6 +95385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84338,6 +95407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84357,6 +95429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84376,6 +95451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84395,6 +95473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84414,6 +95495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84433,6 +95517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84452,6 +95539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84471,6 +95561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84490,6 +95583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84509,6 +95605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84528,6 +95627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84547,6 +95649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84566,6 +95671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84585,6 +95693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84604,6 +95715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84623,6 +95737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84642,6 +95759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84661,6 +95781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84680,6 +95803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84699,6 +95825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84718,6 +95847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84737,6 +95869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84756,6 +95891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84775,6 +95913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84794,6 +95935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84813,6 +95957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84832,6 +95979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84851,6 +96001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84870,6 +96023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84889,6 +96045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84908,6 +96067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84927,6 +96089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84946,6 +96111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84965,6 +96133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -84984,6 +96155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85003,6 +96177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85022,6 +96199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85041,6 +96221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85060,6 +96243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85079,6 +96265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85098,6 +96287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85117,6 +96309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85136,6 +96331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85155,6 +96353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85174,6 +96375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85193,6 +96397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85212,6 +96419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85231,6 +96441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85250,6 +96463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85269,6 +96485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85288,6 +96507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85307,6 +96529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85326,6 +96551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85345,6 +96573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85364,6 +96595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85383,6 +96617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85402,6 +96639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85421,6 +96661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85440,6 +96683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_response_test_one_entry", @@ -85459,6 +96705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85478,6 +96727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85497,6 +96749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85516,6 +96771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85535,6 +96793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85554,6 +96815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85573,6 +96837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85592,6 +96859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85611,6 +96881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85630,6 +96903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85649,6 +96925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85668,6 +96947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85687,6 +96969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85706,6 +96991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85725,6 +97013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85744,6 +97035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85763,6 +97057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85782,6 +97079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85801,6 +97101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85820,6 +97123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85839,6 +97145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85858,6 +97167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85877,6 +97189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85896,6 +97211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85915,6 +97233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85934,6 +97255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85953,6 +97277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85972,6 +97299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -85991,6 +97321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86010,6 +97343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86029,6 +97365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86048,6 +97387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86067,6 +97409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86086,6 +97431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86105,6 +97453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86124,6 +97475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86143,6 +97497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86162,6 +97519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86181,6 +97541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86200,6 +97563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86219,6 +97585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86238,6 +97607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86257,6 +97629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86276,6 +97651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86295,6 +97673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86314,6 +97695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86333,6 +97717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86352,6 +97739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86371,6 +97761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86390,6 +97783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86409,6 +97805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86428,6 +97827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86447,6 +97849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86466,6 +97871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86485,6 +97893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86504,6 +97915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86523,6 +97937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86542,6 +97959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86561,6 +97981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86580,6 +98003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86599,6 +98025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86618,6 +98047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86637,6 +98069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86656,6 +98091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86675,6 +98113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86694,6 +98135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86713,6 +98157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86732,6 +98179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86751,6 +98201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86770,6 +98223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86789,6 +98245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86808,6 +98267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86827,6 +98289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86846,6 +98311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86865,6 +98333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86884,6 +98355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86903,6 +98377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86922,6 +98399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86941,6 +98421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86960,6 +98443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86979,6 +98465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -86998,6 +98487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87017,6 +98509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87036,6 +98531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87055,6 +98553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87074,6 +98575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87093,6 +98597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87112,6 +98619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87131,6 +98641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87150,6 +98663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87169,6 +98685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87188,6 +98707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87207,6 +98729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87226,6 +98751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87245,6 +98773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87264,6 +98795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87283,6 +98817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87302,6 +98839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87321,6 +98861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87340,6 +98883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87359,6 +98905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87378,6 +98927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87397,6 +98949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87416,6 +98971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87435,6 +98993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87454,6 +99015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87473,6 +99037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87492,6 +99059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87511,6 +99081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87530,6 +99103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87549,6 +99125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87568,6 +99147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87587,6 +99169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87606,6 +99191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87625,6 +99213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87644,6 +99235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87663,6 +99257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87682,6 +99279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87701,6 +99301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87720,6 +99323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87739,6 +99345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87758,6 +99367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87777,6 +99389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87796,6 +99411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87815,6 +99433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87834,6 +99455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87853,6 +99477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87872,6 +99499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87891,6 +99521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87910,6 +99543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87929,6 +99565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87948,6 +99587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87967,6 +99609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -87986,6 +99631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88005,6 +99653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88024,6 +99675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88043,6 +99697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88062,6 +99719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88081,6 +99741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88100,6 +99763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88119,6 +99785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88138,6 +99807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88157,6 +99829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88176,6 +99851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88195,6 +99873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88214,6 +99895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88233,6 +99917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88252,6 +99939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88271,6 +99961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88290,6 +99983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88309,6 +100005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88328,6 +100027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88347,6 +100049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88366,6 +100071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88385,6 +100093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88404,6 +100115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88423,6 +100137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88442,6 +100159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88461,6 +100181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88480,6 +100203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88499,6 +100225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88518,6 +100247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88537,6 +100269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88556,6 +100291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88575,6 +100313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88594,6 +100335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88613,6 +100357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88632,6 +100379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88651,6 +100401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88670,6 +100423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88689,6 +100445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88708,6 +100467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88727,6 +100489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88746,6 +100511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88765,6 +100533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88784,6 +100555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88803,6 +100577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88822,6 +100599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88841,6 +100621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88860,6 +100643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88879,6 +100665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88898,6 +100687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88917,6 +100709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88936,6 +100731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88955,6 +100753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88974,6 +100775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -88993,6 +100797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89012,6 +100819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89031,6 +100841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89050,6 +100863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89069,6 +100885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89088,6 +100907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89107,6 +100929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89126,6 +100951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89145,6 +100973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89164,6 +100995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89183,6 +101017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89202,6 +101039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89221,6 +101061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89240,6 +101083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89259,6 +101105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89278,6 +101127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89297,6 +101149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89316,6 +101171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89335,6 +101193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89354,6 +101215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89373,6 +101237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89392,6 +101259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89411,6 +101281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89430,6 +101303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89449,6 +101325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89468,6 +101347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89487,6 +101369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89506,6 +101391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89525,6 +101413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89544,6 +101435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89563,6 +101457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89582,6 +101479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89601,6 +101501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89620,6 +101523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89639,6 +101545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89658,6 +101567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89677,6 +101589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89696,6 +101611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89715,6 +101633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89734,6 +101655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89753,6 +101677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89772,6 +101699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89791,6 +101721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89810,6 +101743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89829,6 +101765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89848,6 +101787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89867,6 +101809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89886,6 +101831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89905,6 +101853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89924,6 +101875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89943,6 +101897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89962,6 +101919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -89981,6 +101941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90000,6 +101963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90019,6 +101985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90038,6 +102007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90057,6 +102029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90076,6 +102051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90095,6 +102073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90114,6 +102095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90133,6 +102117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90152,6 +102139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90171,6 +102161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90190,6 +102183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90209,6 +102205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90228,6 +102227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90247,6 +102249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90266,6 +102271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90285,6 +102293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90304,6 +102315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90323,6 +102337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90342,6 +102359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90361,6 +102381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90380,6 +102403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90399,6 +102425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90418,6 +102447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90437,6 +102469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90456,6 +102491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90475,6 +102513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90494,6 +102535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90513,6 +102557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90532,6 +102579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90551,6 +102601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90570,6 +102623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90589,6 +102645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90608,6 +102667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "nanopb_fuzzer_serverlist_test_one_entry", @@ -90627,6 +102689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90646,6 +102711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90665,6 +102733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90684,6 +102755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90703,6 +102777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90722,6 +102799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90741,6 +102821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90760,6 +102843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90779,6 +102865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90798,6 +102887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90817,6 +102909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90836,6 +102931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90855,6 +102953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90874,6 +102975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90893,6 +102997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90912,6 +103019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90931,6 +103041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90950,6 +103063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90969,6 +103085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -90988,6 +103107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91007,6 +103129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91026,6 +103151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91045,6 +103173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91064,6 +103195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91083,6 +103217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91102,6 +103239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_decode_fuzzer_one_entry", @@ -91121,6 +103261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91140,6 +103283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91159,6 +103305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91178,6 +103327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91197,6 +103349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91216,6 +103371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91235,6 +103393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91254,6 +103415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91273,6 +103437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91292,6 +103459,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91311,6 +103481,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91330,6 +103503,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91349,6 +103525,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91368,6 +103547,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91387,6 +103569,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91406,6 +103591,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "percent_encode_fuzzer_one_entry", @@ -91425,6 +103613,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91444,6 +103635,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91463,6 +103657,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91482,6 +103679,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91501,6 +103701,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91520,6 +103723,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91539,6 +103745,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91558,6 +103767,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91577,6 +103789,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91596,6 +103811,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91615,6 +103833,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91634,6 +103855,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91653,6 +103877,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91672,6 +103899,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91691,6 +103921,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91710,6 +103943,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91729,6 +103965,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91748,6 +103987,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91767,6 +104009,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91786,6 +104031,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91805,6 +104053,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91824,6 +104075,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91843,6 +104097,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91862,6 +104119,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91881,6 +104141,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91900,6 +104163,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91919,6 +104185,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91938,6 +104207,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91957,6 +104229,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91976,6 +104251,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -91995,6 +104273,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92014,6 +104295,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92033,6 +104317,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92052,6 +104339,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92071,6 +104361,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92090,6 +104383,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92109,6 +104405,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92128,6 +104427,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92147,6 +104449,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92166,6 +104471,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92185,6 +104493,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92204,6 +104515,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92223,6 +104537,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92242,6 +104559,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92261,6 +104581,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92280,6 +104603,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92299,6 +104625,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92318,6 +104647,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92337,6 +104669,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92356,6 +104691,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92375,6 +104713,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92394,6 +104735,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92413,6 +104757,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92432,6 +104779,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92451,6 +104801,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92470,6 +104823,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92489,6 +104845,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92508,6 +104867,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92527,6 +104889,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92546,6 +104911,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92565,6 +104933,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92584,6 +104955,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92603,6 +104977,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92622,6 +104999,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92641,6 +105021,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92660,6 +105043,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92679,6 +105065,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92698,6 +105087,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92717,6 +105109,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92736,6 +105131,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92755,6 +105153,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92774,6 +105175,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92793,6 +105197,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92812,6 +105219,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92831,6 +105241,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92850,6 +105263,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92869,6 +105285,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92888,6 +105307,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92907,6 +105329,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92926,6 +105351,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92945,6 +105373,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92964,6 +105395,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -92983,6 +105417,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93002,6 +105439,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93021,6 +105461,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93040,6 +105483,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93059,6 +105505,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93078,6 +105527,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93097,6 +105549,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93116,6 +105571,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93135,6 +105593,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93154,6 +105615,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93173,6 +105637,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93192,6 +105659,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93211,6 +105681,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93230,6 +105703,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93249,6 +105725,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93268,6 +105747,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93287,6 +105769,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93306,6 +105791,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93325,6 +105813,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93344,6 +105835,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93363,6 +105857,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93382,6 +105879,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93401,6 +105901,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93420,6 +105923,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93439,6 +105945,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93458,6 +105967,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93477,6 +105989,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93496,6 +106011,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93515,6 +106033,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93534,6 +106055,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93553,6 +106077,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93572,6 +106099,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93591,6 +106121,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93610,6 +106143,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93629,6 +106165,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93648,6 +106187,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93667,6 +106209,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93686,6 +106231,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93705,6 +106253,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93724,6 +106275,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93743,6 +106297,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93762,6 +106319,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93781,6 +106341,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93800,6 +106363,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93819,6 +106385,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93838,6 +106407,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93857,6 +106429,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93876,6 +106451,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93895,6 +106473,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93914,6 +106495,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93933,6 +106517,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93952,6 +106539,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93971,6 +106561,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -93990,6 +106583,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94009,6 +106605,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94028,6 +106627,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94047,6 +106649,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94066,6 +106671,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94085,6 +106693,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94104,6 +106715,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94123,6 +106737,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94142,6 +106759,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94161,6 +106781,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94180,6 +106803,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94199,6 +106825,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94218,6 +106847,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94237,6 +106869,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94256,6 +106891,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94275,6 +106913,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94294,6 +106935,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94313,6 +106957,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94332,6 +106979,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94351,6 +107001,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94370,6 +107023,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94389,6 +107045,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94408,6 +107067,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94427,6 +107089,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94446,6 +107111,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94465,6 +107133,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94484,6 +107155,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94503,6 +107177,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94522,6 +107199,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94541,6 +107221,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94560,6 +107243,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94579,6 +107265,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94598,6 +107287,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94617,6 +107309,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94636,6 +107331,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94655,6 +107353,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94674,6 +107375,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94693,6 +107397,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94712,6 +107419,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94731,6 +107441,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94750,6 +107463,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94769,6 +107485,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94788,6 +107507,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94807,6 +107529,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94826,6 +107551,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94845,6 +107573,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94864,6 +107595,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94883,6 +107617,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94902,6 +107639,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94921,6 +107661,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94940,6 +107683,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94959,6 +107705,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94978,6 +107727,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -94997,6 +107749,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95016,6 +107771,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95035,6 +107793,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95054,6 +107815,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95073,6 +107837,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95092,6 +107859,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95111,6 +107881,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95130,6 +107903,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95149,6 +107925,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95168,6 +107947,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95187,6 +107969,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95206,6 +107991,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95225,6 +108013,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95244,6 +108035,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95263,6 +108057,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95282,6 +108079,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95301,6 +108101,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95320,6 +108123,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95339,6 +108145,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95358,6 +108167,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95377,6 +108189,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95396,6 +108211,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95415,6 +108233,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95434,6 +108255,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95453,6 +108277,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95472,6 +108299,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95491,6 +108321,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95510,6 +108343,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95529,6 +108365,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95548,6 +108387,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95567,6 +108409,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95586,6 +108431,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95605,6 +108453,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95624,6 +108475,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95643,6 +108497,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95662,6 +108519,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95681,6 +108541,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95700,6 +108563,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95719,6 +108585,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95738,6 +108607,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95757,6 +108629,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95776,6 +108651,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95795,6 +108673,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95814,6 +108695,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95833,6 +108717,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95852,6 +108739,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95871,6 +108761,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95890,6 +108783,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95909,6 +108805,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95928,6 +108827,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95947,6 +108849,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95966,6 +108871,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -95985,6 +108893,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96004,6 +108915,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96023,6 +108937,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96042,6 +108959,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96061,6 +108981,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96080,6 +109003,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96099,6 +109025,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96118,6 +109047,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96137,6 +109069,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96156,6 +109091,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96175,6 +109113,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96194,6 +109135,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96213,6 +109157,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96232,6 +109179,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96251,6 +109201,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96270,6 +109223,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96289,6 +109245,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96308,6 +109267,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96327,6 +109289,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96346,6 +109311,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96365,6 +109333,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96384,6 +109355,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96403,6 +109377,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96422,6 +109399,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96441,6 +109421,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96460,6 +109443,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96479,6 +109465,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96498,6 +109487,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96517,6 +109509,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96536,6 +109531,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96555,6 +109553,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96574,6 +109575,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96593,6 +109597,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96612,6 +109619,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96631,6 +109641,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96650,6 +109663,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96669,6 +109685,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96688,6 +109707,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96707,6 +109729,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96726,6 +109751,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96745,6 +109773,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96764,6 +109795,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96783,6 +109817,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96802,6 +109839,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96821,6 +109861,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96840,6 +109883,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96859,6 +109905,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96878,6 +109927,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96897,6 +109949,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96916,6 +109971,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96935,6 +109993,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96954,6 +110015,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96973,6 +110037,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -96992,6 +110059,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97011,6 +110081,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97030,6 +110103,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97049,6 +110125,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97068,6 +110147,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97087,6 +110169,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97106,6 +110191,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97125,6 +110213,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97144,6 +110235,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97163,6 +110257,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97182,6 +110279,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97201,6 +110301,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97220,6 +110323,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97239,6 +110345,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97258,6 +110367,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97277,6 +110389,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97296,6 +110411,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97315,6 +110433,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97334,6 +110455,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97353,6 +110477,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97372,6 +110499,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97391,6 +110521,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97410,6 +110543,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97429,6 +110565,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97448,6 +110587,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97467,6 +110609,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97486,6 +110631,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97505,6 +110653,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97524,6 +110675,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97543,6 +110697,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97562,6 +110719,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97581,6 +110741,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97600,6 +110763,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97619,6 +110785,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97638,6 +110807,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97657,6 +110829,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97676,6 +110851,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97695,6 +110873,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97714,6 +110895,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97733,6 +110917,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97752,6 +110939,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97771,6 +110961,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97790,6 +110983,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97809,6 +111005,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97828,6 +111027,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97847,6 +111049,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97866,6 +111071,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97885,6 +111093,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97904,6 +111115,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97923,6 +111137,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97942,6 +111159,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97961,6 +111181,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97980,6 +111203,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -97999,6 +111225,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98018,6 +111247,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98037,6 +111269,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98056,6 +111291,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98075,6 +111313,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98094,6 +111335,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98113,6 +111357,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98132,6 +111379,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98151,6 +111401,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98170,6 +111423,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98189,6 +111445,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98208,6 +111467,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98227,6 +111489,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98246,6 +111511,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98265,6 +111533,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98284,6 +111555,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98303,6 +111577,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98322,6 +111599,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98341,6 +111621,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98360,6 +111643,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98379,6 +111665,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98398,6 +111687,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98417,6 +111709,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98436,6 +111731,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98455,6 +111753,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98474,6 +111775,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98493,6 +111797,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98512,6 +111819,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98531,6 +111841,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98550,6 +111863,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98569,6 +111885,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98588,6 +111907,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98607,6 +111929,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98626,6 +111951,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98645,6 +111973,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98664,6 +111995,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98683,6 +112017,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98702,6 +112039,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98721,6 +112061,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98740,6 +112083,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98759,6 +112105,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98778,6 +112127,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98797,6 +112149,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98816,6 +112171,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98835,6 +112193,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98854,6 +112215,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98873,6 +112237,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98892,6 +112259,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98911,6 +112281,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98930,6 +112303,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98949,6 +112325,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98968,6 +112347,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -98987,6 +112369,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99006,6 +112391,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99025,6 +112413,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99044,6 +112435,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99063,6 +112457,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99082,6 +112479,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99101,6 +112501,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99120,6 +112523,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99139,6 +112545,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99158,6 +112567,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99177,6 +112589,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99196,6 +112611,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99215,6 +112633,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99234,6 +112655,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99253,6 +112677,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99272,6 +112699,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99291,6 +112721,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99310,6 +112743,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99329,6 +112765,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99348,6 +112787,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99367,6 +112809,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99386,6 +112831,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99405,6 +112853,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99424,6 +112875,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99443,6 +112897,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99462,6 +112919,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99481,6 +112941,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99500,6 +112963,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99519,6 +112985,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99538,6 +113007,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99557,6 +113029,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99576,6 +113051,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "server_fuzzer_one_entry", @@ -99595,6 +113073,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99614,6 +113095,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99633,6 +113117,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99652,6 +113139,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99671,6 +113161,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99690,6 +113183,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99709,6 +113205,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99728,6 +113227,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99747,6 +113249,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99766,6 +113271,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99785,6 +113293,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99804,6 +113315,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99823,6 +113337,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99842,6 +113359,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99861,6 +113381,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99880,6 +113403,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99899,6 +113425,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99918,6 +113447,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99937,6 +113469,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99956,6 +113491,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99975,6 +113513,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -99994,6 +113535,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100013,6 +113557,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100032,6 +113579,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100051,6 +113601,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100070,6 +113623,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100089,6 +113645,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100108,6 +113667,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100127,6 +113689,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100146,6 +113711,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100165,6 +113733,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100184,6 +113755,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100203,6 +113777,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100222,6 +113799,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100241,6 +113821,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100260,6 +113843,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100279,6 +113865,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100298,6 +113887,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100317,6 +113909,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100336,6 +113931,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100355,6 +113953,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100374,6 +113975,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100393,6 +113997,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100412,6 +114019,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100431,6 +114041,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100450,6 +114063,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100469,6 +114085,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100488,6 +114107,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100507,6 +114129,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100526,6 +114151,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100545,6 +114173,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100564,6 +114195,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100583,6 +114217,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100602,6 +114239,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100621,6 +114261,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100640,6 +114283,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100659,6 +114305,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100678,6 +114327,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100697,6 +114349,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100716,6 +114371,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100735,6 +114393,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100754,6 +114415,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", @@ -100773,6 +114437,9 @@ "exclude_configs": [ "tsan" ], + "exclude_iomgrs": [ + "uv" + ], "flaky": false, "language": "c", "name": "uri_fuzzer_test_one_entry", diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj index e13d5f3c40..b9d97fec6c 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj @@ -333,27 +333,34 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_cv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_pipe.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" /> @@ -375,6 +382,7 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\mdstr_hash_table.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport.h" /> @@ -432,12 +440,10 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_factory.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.h" /> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_factory.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.h" /> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel_index.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\uri_parser.h" /> @@ -505,6 +511,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\error.c"> @@ -527,6 +535,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\load_file.c"> @@ -535,12 +545,18 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.c"> @@ -551,26 +567,38 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.c"> @@ -587,6 +615,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json.c"> @@ -643,6 +673,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.c"> @@ -709,9 +741,7 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\fake\fake_credentials.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_posix.c"> - </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_windows.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_generic.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\google_default_credentials.c"> </ClCompile> @@ -777,8 +807,6 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.c"> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver.c"> @@ -787,8 +815,6 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.c"> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel_index.c"> diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters index 1ffe151181..86f7edae29 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters @@ -64,6 +64,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -97,6 +100,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -109,15 +115,24 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -133,12 +148,21 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -148,21 +172,30 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -187,6 +220,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -271,6 +307,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + <Filter>src\core\lib\transport</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> @@ -370,10 +409,7 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\fake\fake_credentials.c"> <Filter>src\core\lib\security\credentials\fake</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_posix.c"> - <Filter>src\core\lib\security\credentials\google_default</Filter> - </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_windows.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\credentials_generic.c"> <Filter>src\core\lib\security\credentials\google_default</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\security\credentials\google_default\google_default_credentials.c"> @@ -472,9 +508,6 @@ <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.c"> - <Filter>src\core\ext\client_channel</Filter> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> @@ -487,9 +520,6 @@ <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.c"> - <Filter>src\core\ext\client_channel</Filter> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> @@ -788,9 +818,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -806,6 +842,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -821,6 +860,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -830,9 +872,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -851,6 +899,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -914,6 +965,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h"> + <Filter>src\core\lib\transport</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> @@ -1085,9 +1139,6 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.h"> - <Filter>src\core\ext\client_channel</Filter> - </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> @@ -1100,9 +1151,6 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.h"> - <Filter>src\core\ext\client_channel</Filter> - </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> diff --git a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj index eb3a94df64..35ace6eabb 100644 --- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj +++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj @@ -226,27 +226,34 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_cv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_pipe.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" /> @@ -268,6 +275,7 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\mdstr_hash_table.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport.h" /> @@ -308,6 +316,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_server_client.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\test\core\util\port_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\slice_splitter.c"> @@ -352,6 +362,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\error.c"> @@ -374,6 +386,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\load_file.c"> @@ -382,12 +396,18 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.c"> @@ -398,26 +418,38 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.c"> @@ -434,6 +466,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json.c"> @@ -490,6 +524,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.c"> diff --git a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters index fcc8e34db3..4b104aeb9b 100644 --- a/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_test_util/grpc_test_util.vcxproj.filters @@ -52,6 +52,9 @@ <ClCompile Include="$(SolutionDir)\..\test\core\util\port_server_client.c"> <Filter>test\core\util</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\test\core\util\port_uv.c"> + <Filter>test\core\util</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_windows.c"> <Filter>test\core\util</Filter> </ClCompile> @@ -118,6 +121,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -151,6 +157,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -163,15 +172,24 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -187,12 +205,21 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -202,21 +229,30 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -241,6 +277,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -325,6 +364,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + <Filter>src\core\lib\transport</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> @@ -572,9 +614,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -590,6 +638,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -605,6 +656,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -614,9 +668,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -635,6 +695,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -698,6 +761,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h"> + <Filter>src\core\lib\transport</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> diff --git a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj index 7878683f9e..7f3e101e75 100644 --- a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj @@ -186,6 +186,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_server_client.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\test\core\util\port_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\slice_splitter.c"> diff --git a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters index 2b20ab32fe..8be9f5b796 100644 --- a/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_test_util_unsecure/grpc_test_util_unsecure.vcxproj.filters @@ -37,6 +37,9 @@ <ClCompile Include="$(SolutionDir)\..\test\core\util\port_server_client.c"> <Filter>test\core\util</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\test\core\util\port_uv.c"> + <Filter>test\core\util</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\test\core\util\port_windows.c"> <Filter>test\core\util</Filter> </ClCompile> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj index 6fa2fc6272..377bbf9bbd 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj @@ -323,27 +323,34 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_cv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_pipe.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\json\json_common.h" /> @@ -365,6 +372,7 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\mdstr_hash_table.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h" /> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\transport.h" /> @@ -398,12 +406,10 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_factory.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.h" /> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_factory.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.h" /> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel_index.h" /> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\uri_parser.h" /> @@ -473,6 +479,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\error.c"> @@ -495,6 +503,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\load_file.c"> @@ -503,12 +513,18 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_utils.c"> @@ -519,26 +535,38 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_posix.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\unix_sockets_posix.c"> @@ -555,6 +583,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\json\json.c"> @@ -611,6 +641,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\timeout_encoding.c"> @@ -693,8 +725,6 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.c"> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver.c"> @@ -703,8 +733,6 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.c"> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.c"> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel_index.c"> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters index 6c31f4d643..9171f82377 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters @@ -67,6 +67,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\endpoint_pair_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -100,6 +103,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\iomgr_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -112,15 +118,24 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\polling_entity.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -136,12 +151,21 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_windows.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_client_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -151,21 +175,30 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\time_averaged_stats.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.c"> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -190,6 +223,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\wakeup_fd_posix.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.c"> + <Filter>src\core\lib\iomgr</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.c"> <Filter>src\core\lib\iomgr</Filter> </ClCompile> @@ -274,6 +310,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\method_config.c"> + <Filter>src\core\lib\transport</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.c"> <Filter>src\core\lib\transport</Filter> </ClCompile> @@ -397,9 +436,6 @@ <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.c"> - <Filter>src\core\ext\client_channel</Filter> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> @@ -412,9 +448,6 @@ <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> - <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.c"> - <Filter>src\core\ext\client_channel</Filter> - </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.c"> <Filter>src\core\ext\client_channel</Filter> </ClCompile> @@ -698,9 +731,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_set_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\pollset_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\port.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\resolve_address.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -716,6 +755,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\sockaddr_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\socket_utils_posix.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -731,6 +773,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\tcp_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -740,9 +785,15 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_generic.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_heap.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\timer_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\udp_server.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -761,6 +812,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_uv.h"> + <Filter>src\core\lib\iomgr</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\iomgr\workqueue_windows.h"> <Filter>src\core\lib\iomgr</Filter> </ClInclude> @@ -824,6 +878,9 @@ <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\metadata_batch.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> + <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\method_config.h"> + <Filter>src\core\lib\transport</Filter> + </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\lib\transport\static_metadata.h"> <Filter>src\core\lib\transport</Filter> </ClInclude> @@ -923,9 +980,6 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\lb_policy_registry.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\method_config.h"> - <Filter>src\core\ext\client_channel</Filter> - </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\parse_address.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> @@ -938,9 +992,6 @@ <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_registry.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> - <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\resolver_result.h"> - <Filter>src\core\ext\client_channel</Filter> - </ClInclude> <ClInclude Include="$(SolutionDir)\..\src\core\ext\client_channel\subchannel.h"> <Filter>src\core\ext\client_channel</Filter> </ClInclude> |