From 1033fa4bccb67b42b9baae189fc95bc93f821395 Mon Sep 17 00:00:00 2001 From: Sergei Golubchik Date: Tue, 12 Jun 2018 19:06:55 +0200 Subject: [PATCH] MDEV-13403 Mariadb (with TokuDB) excessive memory usage/leak In RPM/DEB packages - always ld-preload jemalloc, instead of linking ha_tokudb.so with it. Keep linking in bintars, because they don't install cnf files in the correct locations. --- debian/control | 1 + storage/tokudb/CMakeLists.txt | 2 +- storage/tokudb/tokudb.cnf.in | 1 - storage/tokudb/tokudb.conf.in | 1 - 4 files changed, 2 insertions(+), 3 deletions(-) diff --git a/debian/control b/debian/control index cc52a1c240b..20ccd4c163e 100644 --- a/debian/control +++ b/debian/control @@ -477,6 +477,7 @@ Description: OQGraph storage engine for MariaDB Package: mariadb-plugin-tokudb Architecture: any Depends: mariadb-server-10.2 (= ${binary:Version}), + libjemalloc1 (>= 3.0.0~), ${misc:Depends}, ${shlibs:Depends} Breaks: mariadb-server-10.0, diff --git a/storage/tokudb/CMakeLists.txt b/storage/tokudb/CMakeLists.txt index 16f7ab4ce75..22c2cd0d490 100644 --- a/storage/tokudb/CMakeLists.txt +++ b/storage/tokudb/CMakeLists.txt @@ -54,7 +54,7 @@ ELSEIF(LIBJEMALLOC STREQUAL jemalloc) GET_FILENAME_COMPONENT(LIBJEMALLOC_PATH ${LIBJEMALLOC_SO} REALPATH CACHE) ENDIF() -IF(LIBJEMALLOC_PATH AND RPM MATCHES fedora28) # TODO check for jemalloc version +IF(LIBJEMALLOC_PATH AND (RPM OR DEB)) UNSET(LIBJEMALLOC) GET_DIRECTORY_PROPERTY(V DIRECTORY ${CMAKE_SOURCE_DIR} DEFINITION CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES) SET(CPACK_RPM_tokudb-engine_PACKAGE_REQUIRES "${V} jemalloc" PARENT_SCOPE) diff --git a/storage/tokudb/tokudb.cnf.in b/storage/tokudb/tokudb.cnf.in index de9b5b711ee..ff7f0a5f5f6 100644 --- a/storage/tokudb/tokudb.cnf.in +++ b/storage/tokudb/tokudb.cnf.in @@ -5,5 +5,4 @@ plugin-load-add=ha_tokudb.so [mysqld_safe] -# it might be necessary to uncomment the following line if jemalloc >= 5.0.0 @cnf_malloc_lib@ diff --git a/storage/tokudb/tokudb.conf.in b/storage/tokudb/tokudb.conf.in index d22f6686d91..a5ff055f44c 100644 --- a/storage/tokudb/tokudb.conf.in +++ b/storage/tokudb/tokudb.conf.in @@ -1,3 +1,2 @@ [Service] -# it might be necessary to uncomment the following line if jemalloc >= 5.0.0 @systemd_env@