Samuel F Antao
2014-Sep-05 00:39 UTC
[LLVMdev] Address sanitizer regression test failures for PPC64 targets
Hi all, I have been experiencing the failure of the address sanitizer regression tests for a PPC64 target (Power7 machine). My understanding is that most of the failures are related with the fact the stack is not being dumped. I tried to understand what might be wrong and started by looking into the null_deref.cc test as it hangs during the test run. I observe that after the detection of the faulty memory access it receives a SEGV after entering ReportSIGSEGV() more precisely when it gets to the __intercept_strlen() and tries to access flags()->replace_str. The caller of __intercept_strlen() is get_cie_encoding() from libgcc (version 4.8.2 in my system). As I am not familiar with the sanitizer implementation, I was wondering if this is an expected failure for PPC targets due to some incomplete implementation, an unexpected bug, or due to some misconfiguration in the Clang/LLVM build for PPC targets. Has anyone experienced a similar issue? Thanks in advance! Samuel -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140904/d241048e/attachment.html>
Alexey Samsonov
2014-Sep-05 01:26 UTC
[LLVMdev] [cfe-dev] Address sanitizer regression test failures for PPC64 targets
+Bill Schmidt On Thu, Sep 4, 2014 at 5:39 PM, Samuel F Antao <sfantao at us.ibm.com> wrote:> Hi all, > > I have been experiencing the failure of the address sanitizer regression > tests for a PPC64 target (Power7 machine). My understanding is that most of > the failures are related with the fact the stack is not being dumped. > > I tried to understand what might be wrong and started by looking into the > null_deref.cc test as it hangs during the test run. I observe that after > the detection of the faulty memory access it receives a SEGV after entering > ReportSIGSEGV() more precisely when it gets to the __intercept_strlen() and > tries to access flags()->replace_str. The caller of __intercept_strlen() > is get_cie_encoding() from libgcc (version 4.8.2 in my system). > > As I am not familiar with the sanitizer implementation, I was wondering if > this is an expected failure for PPC targets due to some incomplete > implementation, an unexpected bug, or due to some misconfiguration in the > Clang/LLVM build for PPC targets. > > Has anyone experienced a similar issue? >Sanitizer used to work on PPC at some point, but currently it fails on most of the tests from "check-asan" test suite on the PowerPC buildbot ( http://lab.llvm.org:8011/builders/sanitizer-ppc64-linux1). I can't really diagnose the issue from your description. flags() is just a pointer to a global variable, so I don't see why access to flags()->replace_str will segfault.> > > Thanks in advance! > Samuel > > _______________________________________________ > cfe-dev mailing list > cfe-dev at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev > >-- Alexey Samsonov vonosmas at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140904/23e1c5fe/attachment.html>
Alexander Potapenko
2014-Sep-05 06:06 UTC
[LLVMdev] [cfe-dev] Address sanitizer regression test failures for PPC64 targets
Note that I've set the SA_NODEFER flag for the SEGV handler in the ASan runtime only a couple of days ago. Not sure that could've affected this test though; without that flag the second SEGV would've simply crashed the program. But you can try removing the flag from compiler-rt/trunk/lib/sanitizer_common/sanitizer_posix_libcdep.cc and see if that makes any difference. HTH, Alex On Fri, Sep 5, 2014 at 5:26 AM, Alexey Samsonov <vonosmas at gmail.com> wrote:> +Bill Schmidt > > On Thu, Sep 4, 2014 at 5:39 PM, Samuel F Antao <sfantao at us.ibm.com> wrote: >> >> Hi all, >> >> I have been experiencing the failure of the address sanitizer regression >> tests for a PPC64 target (Power7 machine). My understanding is that most of >> the failures are related with the fact the stack is not being dumped. >> >> I tried to understand what might be wrong and started by looking into the >> null_deref.cc test as it hangs during the test run. I observe that after >> the detection of the faulty memory access it receives a SEGV after entering >> ReportSIGSEGV() more precisely when it gets to the __intercept_strlen() and >> tries to access flags()->replace_str. The caller of __intercept_strlen() is >> get_cie_encoding() from libgcc (version 4.8.2 in my system). >> >> As I am not familiar with the sanitizer implementation, I was wondering if >> this is an expected failure for PPC targets due to some incomplete >> implementation, an unexpected bug, or due to some misconfiguration in the >> Clang/LLVM build for PPC targets. >> >> Has anyone experienced a similar issue? > > > Sanitizer used to work on PPC at some point, but currently it fails on most > of the tests from "check-asan" test suite on the PowerPC buildbot > (http://lab.llvm.org:8011/builders/sanitizer-ppc64-linux1). > I can't really diagnose the issue from your description. flags() is just a > pointer to a global variable, so I don't see why access to > flags()->replace_str will segfault. > >> >> >> >> Thanks in advance! >> Samuel >> >> >> _______________________________________________ >> cfe-dev mailing list >> cfe-dev at cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev >> > > > > -- > Alexey Samsonov > vonosmas at gmail.com > > _______________________________________________ > cfe-dev mailing list > cfe-dev at cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev >-- Alexander Potapenko Software Engineer Google Moscow
Apparently Analagous Threads
- [LLVMdev] [cfe-dev] Address sanitizer regression test failures for PPC64 targets
- [LLVMdev] [cfe-dev] Address sanitizer regression test failures for PPC64 targets
- [LLVMdev] [cfe-dev] Address sanitizer regression test failures for PPC64 targets
- [LLVMdev] Issue with std::call_once in PPC64 platform
- [LLVMdev] Issue with std::call_once in PPC64 platform