]> sourceware.org Git - glibc.git/commitdiff
test-skeleton.c: Do not set RLIMIT_DATA [BZ #19648]
authorFlorian Weimer <fweimer@redhat.com>
Mon, 7 Mar 2016 12:48:47 +0000 (13:48 +0100)
committerFlorian Weimer <fweimer@redhat.com>
Mon, 7 Mar 2016 12:48:47 +0000 (13:48 +0100)
With older kernels, it is mostly ineffective because it causes malloc
to switch from sbrk to mmap (potentially invalidating malloc testing
compared to what real appliations do).  With newer kernels which
have switched to enforcing RLIMIT_DATA for mmap as well, some test
cases will fail in an unintended fashion because the limit which was
set previously does not include room for all mmap mappings.

ChangeLog
test-skeleton.c

index ce8bf046e6197d8894eb2e826bc392a265d988ec..a9b1c9b2a28f59327e5ec9874c41c640dff629ea 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-03-07  Florian Weimer  <fweimer@redhat.com>
+
+       [BZ #19648]
+       * test-skeleton.c (main): Do not set RLIMIT_DATA.
+
 2016-03-07  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
        [BZ #14750]
index a2d90a298f14a75782125cf39dadc8efe092f27d..29bdc9c74e9942313c63560994c16242ce0c91b5 100644 (file)
@@ -429,23 +429,6 @@ main (int argc, char *argv[])
       setrlimit (RLIMIT_CORE, &core_limit);
 #endif
 
-#ifdef RLIMIT_DATA
-      /* Try to avoid eating all memory if a test leaks.  */
-      struct rlimit data_limit;
-      if (getrlimit (RLIMIT_DATA, &data_limit) == 0)
-       {
-         if (TEST_DATA_LIMIT == RLIM_INFINITY)
-           data_limit.rlim_cur = data_limit.rlim_max;
-         else if (data_limit.rlim_cur > (rlim_t) TEST_DATA_LIMIT)
-           data_limit.rlim_cur = MIN ((rlim_t) TEST_DATA_LIMIT,
-                                      data_limit.rlim_max);
-         if (setrlimit (RLIMIT_DATA, &data_limit) < 0)
-           printf ("setrlimit: RLIMIT_DATA: %m\n");
-       }
-      else
-       printf ("getrlimit: RLIMIT_DATA: %m\n");
-#endif
-
       /* We put the test process in its own pgrp so that if it bogusly
         generates any job control signals, they won't hit the whole build.  */
       if (setpgid (0, 0) != 0)
This page took 0.169797 seconds and 5 git commands to generate.