thread heap leak?
Carlos O'Donell
codonell@redhat.com
Thu Mar 28 18:32:00 GMT 2019
On 3/28/19 2:17 PM, David Muse wrote:
> I just remembered something...
>
> You mentioned 2mb or 8mb stack ulimits. The default is 8mb, but we're using:
> ulimit -s unlimited
>
> on the production VM. Could this be contributing to the problem?
No, that's not likely the problem.
Thread stacks are allocated with mmap, and in the presence of an unlimited
ulimit they fall back to the default size which is 2MiB.
nptl/nptl-init.c:
350 /* Determine the default allowed stack size. This is the size used
351 in case the user does not specify one. */
352 struct rlimit limit;
353 if (__getrlimit (RLIMIT_STACK, &limit) != 0
354 || limit.rlim_cur == RLIM_INFINITY)
355 /* The system limit is not usable. Use an architecture-specific
356 default. */
357 limit.rlim_cur = ARCH_STACK_DEFAULT_SIZE;
^^^^^^^^^^^^^^^^^^^^^^^
358 else if (limit.rlim_cur < PTHREAD_STACK_MIN)
359 /* The system limit is unusably small.
360 Use the minimal size acceptable. */
361 limit.rlim_cur = PTHREAD_STACK_MIN;
sysdeps/x86_64/nptl/pthreaddef.h
19 /* Default stack size. */
20 #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list