hsearch_r: Apply VM size limit in test case

Message ID 56B88CF0.40809@redhat.com
State Committed
Headers

Commit Message

Florian Weimer Feb. 8, 2016, 12:41 p.m. UTC
  As discussed before.

Florian
  

Comments

Mike Frysinger Feb. 8, 2016, 3:31 p.m. UTC | #1
OK
-mike
  
Florian Weimer Feb. 12, 2016, 8:31 a.m. UTC | #2
On 02/08/2016 04:31 PM, Mike Frysinger wrote:
> OK -mike

Adhemerval,

is this okay for master?

  <https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>

People building on larger boxes notice the test failure:

  <https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>

Thanks,
Florian
  
Szabolcs Nagy Feb. 12, 2016, 10:18 a.m. UTC | #3
On 12/02/16 08:31, Florian Weimer wrote:
> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>> OK -mike
> 
> Adhemerval,
> 
> is this okay for master?
> 
>   <https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>
> 
> People building on larger boxes notice the test failure:
> 
>   <https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>
> 
> Thanks,
> Florian
> 

fwiw i tested the patch on aarch64 and fixes the issue as expected.
  
Adhemerval Zanella Netto Feb. 12, 2016, 11:56 a.m. UTC | #4
On 12-02-2016 06:31, Florian Weimer wrote:
> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>> OK -mike
> 
> Adhemerval,
> 
> is this okay for master?

Yes, thanks.

> 
>   <https://sourceware.org/ml/libc-alpha/2016-02/msg00085.html>
> 
> People building on larger boxes notice the test failure:
> 
>   <https://sourceware.org/bugzilla/show_bug.cgi?id=18240#c14>
> 
> Thanks,
> Florian
>
  
Florian Weimer Feb. 12, 2016, 12:13 p.m. UTC | #5
On 02/12/2016 12:56 PM, Adhemerval Zanella wrote:
> 
> 
> On 12-02-2016 06:31, Florian Weimer wrote:
>> On 02/08/2016 04:31 PM, Mike Frysinger wrote:
>>> OK -mike
>>
>> Adhemerval,
>>
>> is this okay for master?
> 
> Yes, thanks.

Thanks, pushed.

Florian
  

Patch

2016-02-08  Florian Weimer  <fweimer@redhat.com>

	* misc/bug18240.c (do_test): Set RLIMIT_AS.

diff --git a/misc/bug18240.c b/misc/bug18240.c
index 4b26865..773586e 100644
--- a/misc/bug18240.c
+++ b/misc/bug18240.c
@@ -22,6 +22,7 @@ 
 #include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <sys/resource.h>
 
 static void
 test_size (size_t size)
@@ -58,6 +59,27 @@  test_size (size_t size)
 static int
 do_test (void)
 {
+  /* Limit the size of the process, so that memory allocation will
+     fail without impacting the entire system.  */
+  {
+    struct rlimit limit;
+    if (getrlimit (RLIMIT_AS, &limit) != 0)
+      {
+        printf ("getrlimit (RLIMIT_AS) failed: %m\n");
+        return 1;
+      }
+    long target = 100 * 1024 * 1024;
+    if (limit.rlim_cur == RLIM_INFINITY || limit.rlim_cur > target)
+      {
+        limit.rlim_cur = target;
+        if (setrlimit (RLIMIT_AS, &limit) != 0)
+          {
+            printf ("setrlimit (RLIMIT_AS) failed: %m\n");
+            return 1;
+          }
+      }
+  }
+
   test_size (500);
   test_size (-1);
   test_size (-3);