On Jan 28, 2014, at 12:57 AM, İsmail Dönmez <[email protected]> wrote:
> With jemalloc 3.5.0 we have a testsuite regression on openSUSE 13.1/i586 with 
> gcc 4.8.1, 
> configured with ./configure --enable-cc-silence
> 
> make check fails:
> 
> test_stats_chunks:test/unit/stats.c:41: Failed assertion: 
> (jet_mallctl("stats.chunks.total", &total, &sz, ((void *)0), 0)) == 
> (expected) --> 22 != 0: test_stats_chunks
> 
> test_stats_arenas_bins:test/unit/stats.c:291: Failed assertion: 
> (jet_mallctl("stats.arenas.0.bins.0.curruns", &curruns, &sz, ((void *)0), 0)) 
> == (expected) --> 22 != 0: test_stats_arenas_bins
> 
> test_stats_arenas_lruns:test/unit/stats.c:343: Failed assertion: 
> (jet_mallctl("stats.arenas.0.lruns.0.curruns", &curruns, &sz, ((void *)0), 
> 0)) == (expected) --> 22 != 0: test_stats_arenas_lruns

The stats failures are all due to mallctl argument size mismatches, fixed here:

        
https://github.com/jemalloc/jemalloc/commit/2b51a3e9e9bfebf081d25dfa92f3cd89e4a8ed73

> test_oom_errors:test/integration/aligned_alloc.c:59: Failed assertion: (p != 
> ((void *)0) || je_get_errno() != 12) == (false) --> true != false: 
> test_oom_errors
> 
> test_alignment_errors:test/integration/mallocx.c:53: Failed assertion: (p) == 
> (NULL) --> 0x40000000 != 0x0: test_alignment_errors
> 
> test_oom_errors:test/integration/posix_memalign.c:53: Failed assertion: 
> (posix_memalign(&p, alignment, size)) != (0) --> 0 == 0: test_oom_errors
> 
> 64bit builds are fine.


Wow, the machine is actually satisfying an mmap() request of size 0xd0000000 
(3.5 GiB) in order for this to be happening.  The tests are flawed, and they 
"pass" on 64-bit systems because of the virtual memory hole in the middle of 
the 64-bit address space.  Fixed here:

        
https://github.com/jemalloc/jemalloc/commit/a184d3fcdecfaaf694029fb375d023882aea444e

In the case of mallocx(), this is technically undefined territory, so just 
removed that test, but for aligned_alloc() and posix_memalign(), I increased 
the request size enough to guarantee failure.

In summary, these failures are all due to test bugs, rather than bugs in the 
library itself.

Thanks,
Jason
_______________________________________________
jemalloc-discuss mailing list
[email protected]
http://www.canonware.com/mailman/listinfo/jemalloc-discuss

Reply via email to