I checked what you were suggesting: both the controllers can communicate without any problem to all the nodes.

Today I tried multiple times the dynamics of takeover between the primary and the backup controller and I noticed that the first scontrol takeover works perfectly: the backup controller become the controller in charge and all the sinfo and
squeue requests are satisfied.

Everything works fine also when the primary controller is back online: again the jobs continue to run fine and the
output of the commands sinfo and squeue are fine.

The very strange behavior arrives when I test the takeover mechanism for the second consecutive time with the command scontrol takeover always from the backup controller: in this case everything seems fine at the beginning from the log file: all the information about the resources and the jobs are recovered and the backup controller declare to be the current primary controller but then it gets completely crazy. Here are the few lines in the log file before the
madness starts:

[2024-03-26T15:12:17.664] Running as primary controller
[2024-03-26T15:12:17.664] debug:  Heartbeat thread started, beating every 5 seconds.
[2024-03-26T15:12:17.712] debug:  No feds to retrieve from state
[2024-03-26T15:12:17.796] Resuming operation with already established listening sockets
[2024-03-26T15:12:17.797] error: slurm_accept_msg_conn poll: Bad address
[2024-03-26T15:12:17.797] error: slurm_accept_msg_conn poll: Bad address
[2024-03-26T15:12:17.797] error: slurm_accept_msg_conn poll: Bad address

From this moment on, the error message is the only thing that is continuously written on the log file and the controller is unreachable by all the nodes: the only way to recover the backup controller is to restart the service.

What might be the cause?


On 25/03/24 22:59, Brian Andrus via slurm-users wrote:

I would hazard to guess that the DNS is not working fully from or for the nodes themselves.

Validate that you can ping the nodes by name from the backup controller. Also verify they are named what the dns says they are.  And validate you can ping the backup controller from the nodes by the name it has in the slurm.conf file.

Also, a quick way to do the failover check is to run (from the backup controller): scontrol takeover

Brian Andrus

On 3/25/2024 1:39 PM, Miriam Olmi wrote:
Hi Brian,

Thanks for replying.

In my first message I forgot to specify that the primary and the backup controller have a shared filesystem mounted.

The SaveStateLocation points to a directory placed on the shared filesystem so both the primary and the backup controller are really reading/writing the very same files.

Any other ideas?

Thanks again,
Miriam


Il 25 marzo 2024 19:23:23 CET, Brian Andrus via slurm-users <slurm-users@lists.schedmd.com> ha scritto:

    Quick correction, it is SaveStateLocation not SlurmSaveState.
    Brian Andrus On 3/25/2024 8:11 AM, Miriam Olmi via slurm-users
    wrote:

        Dear all, I am having trouble finalizing the configuration of
        the backup controller for my slurm cluster. In principle, if
        no job is running everything seems fine: both the slurmctld
        services on the primary and the backup controller are running
        and if I stop the service on the primary controller after 10s
        more or less (SlurmctldTimeout = 10 sec) the backup
        controller takes over. Also, if I run the sinfo or squeue
        command during the 10s of inactivity, the shell stay pending
        but it recover perfectly after the time needed by the backup
        controller to take control and it works the same when the
        primary controller is back. Unfortunately, if I try to do the
        same test while a job is running there are two different
        behaviors depending on the initial scenario. 1st scenario:
        Both the primary and backup controller are fine. I launch a
        batch script and I verify the script is running with sinfo
        and squeue. While the script is still running I stop the
        service on the primary controller with success but at this
        point everything gets crazy: on the backup controller in the
        slurmctld service log I find the following errors: slurmctld:
        error: Invalid RPC received REQUEST_JOB_INFO while in standby
        mode slurmctld: error: Invalid RPC received
        REQUEST_PARTITION_INFO while in standby mode slurmctld:
        error: Invalid RPC received REQUEST_JOB_INFO while in standby
        mode slurmctld: error: Invalid RPC received
        REQUEST_PARTITION_INFO while in standby mode slurmctld:
        error: slurm_accept_msg_conn poll: Bad address slurmctld:
        error: slurm_accept_msg_conn poll: Bad address and the
        commands sinfo and squeue are Unable to contact slurm
        controller (connect failure). 2nd scenario: the primary
        controller is stopped and I launch a batch job while the
        backup controller is the only one working. While the job is
        running, I restart the slurmctld service on the primary
        controller. In this case the primary controller takes over
        immediately: everything is smooth and safe and the sinfo and
        squeue commands continue to work perfectly. What might be the
problem? Many thanks in advance! Miriam

-- 
slurm-users mailing list -- slurm-users@lists.schedmd.com
To unsubscribe send an email to slurm-users-le...@lists.schedmd.com

Reply via email to