Hi, All.

Rishi, can you attach log from strace -f 
./testcases/kernel/mem/mtest07/mallocstress ?

> Please find below some problem related to mallocstress testcase failing
> on x86_64. Let us know if some of you have encountered this.
>
> ------------------------------------
> Rishi Reported:
> ------------------------------------
> mallocstress testcase is failing on:
> Linux 2.6.27-rc6-7-default #1 SMP 2008-09-15 10:58:05 +0200 x86_64
> x86_64
>
> # ./testcases/kernel/mem/mtest07/mallocstress
> Aborted
>
> ---Kernel Component Data--- 
> Stack trace output: i am attaching full strace.
> <snip>
>   clone(child_stack=0x7fe381a96250,
> flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID,
> parent_tidptr=0x7fe381a969e0, tls=0x7fe381a96950, 
> child_tidptr=0x7fe381a969e0) =
> 27334
> nanosleep({0, 0}, NULL)                 = 0
> semop(34439172, 0x7fffa7cbef00, 1)      = 0
> futex(0x7fe39f2d19e0, FUTEX_WAIT, 27275, NULL <unfinished ...>
> +++ killed by SIGABRT +++
> ---------------------------------------
> Nagesh Sharyathi Replied:
> ---------------------------------------
> I was able to recreate the problem by spawning only 2 threads:
>
> This is what I found:
> ------------------------------------------------------------------------------------
> [pid  8006] tgkill(8004, 8006, SIGABRT <unfinished ...>
> [pid  8005] <... mmap resumed> )        = 0x7f8ba781b000
> [pid  8006] <... tgkill resumed> )      = 0
> [pid  8005] nanosleep({0, 0},  <unfinished ...>
> [pid  8006] --- SIGABRT (Aborted) @ 0 (0) ---
> Process 8006 detached
> [pid  8005] <... nanosleep resumed> NULL) = 0
> [pid  8005] +++ killed by SIGABRT +++
> +++ killed by SIGABRT +++
> ------------------------------------------------------------------------------------
>
> So one of the thread is sending tgkill to whole group. Need to look into 
> glibc code to understand the problem. Test case is failing strangely while 
> calling free()
>
> =================================
>          for (i = 0; i < num_alloc; i++)
>          {
>              dprt(("pid[%d]: freeing ptrs[i] %p\n", getpid(), ptrs[i]));
>          if (ptrs[i][0] != i) {
>          fprintf(stderr, "pid[%d]: fail: bad sentinel value\n", getpid());
>          return 1;
>          }
>          free(ptrs[i]);  <== Problem area
>              my_yield();
>         }
> =================================
>
> Regards--
> Subrata
>
>   


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to