git » mariadb.git » commit d5edc04

fix memory allocation and OOM with systemd >= 240 (FS#61433)

author Christian Hesse
2019-01-23 23:32:24 UTC
committer Christian Hesse
2019-01-23 23:32:24 UTC
parent 468f341fe782dcad8ae5b831dbf3f0b4520371bd

fix memory allocation and OOM with systemd >= 240 (FS#61433)

0001-systemd-240.patch +18 -0
PKGBUILD +11 -3

diff --git a/0001-systemd-240.patch b/0001-systemd-240.patch
new file mode 100644
index 0000000..d3a9a73
--- /dev/null
+++ b/0001-systemd-240.patch
@@ -0,0 +1,18 @@
+diff --git a/mysys/my_file.c b/mysys/my_file.c
+index a23ab487d00..23226595b2e 100644
+--- a/mysys/my_file.c
++++ b/mysys/my_file.c
+@@ -52,10 +52,9 @@ static uint set_max_open_files(uint max_file_limit)
+     DBUG_PRINT("info", ("rlim_cur: %u  rlim_max: %u",
+ 			(uint) rlimit.rlim_cur,
+ 			(uint) rlimit.rlim_max));
+-    if ((ulonglong) rlimit.rlim_cur == (ulonglong) RLIM_INFINITY)
+-      rlimit.rlim_cur = max_file_limit;
+-    if (rlimit.rlim_cur >= max_file_limit)
+-      DBUG_RETURN(rlimit.rlim_cur);		/* purecov: inspected */
++    if ((ulonglong) rlimit.rlim_cur == (ulonglong) RLIM_INFINITY ||
++        rlimit.rlim_cur >= max_file_limit)
++      DBUG_RETURN(max_file_limit);
+     rlimit.rlim_cur= rlimit.rlim_max= max_file_limit;
+     if (setrlimit(RLIMIT_NOFILE, &rlimit))
+       max_file_limit= old_cur;			/* Use original value */
diff --git a/PKGBUILD b/PKGBUILD
index 18edc94..85f69e1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -5,16 +5,18 @@ pkgbase=mariadb
 pkgname=('mariadb-libs' 'mariadb-clients' 'mariadb' 'mytop')
 pkgdesc='Fast SQL database server, derived from MySQL'
 pkgver=10.3.12
-pkgrel=3
+pkgrel=4
 arch=('x86_64')
 license=('GPL')
 url='https://mariadb.org/'
 makedepends=('boost' 'bzip2' 'cmake' 'jemalloc' 'libaio' 'libxml2' 'lz4' 'lzo'
              'openssl' 'systemd' 'zlib' 'zstd')
 validpgpkeys=('199369E5404BD5FC7D2FE43BCBCB082A1BB943DB') # MariaDB Package Signing Key <package-signing-key@mariadb.org>
-source=("https://ftp.heanet.ie/mirrors/mariadb/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz"{,.asc})
+source=("https://ftp.heanet.ie/mirrors/mariadb/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz"{,.asc}
+        '0001-systemd-240.patch')
 sha256sums=('f7449a34c25e0455928d7983dae83fd2069fe1f16c4c5f4aeed9ed9d3f081ff6'
-            'SKIP')
+            'SKIP'
+            'd57500014f50d73fe7f35a4503488fb1008bbd15cbcc6ec9aa927fc801e816f4')
 
 prepare() {
   cd $pkgbase-$pkgver/
@@ -36,6 +38,12 @@ prepare() {
 
   # fix path to our config
   sed -i 's|my.cnf.d|mysql/my.cnf.d|' support-files/rpm/{my.cnf,enable_encryption.preset}
+
+  # fix memory allocation and OOM with systemd >= 240
+  # https://bugs.archlinux.org/task/61433
+  # https://github.com/systemd/systemd/issues/11510
+  # https://jira.mariadb.org/browse/MDEV-18360
+  patch -Np1 < ../0001-systemd-240.patch
 }
 
 build() {