[llvm] r314535 - [test] Enable LeakSanitizer on 64-bit Darwin ASan llvm builds
Quentin Colombet via llvm-commits
llvm-commits at lists.llvm.org
Mon Oct 9 13:55:31 PDT 2017
Thanks for jumping on this!
> Le 9 oct. 2017 à 13:07, Francis Ricci <francisjricci at gmail.com> a écrit :
>
> https://reviews.llvm.org/D38703
>
>> On Mon, Oct 9, 2017 at 3:29 PM, Francis Ricci <francisjricci at gmail.com> wrote:
>> ooo I didn't realize that. I'll write up a diff.
>>
>>> On Mon, Oct 9, 2017 at 3:26 PM, Quentin Colombet <qcolombet at apple.com> wrote:
>>> We do have an internal bot that doesn’t do bootstrap and run ASan, so we’ll need the detection mechanism sooner rather than later.
>>>
>>>> Le 9 oct. 2017 à 12:14, Francis Ricci <francisjricci at gmail.com> a écrit :
>>>>
>>>> If it's alright by you though, I'll commit
>>>> https://reviews.llvm.org/D38699? Should fix the buildbot issues.
>>>>
>>>>> On Mon, Oct 9, 2017 at 3:08 PM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>> Checking in lit is going to be tough, because we'd need to:
>>>>> 1) manually parse clang --version
>>>>> 2) manually do comparisons for "version greater than", since they
>>>>> aren't strictly numeric (they have 2 decimal points)
>>>>> 3) figure out which apple version corresponds to the point where LSan
>>>>> was added (it appears to be unsupported in xcode 8.3, but partially
>>>>> supported in xcode 9 - detect_leaks=1 works, but fsanitize=leak fails)
>>>>>
>>>>>> On Mon, Oct 9, 2017 at 3:00 PM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>>> Hmm, that's a good point. I wonder if there's a way to check the clang
>>>>>> version from the lit config. Would be a good thing to add (and I'll
>>>>>> look into it), but also shouldn't affect the buildbots, since they use
>>>>>> bootstrapped clang.
>>>>>>
>>>>>>> On Mon, Oct 9, 2017 at 2:57 PM, Quentin Colombet <qcolombet at apple.com> wrote:
>>>>>>>
>>>>>>> Thanks Francis, that makes sense.
>>>>>>>
>>>>>>> Shouldn’t cmake check that the feature is supported before forcing it?
>>>>>>>
>>>>>>>
>>>>>>>> On Oct 9, 2017, at 11:49 AM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>>>>>
>>>>>>>> Yeah, I just verified that only the most recent failing build (#5339)
>>>>>>>> had more than one failing test, the two before that (#5338 and #5337)
>>>>>>>> had only the single failure. I haven't had any commits in that time
>>>>>>>> frame, so something else must have broken separately from my patch.
>>>>>>>>
>>>>>>>>> On Mon, Oct 9, 2017 at 2:46 PM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>>>>>> The error output for that build:
>>>>>>>>> 1 warning(s) in tests.
>>>>>>>>> Testing Time: 14689.69s
>>>>>>>>> ********************
>>>>>>>>> Failing Tests (1):
>>>>>>>>> LLVM :: tools/llvm-objdump/macho-LLVM-bundle.test
>>>>>>>>>
>>>>>>>>> Expected Passes : 38761
>>>>>>>>> Expected Failures : 253
>>>>>>>>> Unsupported Tests : 973
>>>>>>>>> Unexpected Failures: 1
>>>>>>>>> FAILED: CMakeFiles/check-all
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>> On Mon, Oct 9, 2017 at 2:46 PM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>>>>>>> I believe that was only the most recent test run. Most of the test
>>>>>>>>>> runs that have failed only had a single error:
>>>>>>>>>> http://green.lab.llvm.org/green/job/clang-stage2-cmake-RgSan/5337/changes
>>>>>>>>>>
>>>>>>>>>> `detect_leaks is not supported on this platform.` generally means that
>>>>>>>>>> you're using the system clang instead of the bootstrapped clang
>>>>>>>>>> (because LSan wasn't added until the most recent release)
>>>>>>>>>>
>>>>>>>>>>> On Mon, Oct 9, 2017 at 2:42 PM, Quentin Colombet <qcolombet at apple.com> wrote:
>>>>>>>>>>> Hmm, the report says
>>>>>>>>>>> Unexpected Failures: 4762
>>>>>>>>>>>
>>>>>>>>>>> It does not seem to be just this one test.
>>>>>>>>>>> I talked with Anna and she said that detecting leaks is not supported on the
>>>>>>>>>>> Mac [with ASan].
>>>>>>>>>>> Which matches what I see locally:
>>>>>>>>>>>
>>>>>>>>>>> ==5185==AddressSanitizer: detect_leaks is not supported on this platform.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I admit I didn’t follow this works and my config may be out of date, still
>>>>>>>>>>> there is more than one test failing on the bot :).
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Oct 9, 2017, at 11:31 AM, Francis Ricci <francisjricci at gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>> I didn't realize it was still broken because I didn't get an email.
>>>>>>>>>>> Looks like there's only one leaky test -
>>>>>>>>>>> tools/llvm-objdump/macho-LLVM-bundle.test (which doesn't repro
>>>>>>>>>>> locally). I'll commit a diff to disable leak checking on that test.
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Oct 9, 2017 at 2:27 PM, Quentin Colombet <qcolombet at apple.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi Francis,
>>>>>>>>>>>
>>>>>>>>>>> This commit has broken the ASan bot for almost a week now.
>>>>>>>>>>>
>>>>>>>>>>> Could you fix or revert please?
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> -Quentin
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Oct 3, 2017, at 11:18 PM, Mike Edwards via llvm-commits
>>>>>>>>>>> <llvm-commits at lists.llvm.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>> Hi,
>>>>>>>>>>> Our Stage 2 ASAN bot
>>>>>>>>>>> (http://green.lab.llvm.org/green/job/clang-stage2-cmake-RgSan/) is having
>>>>>>>>>>> trouble with this commit.
>>>>>>>>>>>
>>>>>>>>>>> I believe this issue lies in this line:
>>>>>>>>>>> Modified: llvm/trunk/utils/lit/lit/llvm/config.py
>>>>>>>>>>> + self.with_environment('ASAN_OPTIONS', 'detect_leaks=1',
>>>>>>>>>>> append_path=True)
>>>>>>>>>>>
>>>>>>>>>>> I am pretty sure the append_path=True is causing the output of the function
>>>>>>>>>>> to append the following to the config.environment dict:
>>>>>>>>>>> 'ASAN_OPTIONS': 'detect_leaks=1:.'
>>>>>>>>>>>
>>>>>>>>>>> This output causes an error to be thrown when config.py is run because the
>>>>>>>>>>> extra ':.' appended to the 'detect_leaks=1' value causes an error when
>>>>>>>>>>> parsing the key. Would it be possible to remove the argument
>>>>>>>>>>> 'append_path=True' from the function call? I tried commenting the argument
>>>>>>>>>>> out and re-running the lit command and everything worked again as expected.
>>>>>>>>>>> Any help you can provide here would be greatly appreciated.
>>>>>>>>>>>
>>>>>>>>>>> Respectfully,
>>>>>>>>>>> Mike Edwards
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Sep 29, 2017 at 9:51 AM, Francis Ricci via llvm-commits
>>>>>>>>>>> <llvm-commits at lists.llvm.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Author: fjricci
>>>>>>>>>>> Date: Fri Sep 29 09:51:50 2017
>>>>>>>>>>> New Revision: 314535
>>>>>>>>>>>
>>>>>>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=314535&view=rev
>>>>>>>>>>> Log:
>>>>>>>>>>> [test] Enable LeakSanitizer on 64-bit Darwin ASan llvm builds
>>>>>>>>>>>
>>>>>>>>>>> Summary:
>>>>>>>>>>> Also disables leak checking on lto tests, due to many leaks reported
>>>>>>>>>>> in the system's ld64.
>>>>>>>>>>>
>>>>>>>>>>> Reviewers: kcc, pcc, bogner, kubamracek
>>>>>>>>>>>
>>>>>>>>>>> Subscribers: mehdi_amini, llvm-commits
>>>>>>>>>>>
>>>>>>>>>>> Differential Revision: https://reviews.llvm.org/D37781
>>>>>>>>>>>
>>>>>>>>>>> Modified:
>>>>>>>>>>> llvm/trunk/test/tools/lto/lit.local.cfg
>>>>>>>>>>> llvm/trunk/utils/lit/lit/llvm/config.py
>>>>>>>>>>>
>>>>>>>>>>> Modified: llvm/trunk/test/tools/lto/lit.local.cfg
>>>>>>>>>>> URL:
>>>>>>>>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/lto/lit.local.cfg?rev=314535&r1=314534&r2=314535&view=diff
>>>>>>>>>>>
>>>>>>>>>>> ==============================================================================
>>>>>>>>>>> --- llvm/trunk/test/tools/lto/lit.local.cfg (original)
>>>>>>>>>>> +++ llvm/trunk/test/tools/lto/lit.local.cfg Fri Sep 29 09:51:50 2017
>>>>>>>>>>> @@ -1,2 +1,6 @@
>>>>>>>>>>> if not ('ld64_plugin' in config.available_features and 'X86' in
>>>>>>>>>>> config.root.targets):
>>>>>>>>>>> - config.unsupported = True
>>>>>>>>>>> + config.unsupported = True
>>>>>>>>>>> +
>>>>>>>>>>> +# These tests invoke ld64 from the system, which is not leak-free
>>>>>>>>>>> +if "Address" in config.llvm_use_sanitizer:
>>>>>>>>>>> + config.environment['ASAN_OPTIONS'] = 'detect_leaks=0'
>>>>>>>>>>>
>>>>>>>>>>> Modified: llvm/trunk/utils/lit/lit/llvm/config.py
>>>>>>>>>>> URL:
>>>>>>>>>>> http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/lit/lit/llvm/config.py?rev=314535&r1=314534&r2=314535&view=diff
>>>>>>>>>>>
>>>>>>>>>>> ==============================================================================
>>>>>>>>>>> --- llvm/trunk/utils/lit/lit/llvm/config.py (original)
>>>>>>>>>>> +++ llvm/trunk/utils/lit/lit/llvm/config.py Fri Sep 29 09:51:50 2017
>>>>>>>>>>> @@ -75,6 +75,9 @@ class LLVMConfig(object):
>>>>>>>>>>> features.add("long_tests")
>>>>>>>>>>>
>>>>>>>>>>> if target_triple:
>>>>>>>>>>> + if re.match(r'^x86_64.*-apple', target_triple):
>>>>>>>>>>> + if 'address' in sanitizers:
>>>>>>>>>>> + self.with_environment('ASAN_OPTIONS',
>>>>>>>>>>> 'detect_leaks=1', append_path=True)
>>>>>>>>>>> if re.match(r'^x86_64.*-linux', target_triple):
>>>>>>>>>>> features.add("x86_64-linux")
>>>>>>>>>>> if re.match(r'.*-win32$', target_triple):
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> llvm-commits mailing list
>>>>>>>>>>> llvm-commits at lists.llvm.org
>>>>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> llvm-commits mailing list
>>>>>>>>>>> llvm-commits at lists.llvm.org
>>>>>>>>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>
More information about the llvm-commits
mailing list