<html>
<head>
<base href="https://bugs.llvm.org/">
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW - SanitizerCommon.SizeClassAllocator32Iteration FAIL on Solaris/sparcv9"
href="https://bugs.llvm.org/show_bug.cgi?id=48202">48202</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>SanitizerCommon.SizeClassAllocator32Iteration FAIL on Solaris/sparcv9
</td>
</tr>
<tr>
<th>Product</th>
<td>compiler-rt
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>Sun
</td>
</tr>
<tr>
<th>OS</th>
<td>Solaris
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>compiler-rt
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>ro@gcc.gnu.org
</td>
</tr>
<tr>
<th>CC</th>
<td>llvm-bugs@lists.llvm.org, vitalybuka@google.com
</td>
</tr></table>
<p>
<div>
<pre>With sanitizer_common testing enabled on Solaris/sparcv9, two tests FAIL:
SanitizerCommon-Unit ::
./Sanitizer-sparcv9-Test/SanitizerCommon.SizeClassAllocator32Iteration
/vol/llvm/src/llvm-project/local/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp:920:
Failure
Expected: (reported_chunks.find(reinterpret_cast<uptr>(allocated[i]))) !=
(reported_chunks.end()), actual: 8-byte object <FF-FF FF-FF 7F-FF 18-A8> vs
8-byte object <FF-FF FF-FF 7F-FF 18-A8>
SanitizerCommon-Unit ::
./Sanitizer-sparcv9-Test/SanitizerCommon.CombinedAllocator32Compact
/vol/llvm/src/llvm-project/local/compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp:665:
Failure
Expected: (reported_chunks.find(allocated_ptr)) != (reported_chunks.end()),
actual: 8-byte object <FF-FF FF-FF 7F-FE FA-08> vs 8-byte object <FF-FF FF-FF
7F-FE FA-08>
I've made absolutely no progress understanding what's going on, even after
enabling the tests in a Debug build. However, I do notice
SANITIZER_MMAP_RANGE_SIZE in sanitizer_platform.h: the value used there is
wrong:
Solaris/sparcv9 uses the full 64-bit address space:
<a href="https://docs.oracle.com/cd/E37838_01/html/E66175/advanced-2.html#SSFDGadvanced-5">https://docs.oracle.com/cd/E37838_01/html/E66175/advanced-2.html#SSFDGadvanced-5</a>
but changing the definititon to
#define SANITIZER_MMAP_RANGE_SIZE FIRST_32_SECOND_64(1ULL << 32, 1ULL << 64)
obviously doesn't even compile. Even reducing it to 1ULL << 63 for a test
causes large numbers of tests to FAIL: Solaris doesn't allocate lazily, but
requires VM to be backed by swap, which created OOM conditions all along the
way.
I have a patch to just disable those two tests.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>