diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c index 49bbc99707bff7d2b00273f66d58454130a23fa6..e157f73f2a9903d196ff4527bf8a9264f3c43044 100644 --- a/src/slurmctld/controller.c +++ b/src/slurmctld/controller.c @@ -88,6 +88,7 @@ #include "src/slurmctld/ping_nodes.h" #include "src/slurmctld/proc_req.h" #include "src/slurmctld/read_config.h" +#include "src/slurmctld/reservation.h" #include "src/slurmctld/slurmctld.h" #include "src/slurmctld/sched_plugin.h" #include "src/slurmctld/srun_comm.h" @@ -569,6 +570,7 @@ int main(int argc, char *argv[]) job_fini(); part_fini(); /* part_fini() must preceed node_fini() */ node_fini(); + resv_fini(); trigger_fini(); assoc_mgr_fini(slurmctld_conf.state_save_location); diff --git a/src/slurmctld/reservation.c b/src/slurmctld/reservation.c index df0656039e9da731565fe715faf21a3051c147c4..5b355f696fd32c171b721736510553fc754d8d5e 100644 --- a/src/slurmctld/reservation.c +++ b/src/slurmctld/reservation.c @@ -1181,6 +1181,15 @@ extern int create_resv(reserve_request_msg_t *resv_desc_ptr) return rc; } +/* Purge all reservation data structures */ +extern void resv_fini(void) +{ + if (resv_list) { + list_destroy(resv_list); + resv_list = (List) NULL; + } +} + /* Update an exiting resource reservation */ extern int update_resv(reserve_request_msg_t *resv_desc_ptr) { diff --git a/src/slurmctld/reservation.h b/src/slurmctld/reservation.h index 9099f0d502fa4d6bd6701c1ddce87d4e55c2775d..9122dad7648b8189f06b58dbd15cc9ba91d20916 100644 --- a/src/slurmctld/reservation.h +++ b/src/slurmctld/reservation.h @@ -61,6 +61,9 @@ extern void show_resv(char **buffer_ptr, int *buffer_size, uid_t uid); /* Save the state of all reservations to file */ extern int dump_all_resv_state(void); +/* Purge all reservation data structures */ +extern void resv_fini(void); + /* * Load the reservation state from file, recover on slurmctld restart. * Reset reservation pointers for all jobs.