[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] cgroups and OOM killers



Hi Folks,

Thanks for the suggestions. We tried the RESERVED_MEMORY (8192) and the DISABLE_SWAP_FOR_JOB - to no avail, the problem persists.  The condor_master on the execute node is choking:

07/07/23 20:27:00 The STARTD (pid 63951) was killed because it was no longer responding
Caught signal 6: si_code=0, si_pid=1, si_uid=0, si_addr=0x1
Stack dump for process 63917 at timestamp 1688755615 (18 frames)
/lib64/libcondor_utils_9_8_0.so(_Z18dprintf_dump_stackv+0x57)[0x7f1e6440b0e7]
/lib64/libcondor_utils_9_8_0.so(_Z17unix_sig_coredumpiP9siginfo_tPv+0x68)[0x7f1e64653058]
/lib64/libpthread.so.0(+0xf630)[0x7f1e62963630]
/lib64/libc.so.6(__select+0x13)[0x7f1e6267bb23]
/lib64/libcondor_utils_9_8_0.so(_ZN8Selector7executeEv+0x119)[0x7f1e64527379]
/lib64/libcondor_utils_9_8_0.so(_ZN15NamedPipeReader9read_dataEPvi+0x57)[0x7f1e64676b17]
/lib64/libcondor_utils_9_8_0.so(_ZN16ProcFamilyClient13signal_familyEi21proc_family_command_tRb+0x60)[0x7f1e64675d70]
/lib64/libcondor_utils_9_8_0.so(_ZN15ProcFamilyProxy11kill_familyEi+0x40)[0x7f1e6451fee0]
/lib64/libcondor_utils_9_8_0.so(_ZN10DaemonCore11Kill_FamilyEi+0x16)[0x7f1e6462fd06]
/usr/sbin/condor_master(_ZN6daemon6ExitedEi+0x15d)[0x55978b3920bd]
/usr/sbin/condor_master(_ZN7Daemons13DefaultReaperEii+0x122)[0x55978b395fd2]
/lib64/libcondor_utils_9_8_0.so(_ZN10DaemonCore10CallReaperEiPKcii+0x1e9)[0x7f1e6463e319]
/lib64/libcondor_utils_9_8_0.so(_ZN10DaemonCore17HandleProcessExitEii+0x339)[0x7f1e646425e9]
/lib64/libcondor_utils_9_8_0.so(_ZN10DaemonCore24HandleDC_SERVICEWAITPIDSEi+0x36)[0x7f1e64642746]
/lib64/libcondor_utils_9_8_0.so(_ZN10DaemonCore6DriverEv+0x551)[0x7f1e64643101]
/lib64/libcondor_utils_9_8_0.so(_Z7dc_mainiPPc+0x1838)[0x7f1e64658718]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f1e625a8555]
/usr/sbin/condor_master(+0xb759)[0x55978b38b759]
07/07/23 20:47:56 ******************************************************
07/07/23 20:47:56 ** condor_master (CONDOR_MASTER) STARTING UP
07/07/23 20:47:56 ** /usr/sbin/condor_master


There is a core file left behind, 

file core.63917
core.63917: ELF 64-bit LSB core file x86-64, version 1 (SYSV), SVR4-style, from '/usr/sbin/condor_master -f', real uid: 0, effective uid: 0, real gid: 0, effective gid: 0, execfn: '/usr/sbin/condor_master', platform: âx86_64'

Maybe this info helps you help us.  Have a good weekend,

JT

On 6 Jul 2023, at 19:21, Todd Tannenbaum via HTCondor-users <htcondor-users@xxxxxxxxxxx> wrote:


Hi Mary,

A couple comments in addition to the wisdom from Greg below:

1. How HTCondor on the Execution Point (EP) reacts to the OOM killer was changed/improved starting with HTCondor ver 10.3.0 to deal with issues like yours below -  from the version history in the Manual:

When HTCondor is configured to use cgroups, if the system as a whole is out of memory, and the kernel kills a job with the out of memory killer, HTCondor now checks to see if the job is below the provisioned memory. If so, HTCondor now evicts the job, and marks it as idle, not held, so that it might start again on a machine with sufficient resources. Previous, HTCondor would let this job attempt to run, hoping the next time the OOM killer fired it would pick a different process. (HTCONDOR-1512)

2. Perhaps you want to set a value for RESERVED_MEMORY in your HTCondor config?  From the Manual:

RESERVED_MEMORY How much memory would you like reserved from HTCondor? By default, HTCondor considers all the physical memory of your machine as available to be used by HTCondor jobs. If RESERVED_MEMORY is defined, HTCondor subtracts it from the amount of memory it advertises as available.
Hope the above plus Greg's ideas below helps,
Todd

On 7/6/2023 10:42 AM, Greg Thain via HTCondor-users wrote:
On 7/6/23 10:01, Mary Hester wrote:
Hello HTCondor experts,

We're seeing some interesting behaviour with user jobs on our local HTCondor cluster, running version 9.8.

Basically, if a job in the cgroup manages to go sufficiently over memory so that the container cannot allocate accountable memory that is needed for basic functioning of the system as  a whole (e.g. to hold its cmdline), then the container has impact on the whole system and will bring it down. This is a worse condition than condor not being able to fully get the status/failure reason for any single specific container. And since oom_kill_disable is set to 1, the kernel will now not intervene and hence the entire system grinds to a halt. It is preferable to loose state for a single job, have the kernel do its thing, and have the system survive. Now, the only workaround is to run for i in /sys/fs/cgroup/memory/htcondor/condor*/memory.oom_control ; do echo 0 > $i ; done in a loop to ensure the sysadmin-intended settings are applied to the condor-managed cgroups.


Hi Mary:

I'm sorry your system is having problems.  Perhaps what is happening is that there is swap enabled on the system, and cgroups are limiting the amount of physical memory used by the job, and the system is paging itself to death before the starter can read the OOM message.  Can you try setting

DISABLE_SWAP_FOR_JOB = true

and see if the problem persists?

The reason condor sets oom_kill_disable to true is that the starter registers to get notified of the OOM event, so that it can know that the reason the job exitted was due to OOM kill.  It sounds like perhaps the system is so overloaded that this event isn't getting delivered or processed.


Newer versions of HTCondor, and those with cgroup v2 don't set oom_kill_disable, they wait for the cgroup to die, and there is first class support in the cgroup for querying whether the OOM killer fired.  We hope this will be a more reliable method in the future.


Let us know how this goes,


-greg


_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users

The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/


--
Todd Tannenbaum <tannenba@xxxxxxxxxxx> University of Wisconsin-Madison
Center for High Throughput Computing Department of Computer Sciences
Calendar: https://tinyurl.com/yd55mtgd 1210 W. Dayton St. Rm #4257
Phone: (608) 263-7132 Madison, WI 53706-1685
_______________________________________________
HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting
https://lists.cs.wisc.edu/mailman/listinfo/htcondor-users

The archives can be found at:
https://lists.cs.wisc.edu/archive/htcondor-users/