diff --git a/test/core/end2end/bad_server_response_test.cc b/test/core/end2end/bad_server_response_test.cc
index 3701a938a3d631bd006ef9d318d920d67aee79ee..2d74b6b77b30ad73c9fe2f171c2e15f4e8853054 100644
--- a/test/core/end2end/bad_server_response_test.cc
+++ b/test/core/end2end/bad_server_response_test.cc
@@ -250,7 +250,7 @@ static void actually_poll_server(void* arg) {
     if (done || gpr_time_cmp(time_left, gpr_time_0(GPR_TIMESPAN)) < 0) {
       break;
     }
-    test_tcp_server_poll(pa->server, 1);
+    test_tcp_server_poll(pa->server, 1000);
   }
   gpr_event_set(pa->signal_when_done, (void*)1);
   gpr_free(pa);
diff --git a/test/core/util/reconnect_server.cc b/test/core/util/reconnect_server.cc
index ad7cf42f71fa62d58349848a7718f0c6f5e16e13..144ad64f095f1bc5c43699049a93b184affd5b86 100644
--- a/test/core/util/reconnect_server.cc
+++ b/test/core/util/reconnect_server.cc
@@ -109,7 +109,7 @@ void reconnect_server_start(reconnect_server* server, int port) {
 }
 
 void reconnect_server_poll(reconnect_server* server, int seconds) {
-  test_tcp_server_poll(&server->tcp_server, seconds);
+  test_tcp_server_poll(&server->tcp_server, 1000 * seconds);
 }
 
 void reconnect_server_clear_timestamps(reconnect_server* server) {
diff --git a/test/core/util/test_tcp_server.cc b/test/core/util/test_tcp_server.cc
index 610a9918ce63052052e03d6ba19bdfcc93aeef20..80d0634a9b9f2d9bc97c5812a89371f452787cd9 100644
--- a/test/core/util/test_tcp_server.cc
+++ b/test/core/util/test_tcp_server.cc
@@ -77,11 +77,11 @@ void test_tcp_server_start(test_tcp_server* server, int port) {
   gpr_log(GPR_INFO, "test tcp server listening on 0.0.0.0:%d", port);
 }
 
-void test_tcp_server_poll(test_tcp_server* server, int seconds) {
+void test_tcp_server_poll(test_tcp_server* server, int milliseconds) {
   grpc_pollset_worker* worker = nullptr;
   grpc_core::ExecCtx exec_ctx;
   grpc_millis deadline = grpc_timespec_to_millis_round_up(
-      grpc_timeout_seconds_to_deadline(seconds));
+      grpc_timeout_milliseconds_to_deadline(milliseconds));
   gpr_mu_lock(server->mu);
   GRPC_LOG_IF_ERROR("pollset_work",
                     grpc_pollset_work(server->pollset, &worker, deadline));
@@ -104,7 +104,7 @@ void test_tcp_server_destroy(test_tcp_server* server) {
                                    gpr_time_from_seconds(5, GPR_TIMESPAN));
   while (!server->shutdown &&
          gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), shutdown_deadline) < 0) {
-    test_tcp_server_poll(server, 1);
+    test_tcp_server_poll(server, 1000);
   }
   grpc_pollset_shutdown(server->pollset,
                         GRPC_CLOSURE_CREATE(finish_pollset, server->pollset,
diff --git a/test/core/util/test_tcp_server.h b/test/core/util/test_tcp_server.h
index 58140388da3f8a5f0a5dc2f2adc49b5a639e76ac..313a27a3334436ab11f51c89b48f738bd4a360ab 100644
--- a/test/core/util/test_tcp_server.h
+++ b/test/core/util/test_tcp_server.h
@@ -35,7 +35,7 @@ typedef struct test_tcp_server {
 void test_tcp_server_init(test_tcp_server* server,
                           grpc_tcp_server_cb on_connect, void* user_data);
 void test_tcp_server_start(test_tcp_server* server, int port);
-void test_tcp_server_poll(test_tcp_server* server, int seconds);
+void test_tcp_server_poll(test_tcp_server* server, int milliseconds);
 void test_tcp_server_destroy(test_tcp_server* server);
 
 #endif /* GRPC_TEST_CORE_UTIL_TEST_TCP_SERVER_H */