Sorry Moe,

I am afraid I have sent you a bad patch.
The good one is :

diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
index 9a22784..a6771ef 100644
--- a/src/slurmctld/node_mgr.c
+++ b/src/slurmctld/node_mgr.c
@@ -2226,6 +2226,8 @@ extern int
validate_node_specs(slurm_node_registration_status_msg_t *reg_msg,
        }

        if (IS_NODE_NO_RESPOND(node_ptr)) {
+               if (IS_NODE_POWER_UP(node_ptr))
+                  node_ptr->last_response = now;
                node_ptr->node_state &= (~NODE_STATE_NO_RESPOND);
                node_ptr->node_state &= (~NODE_STATE_POWER_UP);
                last_node_update = time (NULL);

>
> Thanks you for your analysis of the problem and the patch. It will be
> in version 14.11.8 when released (probably in late June). The commit
> with your patch is here:
> https://github.com/SchedMD/slurm/commit/3c2b46af01c50bd03c85235d1aaeb75acd62bb20
>
> Quoting Didier GAZEN <[email protected]>:
>> Hi,
>>
>> In your node_mgr fix to keep rebooted nodes down (commit 9cd15dfe96b54),
>> you
>> forgot to consider the case of nodes that are powered up but are
>> responding after
>> ResumeTimeout seconds (the maximum time permitted). Such nodes are
>> marked DOWN (because they didn't respond within ResumeTimeout seconds)
>> than
>> should become silently available when ReturnToService=1 (as stated
>> in the slurm.conf manual)
>>
>> With your modification when such nodes are finally responding, they
>> are seen as
>> rebooted nodes and remain in the DOWN state (with the new reason: Node
>> unexpectedly rebooted) even when ReturnToService=1 !
>>
>> My patch to obtain the correct behaviour:
>>
>> diff --git a/src/slurmctld/node_mgr.c b/src/slurmctld/node_mgr.c
>> index 9a22784..1644ba7 100644
>> --- a/src/slurmctld/node_mgr.c
>> +++ b/src/slurmctld/node_mgr.c
>> @@ -2291,8 +2291,9 @@ extern int
>> validate_node_specs(slurm_node_registration_status_msg_t *reg_msg,
>>                             !xstrcmp(node_ptr->reason, "Scheduled
>> reboot") ||
>>                             ((slurmctld_conf.ret2service == 1) &&
>>                              !xstrcmp(node_ptr->reason, "Not
>> responding") &&
>> -                            (node_ptr->boot_time <
>> -                             node_ptr->last_response)))) {
>> +                            ((node_ptr->boot_time <
>> +                             node_ptr->last_response) ||
>> +                              IS_NODE_POWER_UP(node_ptr))))) {
>>                         if (reg_msg->job_count) {
>>                                 node_ptr->node_state =
>> NODE_STATE_ALLOCATED |
>>                                         node_flags;
>>
>>
>> Didier
>
>
> --
> Morris "Moe" Jette
> CTO, SchedMD LLC
> Commercial Slurm Development and Support
>
>

Reply via email to