@@ -2,51 +2,58 @@ This is a container for ASAN, UBSAN and MSAN building.
22
33It can also be used as a basic build/test that contains rr.
44
5+ rr is available if the container is started with --privileged.
6+
7+ The following assumed that /source is a mounted volume of the
8+ MariaDB source code.
9+
510A basic MSAN build can be configured with:
611
7- cmake \
8- -DWITH_MSAN=ON \
9- -DCMAKE_{EXE,MODULE}_LINKER_FLAGS="-L${MSAN_LIBDIR} -Wl,-rpath=${MSAN_LIBDIR}" \
10- -DWITH_INNODB_{BZIP2,LZ4,LZMA,LZO,SNAPPY}=OFF \
11- -DCMAKE_DISABLE_FIND_PACKAGE_URING=1 \
12- -DUPDATE_SUBMODULES=OFF \
13- -DPLUGIN_COLUMNSTORE=NO \
14- -DWITH_UNIT_TESTS=OFF \
15- -DWITH_ZLIB=bundled \
16- -DWITH_SYSTEMD=no \
17- -DWITH_DBUG_TRACE=OFF \
18- /source
12+ cmake \
13+ -DWITH_MSAN=ON \
14+ -DCMAKE_{EXE,MODULE}_LINKER_FLAGS="-L${MSAN_LIBDIR} -Wl,-rpath=${MSAN_LIBDIR}" \
15+ -DWITH_INNODB_{BZIP2,LZ4,LZMA,LZO,SNAPPY}=OFF \
16+ -DCMAKE_DISABLE_FIND_PACKAGE_URING=1 \
17+ -DUPDATE_SUBMODULES=OFF \
18+ -DPLUGIN_COLUMNSTORE=NO \
19+ -DWITH_UNIT_TESTS=OFF \
20+ -DWITH_ZLIB=bundled \
21+ -DWITH_SYSTEMD=no \
22+ -DWITH_DBUG_TRACE=OFF \
23+ /source
1924
2025A basic combined UBSAN/ASAN build can be configured with:
2126
22- cmake -DWITH_ASAN=ON -DWITH_ASAN_SCOPED=ON -DWITH_UBSAN=ON -DWITH_UNIT_TESTS=OFF /source
27+ cmake -DWITH_ASAN=ON -DWITH_ASAN_SCOPED=ON -DWITH_UBSAN=ON -DWITH_UNIT_TESTS=OFF -DUPDATE_SUBMODULES =OFF /source
2328
2429Build with:
2530
26- cmake --build .
31+ cmake --build .
2732
2833Test with:
2934
30- mysql-test/mtr --parallel=auto
35+ mysql-test/mtr --parallel=auto
36+
37+ Add --rr to record a specific MTR test. To replay:
38+
39+ rr replay mysql-test/var/log/mysqld.1.rr/mariadb-0
3140
3241There are UBSAN filters covering currently unfixed bugs within
33- the server that can be used to direct your development, or validate if a
34- observed failure is known.
42+ the server that can be used to direct your development, or validate
43+ if a observed failure is known.
3544
3645Perform the following to download/inspect them:
3746
38- curl https://raw.githubusercontent.com/mariadb-corporation/mariadb-qa/refs/heads/master/UBSAN.filter -o /build/UBSAN.filter
47+ curl https://raw.githubusercontent.com/mariadb-corporation/mariadb-qa/refs/heads/master/UBSAN.filter -o /build/UBSAN.filter
3948
4049After this, add suppressions to UBSAN_OPTIONS with
4150
42- export UBSAN_OPTIONS=$UBSAN_OPTIONS:suppressions=/build/UBSAN.filter
51+ export UBSAN_OPTIONS=$UBSAN_OPTIONS:suppressions=/build/UBSAN.filter
4352
4453To mark a function as unoptimized use the attribute:
4554
4655 __attribute__((optnone))
4756
48- rr is available if the container is started with --privileged.
49-
5057ref sanitizer flags documents:
5158* https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
5259* https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
0 commit comments