[Tarantool-patches] [PATCH v6 1/2] base64: fix decoder output buffer overrun (reads)

Alexander Turenko alexander.turenko at tarantool.org
Sat Feb 20 14:30:34 MSK 2021


On Tue, Jan 26, 2021 at 07:48:48PM +0300, Sergey Nikiforov wrote:
> On 26.01.2021 19:37, Sergey Nikiforov wrote:
> > On 21.01.2021 5:16, Alexander Turenko wrote:
> > > On Mon, Jan 11, 2021 at 12:45:00PM +0300, Sergey Nikiforov wrote:
> > > > Was caught by base64 test with enabled ASAN.
> > > 
> > > It seems, we have a problem in CI, otherwise it would be detected. At
> > > least, I don't see an explicit suppression relevant to the base64 code
> > > or disabling the test under this CI job.
> > > 
> > > Can you, please, investigate, how to enable it in CI, so we'll catch the
> > > similar problem next time if it'll appear?
> > 
> > ASAN is not used in CI now. Which is clearly wrong.

There is something called 'ASAN' in CI, see [1]. And it seems to be
problematic. That's why I asked.

[1]: https://github.com/tarantool/tarantool/blob/6610bce9bf43a139043518cd76d3c0c81c981ce2/.github/workflows/release_asan_clang11.yml#L36

> > Right now a lot of tests fail if LeakSanitizer is enabled (the default
> > for ASAN), but only 1 test (unit/guard.test) fails if LeakSanitizer if
> > disabled. So it is quite straightforward:
> > 
> > CC=clang CXX=clang++ cmake . -DENABLE_ASAN=ON && make -j
> > ASAN_OPTIONS=detect_leaks=0 test/test-run.py
> > 
> > (test-run.py is launched from several Makefiles)
> > 
> > I propose creating tasks to make unit/guard.test "ASAN-tolerant" (ASAN
> > prints warning which causes .result mismatch) and to add ASAN targets to
> > CI. Should it be GitLab or GitHub Actions?

This is quite specific 'hacky' test and it is okay to exclude it when
we're run with ASAN.

> > 
> > We should probably also look on LeakSanitizer issues, some of them are
> > probably real bugs and not just tests sloppiness.
> 
> ASAN with LeakSanitizer enabled (the default):
> Statistics:
> * disabled: 127
> * fail: 755
> * pass: 414
> 
> Fixing this is a BIG task.

We can enable ASAN test by test to a regular CI runs.

I've added a note to [2].

[2]: https://github.com/tarantool/tarantool-qa/issues/18


More information about the Tarantool-patches mailing list