diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c index 239b3538cbf174606493822965db8c4fab1eeeb8..4af29e5d889b0e5e7e2823ff39b1b567da3d0152 100644 --- a/src/slurmctld/controller.c +++ b/src/slurmctld/controller.c @@ -140,7 +140,7 @@ main (int argc, char *argv[]) if ( ( newsockfd = slurm_accept_msg_conn ( sockfd , & cli_addr ) ) == SLURM_SOCKET_ERROR ) { error ("slurm_accept_msg_conn error %d", errno) ; - break ; + continue ; } /* receive message call that must occur before thread spawn because in message @@ -150,7 +150,9 @@ main (int argc, char *argv[]) if ( ( error_code = slurm_receive_msg ( newsockfd , msg ) ) == SLURM_SOCKET_ERROR ) { error ("slurm_receive_msg error %d", errno); - break ; + slurm_close_accepted_conn ( newsockfd ); /* close the new socket */ + slurm_free_msg ( msg ) ; + continue ; } msg -> conn_fd = newsockfd ;