Bug 248982

Summary: databases/mysql57-server and malloc-lib path
Product: Ports & Packages Reporter: Christos Chatzaras <chris>
Component: Individual Port(s)Assignee: Jochen Neumeister <joneum>
Status: Closed FIXED    
Severity: Affects Some People CC: joneum
Priority: --- Flags: bugzilla: maintainer-feedback? (joneum)
Version: Latest   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
Patch for mysqld_safe none

Description Christos Chatzaras 2020-08-29 01:48:53 UTC
Created attachment 217606 [details]
Patch for mysqld_safe

MySQL 5.7 mysqld_safe allows malloc-lib files only in certain locations.

google-perftools port puts libtcmalloc_minimal.so inside /usr/local/lib

To use tcmalloc memory allocator we need mysqld_safe to load libraries from /usr/local/lib


More information about why to use tcmalloc instead of jemalloc here:

https://forums.freebsd.org/threads/freebsd-12-x-and-mysql-5-7-and-importing-file-with-lots-of-small-lines-exhaust-ram-and-swap.72733/
Comment 1 Jochen Neumeister freebsd_committer 2020-09-02 16:59:34 UTC
Hi,

thx for the PR :-)
can you please upload a diff file, not a *.sh script?
Comment 2 Christos Chatzaras 2020-09-02 18:39:10 UTC
It's a diff file for the mysqld_safe.sh script:

--- scripts/mysqld_safe.sh.orig	2020-06-02 11:05:42 UTC
+++ scripts/mysqld_safe.sh
@@ -359,7 +359,7 @@ mysqld_ld_preload_text() {
 # running mysqld.  See ld.so for details.
 set_malloc_lib() {
   # This list is kept intentionally simple.
-  malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu"
+  malloc_dirs="/usr/lib /usr/lib64 /usr/lib/i386-linux-gnu /usr/lib/x86_64-linux-gnu /usr/local/lib"
   malloc_lib="$1"
 
   # Allow --malloc-lib='' to override other settings
@@ -378,6 +378,7 @@ set_malloc_lib() {
         /usr/lib64) ;;
         /usr/lib/i386-linux-gnu) ;;
         /usr/lib/x86_64-linux-gnu) ;;
+        /usr/local/lib) ;;
         *)
           log_error "--malloc-lib must be located in one of the directories: $malloc_dirs"
           exit 1
Comment 3 commit-hook freebsd_committer 2020-09-14 06:55:19 UTC
A commit references this bug:

Author: joneum
Date: Mon Sep 14 06:55:04 UTC 2020
New revision: 548590
URL: https://svnweb.freebsd.org/changeset/ports/548590

Log:
  MySQL 5.7 mysqld_safe allows malloc-lib files only in certain locations.
  google-perftools port puts libtcmalloc_minimal.so inside /usr/local/lib
  To use tcmalloc memory allocator we need mysqld_safe to load libraries from /usr/local/lib

  More information about why to use tcmalloc instead of jemalloc here:

  https://forums.freebsd.org/threads/freebsd-12-x-and-mysql-5-7-and-importing-file-with-lots-of-small-lines-exhaust-ram-and-swap.72733/

  PR:		248982
  Sponsored by:	Netzkommune GmbH

Changes:
  head/databases/mysql57-server/files/patch-scripts_mysqld__safe.txt