[Development] Qt with sanitizers

Konstantin Tokarev annulen at yandex.ru
Wed Oct 18 12:33:40 CEST 2017



18.10.2017, 12:03, "Jedrzej Nowacki" <jedrzej.nowacki at qt.io>:
> Hi,
>
>   I made an experiment to see if we should enable sanitizers in CI, by
> default. Essentially, how much we would slow down integrations and what would
> be the tests pass rate. Short answer is that, currently, it is not an option,
> but I produced some data, if someone is interested, please keep reading
>
> Platform:
> Linux Ubuntu_16_04 (gcc-x86_64) DeveloperBuild, OutOfSourceBuild, QtLibInfix,
> QtNamespace, BuildExamples, Documentation
> GCC 5.4 (yes, it is quite old)
> CPU count = 4
>
>  Build
>
> qt/qtbase a6546a56fa978bc9ed63203b4ef547adcfd59408 (3/5 completed)
>
> State Features Duration
> ------- --------------------------------- ---------
> Done Normal build 28min1s
> Done ConfigureWithAddressSanitizer 35min47s
> Done ConfigureWithThreadSanitizer 42min44s
> Error ConfigureWithMemorySanitizer 0min55s
> Error ConfigureWithUndefinedSanitizer 4min35s

Note that some sanitizers are compatible and can be used at once in same build,
in particular UBSan can be used with anything else:

https://github.com/llvm-mirror/clang/blob/master/lib/Driver/SanitizerArgs.cpp#L371

>
>  Test
>
> qt/qtbase a6546a56fa978bc9ed63203b4ef547adcfd59408 (1/5 completed)
>
> State Features Duration
> ----------- ------------------------------- ---------
> Done Normal build 51min59s
> Error ConfigureWithAddressSanitizer 1h9min57s
> Error ConfigureWithThreadSanitizer 1h49min8s
> Cancelled ConfigureWithMemorySanitizer
> Cancelled ConfigureWithUndefinedSanitizer
>
> At first, I could not even build qtbase, only after applying this https://
> codereview.qt-project.org/#/c/208359/ I managed to fix linking issues. Sadly
> ConfigureWithMemorySanitizer and ConfigureWithUndefinedSanitizer failed to build
> and I had no immediate idea how to fix them so I ignored the problem.
>
> The logs from the tests execution are big. Quite a lot of issues were found
> and some were definitely valid. If you look into them, remember that some tests
> failed, therefore they could potentially produce an odd outcome.
>
> Interesting part of logs are here:
> Filename: logs.tar.gz
> Filesize: 4.29 MB
> Download link: https://filesender.qt.io/?vid=3775e69f-3d64-f5a9-a225-00003c357692
> The file is available until 07-11-2017 after which it will be automatically
> deleted.
>
> Cheers,
>   Jędrek
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

-- 
Regards,
Konstantin



More information about the Development mailing list