We ran into a similar issue a while ago (not sure what versions were involved 
though). Can't guarantee it's relevant, but have a look adding:

JobAcctGatherParams=NoShared,UsePSS

https://bugs.schedmd.com/show_bug.cgi?id=9010#c16

By default multiple processes using shared memory get counted multiple times - 
but it's not actually using that much RAM.

Cheers,

Luke

-- 
Luke Sudbery
Principal Engineer (HPC and Storage).
Architecture, Infrastructure and Systems
Advanced Research Computing, IT Services
Room 132, Computer Centre G5, Elms Road

Please note I don’t work on Monday.

-----Original Message-----
From: slurm-users <slurm-users-boun...@lists.schedmd.com> On Behalf Of John 
DeSantis
Sent: 18 May 2022 15:39
To: slurm-users@lists.schedmd.com
Subject: Re: [slurm-users] SLURM upgrade from 20.11.3 to 20.11.9 
misidentification of job steps

Hello,

It also appears that random jobs are being identified as using too much memory, 
despite being well within limits.

For example, a job is running that requested 2048 MB per CPU and all processes 
are within the limit.  But, the job is identified as being over limit when it 
isn't.  Please see below:

> [2022-05-18T10:26:45.020] Job 7724384 exceeded memory limit (13140>2056), 
> cancelling it
> [2022-05-18T10:26:53.736] Job 7724384 exceeded memory limit (13140>2056), 
> cancelling it

>    PID PSR   RSS    VSZ     ELAPSED COMMAND
>  16893   1 844172 1337540     15:53 vasp
>  16885   0 842844 1337424     15:53 vasp
>  16892  14 841216 1337652     15:53 vasp
>  16888   6 840848 1337540     15:53 vasp
>  16896   7 840756 1337536     15:53 vasp
>  16891  12 840664 1337544     15:53 vasp
>  16898  11 840556 1337540     15:53 vasp
>  16900  15 840512 1337656     15:53 vasp
>  16890  10 840500 1337540     15:53 vasp
>  16889   8 840468 1337536     15:53 vasp
>  16895   5 840416 1337544     15:53 vasp
>  16886   2 840356 1337540     15:53 vasp
>  16887   4 840348 1337540     15:53 vasp
>  16897   9 840288 1337544     15:53 vasp
>  16894   3 840128 1337536     15:53 vasp
>  16899  13 839952 1337544     15:53 vasp

> ps -U USER -o pid,psr,rss,vsz,etime,args h --sort=-rss|awk '{rss+=$3} END 
> {printf("%.2f\n",rss/1024)}'
> 13140.52

This job isn't hasn't exceeded its memory request on a per CPU basis, yet it 
has been identified as having done so.  Unfortunately, this will cause concern 
with users because their output logs indicate that the job exceeded its memory 
limit.

I ran a few test jobs requesting 1K of memory and they were all terminated and 
identified correctly, so this new behavior is random and frequent.

The commonality between both properly and improperly misidentified jobs is that 
they are not terminated and their output files log the message from slurmstepd 
that the memory limit has been exceeded.

Are any other users on the 20.11.9 branch experiencing this issue?  Are any 
users on the 21.08.8 branch experiencing this issue?  We use 
JobAcctGatherParams=OverMemoryKill in our environment to monitor and kill jobs 
when the physical memory limit has been exceeded.

Thank you,
John DeSantis

On 5/18/22 09:45, John DeSantis wrote:
> Hello,
> 
> Due to the recent CVE posted by Tim, we did upgrade from SLURM 20.11.3 to 
> 20.11.9.
> 
> Today, I received a ticket from a user with their output files populated with 
> the "slurmstepd: error: Exceeded job memory limit" message.  But, the jobs 
> are still running and it seems that the controller is misidentifying the job 
> and/or step ID.  Please see below.
> 
> # slurmd log
> 
>> [2022-05-18T09:33:31.279] Job 7733409 exceeded memory limit (7973>5120), 
>> cancelling it
>> [2022-05-18T09:33:31.291] debug:  _rpc_job_notify, uid = 65536, JobId=7733409
>> [2022-05-18T09:33:31.291] [7733409.0] debug:  Handling REQUEST_STEP_UID
>> [2022-05-18T09:33:31.300] send notification to StepId=7733409.batch
>> [2022-05-18T09:33:31.300] [7733409.batch] debug:  Handling REQUEST_JOB_NOTIFY
>> [2022-05-18T09:33:31.302] [7733409.batch] error: Exceeded job memory limit
> 
> # controller log
> 
>> [2022-05-18T09:33:31.293] debug2: Processing RPC: REQUEST_CANCEL_JOB_STEP 
>> from UID=0
>> [2022-05-18T09:33:31.293] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7733409+0
>> [2022-05-18T09:33:31.293] kill_job_step: invalid JobId=4367416
>> [2022-05-18T09:33:31.293] debug2: slurm_send_timeout: Socket no longer there
> 
> A restart of the controller doesn't help either, as there are a log of 
> misidentified jobs (truncated):
> 
>> [2022-05-18T09:41:27.128] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731668+0
>> [2022-05-18T09:41:27.128] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731684+0
>> [2022-05-18T09:41:27.128] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731625+0
>> [2022-05-18T09:41:27.128] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731634+0
>> [2022-05-18T09:41:27.128] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731629+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724380+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724380+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731632+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724375+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731650+0
>> [2022-05-18T09:41:27.129] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7728855+0
>> [2022-05-18T09:41:27.130] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731681+0
>> [2022-05-18T09:41:27.130] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7731651+0
>> [2022-05-18T09:41:27.131] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724380+0
>> [2022-05-18T09:41:27.131] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7728855+0
>> [2022-05-18T09:41:27.133] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724378+0
>> [2022-05-18T09:41:27.133] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724380+0
>> [2022-05-18T09:41:27.134] STEPS: Processing RPC details: 
>> REQUEST_CANCEL_JOB_STEP StepId=4367416.7724378+0
> 
> These jobs were started post upgrade, too.
> 
> Has anyone else seen this?
> 
> Thank you,
> John DeSantis

Reply via email to