On 04/11/2014 04:15 PM, Josh Boyer wrote:
On Fri, Apr 11, 2014 at 5:10 AM, Jakub Jelinek <ja...@redhat.com> wrote:
On Fri, Apr 11, 2014 at 11:32:53AM +0300, Panu Matilainen wrote:
On 04/10/2014 05:38 PM, Richard W.M. Jones wrote:
On Thu, Apr 10, 2014 at 12:23:07PM +0200, Jakub Jelinek wrote:
To investigate runtime rather than compile time
issues, please consider using temporarily -fsanitize=undefined and/or
-fsanitize=address to look for undefined behavior in the packages
you own.

Which is this in case anyone else was wondering:

   '-fsanitize=address'
      Enable AddressSanitizer, a fast memory error detector.  Memory
      access instructions will be instrumented to detect out-of-bounds
      and use-after-free bugs.  See
      <http://code.google.com/p/address-sanitizer/> for more details.
      The run-time behavior can be influenced using the 'ASAN_OPTIONS'
      environment variable; see
      <https://code.google.com/p/address-sanitizer/wiki/Flags#Run-time_flags>
      for a list of supported options.

Also in case anybody else wonders about gcc failing to recognize
these options, you'll need to add BuildRequires for these: libasan
for -fsanitize=address and libubsan for -fsanitize=undefined (and
similarly for leak and thread sanitizers )

Yeah.  But, note that the sanitizers are meant primarily for development,
not for production, and especially -fsanitize=thread and to some extent
-fsanitize=address aren't completely cheap, so if you do that, please do
so temporarily and don't forget to disable it again for production.

Seems they were enabled for RPM in rawhide and now a mock chroot fails
to init because RPM explodes.  This is from a noarch (which is run on
an ARM builder) build from a scratch build.

DEBUG util.py:331:  Executing command: ['rpm', '-Uvh', '--nodeps',
'/builddir/build/originals/kernel-3.15.0-0.rc0.git12.1.fc21.src.rpm']
with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL':
'/bin/bash', 'HOSTNAME': 'mock', 'PROMPT_COMMAND': 'echo -n
"<mock-chroot>"', 'HOME': '/builddir', 'PATH':
'/usr/bin:/bin:/usr/sbin:/sbin'}
DEBUG util.py:281:  ==13953==AddressSanitizer CHECK failed:
../../../../libsanitizer/asan/asan_globals.cc:91
"((AddrIsAlignedByGranularity(g->beg))) != (0)" (0x0, 0x0)
DEBUG util.py:281:      #0 0xb6a6d21b (/lib/libasan.so.1+0x6121b)
DEBUG util.py:281:      #1 0xb6a71a8b in __sanitizer::CheckFailed(char
const*, int, char const*, unsigned long long, unsigned long long)
(/lib/libasan.so.1+0x65a8b)
DEBUG util.py:281:      #2 0xb6a2b01b in __asan_register_globals
(/lib/libasan.so.1+0x1f01b)
DEBUG util.py:281:      #3 0xb6f11877 in call_init.part.0
(/lib/ld-linux-armhf.so.3+0x11877)
DEBUG util.py:281:      #4 0xb6f119d3 in _dl_init
(/lib/ld-linux-armhf.so.3+0x119d3)
DEBUG util.py:281:      #5 0xb6f00bc3 (/lib/ld-linux-armhf.so.3+0xbc3)
DEBUG util.py:371:  Child return code was: 1

Full scratch build:

http://koji.fedoraproject.org/koji/taskinfo?taskID=6727256

Oh ... ¤#%#¤%#. I realized this blows up, fired a new build to disable the thing again ASAP. And thought it completed okay and kinda forgot about it:
http://koji.fedoraproject.org/koji/taskinfo?taskID=6726924

Built okay on everything but ARM, dunno why that is... but the buggy rpm needs untagging now (will do as soon as I get the expired certificate sorted, but if somebody beats me to it, feel free)

Apologies for the mess,

        - Panu -

josh


--
devel mailing list
devel@lists.fedoraproject.org
https://admin.fedoraproject.org/mailman/listinfo/devel
Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct

Reply via email to