After porting LuaJIT build system to CMake in commit 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build system'), its build options are not fully maintained in Tarantool. E.g. several compile flags, such as -fomit-frame-pointer, are set within LuaJIT CMake machinery and there is no way to tweak them outside. As a result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to LuaJIT runtime, but there is none of them actually (no source code changes are made in scope of the applied patchset). Hence it was decided to consider all LuaJIT related warnings as false positives for now and suppress them until #5878 is resolved. [1]: https://github.com/tarantool/tarantool/runs/1999839396 Follows up #4862 Relates to #5878 Signed-off-by: Igor Munkin <imun@tarantool.org> --- This is a temporary solution, until #5878 is resolved. BTW, it looks like a ASAN/LSAN problem since, running it with fast_unwind_on_malloc=0 doesn't make CI green and otherwise I have no idea why -fno-omit-frame-pointer is obligatory for sanitizers (I found not a single word in Google sanitizers docs regarding it). Though there is no problems on the stable branches other than 1.10, I believe this patch should be applied to all branches containing 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build system') to reduce the chance of unexpected CI breakage either on working or on stable branch. Issues: * https://github.com/tarantool/tarantool/issues/4862 * https://github.com/tarantool/tarantool/issues/5878 Branches: one with the patch and another providing CI is green on 1.10 * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit-1.10 asan/lsan.supp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/asan/lsan.supp b/asan/lsan.supp index e3b62e653..198df89c3 100644 --- a/asan/lsan.supp +++ b/asan/lsan.supp @@ -24,9 +24,12 @@ leak:Curl_resolver_init # source: /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so leak:gconv_init -# test: box*/ +# XXX: All warnings reported for LuaJIT runtime are considered +# false positive until sanitizers support is not introduced in +# LuaJIT. See the issue below for more info. +# https://github.com/tarantool/tarantool/issues/5878 # source: third_party/luajit -leak:lj_BC_FUNCC +leak:lj_* # test: box/access.test.lua # test: box/access_bin.test.lua -- 2.25.0
Hi Igor, thanks for your patch, it helped to return 1.10 testing in green, patch LGTM [1]. [1]: https://github.com/tarantool/tarantool/runs/2096939827#step:5:4388 On Fri, Mar 12, 2021 at 11:01:05PM +0300, Igor Munkin wrote: > After porting LuaJIT build system to CMake in commit > 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build > system'), its build options are not fully maintained in Tarantool. E.g. > several compile flags, such as -fomit-frame-pointer, are set within > LuaJIT CMake machinery and there is no way to tweak them outside. As a > result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to > LuaJIT runtime, but there is none of them actually (no source code > changes are made in scope of the applied patchset). Hence it was decided > to consider all LuaJIT related warnings as false positives for now and > suppress them until #5878 is resolved. > > [1]: https://github.com/tarantool/tarantool/runs/1999839396 > > Follows up #4862 > Relates to #5878 > > Signed-off-by: Igor Munkin <imun@tarantool.org> > --- > > This is a temporary solution, until #5878 is resolved. BTW, it looks > like a ASAN/LSAN problem since, running it with fast_unwind_on_malloc=0 > doesn't make CI green and otherwise I have no idea why > -fno-omit-frame-pointer is obligatory for sanitizers (I found not a > single word in Google sanitizers docs regarding it). Though there is no > problems on the stable branches other than 1.10, I believe this patch > should be applied to all branches containing > 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build > system') to reduce the chance of unexpected CI breakage either on > working or on stable branch. > > Issues: > * https://github.com/tarantool/tarantool/issues/4862 > * https://github.com/tarantool/tarantool/issues/5878 > Branches: one with the patch and another providing CI is green on 1.10 > * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit > * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit-1.10 > > asan/lsan.supp | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/asan/lsan.supp b/asan/lsan.supp > index e3b62e653..198df89c3 100644 > --- a/asan/lsan.supp > +++ b/asan/lsan.supp > @@ -24,9 +24,12 @@ leak:Curl_resolver_init > # source: /usr/lib/x86_64-linux-gnu/gconv/UTF-16.so > leak:gconv_init > > -# test: box*/ > +# XXX: All warnings reported for LuaJIT runtime are considered > +# false positive until sanitizers support is not introduced in > +# LuaJIT. See the issue below for more info. > +# https://github.com/tarantool/tarantool/issues/5878 > # source: third_party/luajit > -leak:lj_BC_FUNCC > +leak:lj_* > > # test: box/access.test.lua > # test: box/access_bin.test.lua > -- > 2.25.0 >
Sasha, Thanks for your review! On 15.03.21, Alexander V. Tikhonov wrote: > Hi Igor, thanks for your patch, it helped to return 1.10 testing in > green, patch LGTM [1]. Added your tag: | Reviewed-by: Alexander V. Tikhonov <avtikhon@tarantool.org> > > [1]: https://github.com/tarantool/tarantool/runs/2096939827#step:5:4388 > <snipped> -- Best regards, IM
Hello,
On 12 мар 23:01, Igor Munkin wrote:
> After porting LuaJIT build system to CMake in commit
> 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build
> system'), its build options are not fully maintained in Tarantool. E.g.
> several compile flags, such as -fomit-frame-pointer, are set within
> LuaJIT CMake machinery and there is no way to tweak them outside. As a
> result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to
> LuaJIT runtime, but there is none of them actually (no source code
> changes are made in scope of the applied patchset). Hence it was decided
> to consider all LuaJIT related warnings as false positives for now and
> suppress them until #5878 is resolved.
>
> [1]: https://github.com/tarantool/tarantool/runs/1999839396
>
> Follows up #4862
> Relates to #5878
LGTM.
--
Regards, Kirill Yukhin
Kirill, Thanks for your review! On 16.03.21, Kirill Yukhin wrote: > Hello, > > On 12 мар 23:01, Igor Munkin wrote: > > After porting LuaJIT build system to CMake in commit > > 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build > > system'), its build options are not fully maintained in Tarantool. E.g. > > several compile flags, such as -fomit-frame-pointer, are set within > > LuaJIT CMake machinery and there is no way to tweak them outside. As a > > result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to > > LuaJIT runtime, but there is none of them actually (no source code > > changes are made in scope of the applied patchset). Hence it was decided > > to consider all LuaJIT related warnings as false positives for now and > > suppress them until #5878 is resolved. > > > > [1]: https://github.com/tarantool/tarantool/runs/1999839396 > > > > Follows up #4862 > > Relates to #5878 > > LGTM. Added your tag: | Reviewed-by: Kirill Yukhin <kyukhin@tarantool.org> > > -- > Regards, Kirill Yukhin -- Best regards, IM
I've checked the patch into 1.10, 2.6, 2.7 and master. On 12.03.21, Igor Munkin wrote: > After porting LuaJIT build system to CMake in commit > 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build > system'), its build options are not fully maintained in Tarantool. E.g. > several compile flags, such as -fomit-frame-pointer, are set within > LuaJIT CMake machinery and there is no way to tweak them outside. As a > result ASAN + LSAN build in Tarantool CI[1] reports new leaks related to > LuaJIT runtime, but there is none of them actually (no source code > changes are made in scope of the applied patchset). Hence it was decided > to consider all LuaJIT related warnings as false positives for now and > suppress them until #5878 is resolved. > > [1]: https://github.com/tarantool/tarantool/runs/1999839396 > > Follows up #4862 > Relates to #5878 > > Signed-off-by: Igor Munkin <imun@tarantool.org> > --- > > This is a temporary solution, until #5878 is resolved. BTW, it looks > like a ASAN/LSAN problem since, running it with fast_unwind_on_malloc=0 > doesn't make CI green and otherwise I have no idea why > -fno-omit-frame-pointer is obligatory for sanitizers (I found not a > single word in Google sanitizers docs regarding it). Though there is no > problems on the stable branches other than 1.10, I believe this patch > should be applied to all branches containing > 07c83aab5c066ca75c149112b331b4dbb81b3f38 ('build: adjust LuaJIT build > system') to reduce the chance of unexpected CI breakage either on > working or on stable branch. > > Issues: > * https://github.com/tarantool/tarantool/issues/4862 > * https://github.com/tarantool/tarantool/issues/5878 > Branches: one with the patch and another providing CI is green on 1.10 > * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit > * https://github.com/tarantool/tarantool/tree/imun/suppress-asan-for-luajit-1.10 > > asan/lsan.supp | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > <snipped> > -- > 2.25.0 > -- Best regards, IM