diff --git a/src/core/iomgr/pollset_multipoller_with_epoll.c b/src/core/iomgr/pollset_multipoller_with_epoll.c
index 9044892a9267ecdd0f597e65078bfa5620e823f8..a46dfe0520576aedc3add67d26bd6bacc8fad779 100644
--- a/src/core/iomgr/pollset_multipoller_with_epoll.c
+++ b/src/core/iomgr/pollset_multipoller_with_epoll.c
@@ -149,12 +149,14 @@ static int multipoll_with_epoll_pollset_maybe_work(
 
 static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
   pollset_hdr *h = pollset->data.ptr;
+
   close(h->epoll_fd);
   gpr_free(h);
 }
 
 static void epoll_kick(grpc_pollset *pollset) {
   pollset_hdr *h = pollset->data.ptr;
+  grpc_wakeup_fd_destroy(&h->wakeup_fd);
   grpc_wakeup_fd_wakeup(&h->wakeup_fd);
 }