4e46615
Directory /tmp is now on tmpfs, which can cause problems with limitted space
4e46615
or replication. It's documented here:
4e46615
http://dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_tmpdir
4e46615
4e46615
"If the MySQL server is acting as a replication slave, you should not set --tmpdir
4e46615
to point to a directory on a memory-based file system or to a directory that is
4e46615
cleared when the server host restarts."
4e46615
4e46615
RHBZ#962087
4e46615
Upstream bug report: https://mariadb.atlassian.net/browse/MDEV-4165
4e46615
MySQL bug report: http://bugs.mysql.com/bug.php?id=68338
4e46615
4e46615
diff -up mysql-5.5.31/CMakeLists.txt.tmpdir mysql-5.5.31/CMakeLists.txt
4e46615
--- mysql-5.5.31/CMakeLists.txt.tmpdir	2013-06-03 15:14:51.149345233 +0200
4e46615
+++ mysql-5.5.31/CMakeLists.txt	2013-06-03 15:29:23.263489056 +0200
4e46615
@@ -253,6 +253,10 @@ IF(SYSCONFDIR)
4e46615
   SET(DEFAULT_SYSCONFDIR "${SYSCONFDIR}")
4e46615
 ENDIF()
4e46615
 
4e46615
+IF(TMPDIR)
4e46615
+  SET(DEFAULT_TMPDIR "${TMPDIR}")
4e46615
+ENDIF()
4e46615
+
4e46615
 
4e46615
 # Run platform tests
4e46615
 INCLUDE(configure.cmake)
4e46615
diff -up mysql-5.5.31/config.h.cmake.tmpdir mysql-5.5.31/config.h.cmake
4e46615
--- mysql-5.5.31/config.h.cmake.tmpdir	2013-03-25 14:14:58.000000000 +0100
4e46615
+++ mysql-5.5.31/config.h.cmake	2013-06-03 15:14:51.149345233 +0200
4e46615
@@ -600,6 +600,7 @@
4e46615
 #cmakedefine DEFAULT_CHARSET_HOME "@DEFAULT_CHARSET_HOME@"
4e46615
 #cmakedefine PLUGINDIR "@PLUGINDIR@"
4e46615
 #cmakedefine DEFAULT_SYSCONFDIR "@DEFAULT_SYSCONFDIR@"
4e46615
+#cmakedefine DEFAULT_TMPDIR "@DEFAULT_TMPDIR@"
4e46615
 
4e46615
 #cmakedefine SO_EXT "@CMAKE_SHARED_MODULE_SUFFIX@"
4e46615
 
4e46615
diff -up mysql-5.5.31/include/my_global.h.tmpdir mysql-5.5.31/include/my_global.h
4e46615
--- mysql-5.5.31/include/my_global.h.tmpdir	2013-03-25 14:14:58.000000000 +0100
4e46615
+++ mysql-5.5.31/include/my_global.h	2013-06-03 15:14:51.150345232 +0200
4e46615
@@ -1501,4 +1501,11 @@ static inline double rint(double x)
4e46615
 
4e46615
 #endif /* EMBEDDED_LIBRARY */
4e46615
 
4e46615
+/*
4e46615
+  Define default tmpdir if not already set.
4e46615
+*/
4e46615
+#if !defined(DEFAULT_TMPDIR)
4e46615
+#define DEFAULT_TMPDIR P_tmpdir
4e46615
+#endif
4e46615
+
4e46615
 #endif /* my_global_h */
4e46615
diff -up mysql-5.5.31/libmysqld/lib_sql.cc.tmpdir mysql-5.5.31/libmysqld/lib_sql.cc
4e46615
--- mysql-5.5.31/libmysqld/lib_sql.cc.tmpdir	2013-03-25 14:14:58.000000000 +0100
4e46615
+++ mysql-5.5.31/libmysqld/lib_sql.cc	2013-06-03 15:14:51.150345232 +0200
4e46615
@@ -558,7 +558,7 @@ int init_embedded_server(int argc, char
4e46615
     opt_mysql_tmpdir=getenv("TMP");
4e46615
 #endif
4e46615
   if (!opt_mysql_tmpdir || !opt_mysql_tmpdir[0])
4e46615
-    opt_mysql_tmpdir=(char*) P_tmpdir;		/* purecov: inspected */
4e46615
+    opt_mysql_tmpdir=(char*) DEFAULT_TMPDIR;		/* purecov: inspected */
4e46615
 
4e46615
   init_ssl();
4e46615
   umask(((~my_umask) & 0666));
4e46615
diff -up mysql-5.5.31/mysys/mf_tempdir.c.tmpdir mysql-5.5.31/mysys/mf_tempdir.c
4e46615
--- mysql-5.5.31/mysys/mf_tempdir.c.tmpdir	2013-03-25 14:14:58.000000000 +0100
4e46615
+++ mysql-5.5.31/mysys/mf_tempdir.c	2013-06-03 15:14:51.150345232 +0200
4e46615
@@ -43,7 +43,7 @@ my_bool init_tmpdir(MY_TMPDIR *tmpdir, c
4e46615
       pathlist=getenv("TMP");
4e46615
 #endif
4e46615
     if (!pathlist || !pathlist[0])
4e46615
-      pathlist=(char*) P_tmpdir;
4e46615
+      pathlist=(char*) DEFAULT_TMPDIR;
4e46615
   }
4e46615
   do
4e46615
   {
4e46615
diff -up mysql-5.5.31/mysys/mf_tempfile.c.tmpdir mysql-5.5.31/mysys/mf_tempfile.c
4e46615
--- mysql-5.5.31/mysys/mf_tempfile.c.tmpdir	2013-03-25 14:14:58.000000000 +0100
4e46615
+++ mysql-5.5.31/mysys/mf_tempfile.c	2013-06-03 15:14:51.150345232 +0200
4e46615
@@ -111,7 +111,7 @@ File create_temp_file(char *to, const ch
4e46615
 				    sizeof(prefix_buff)-7),"XXXXXX") -
4e46615
 		     prefix_buff);
4e46615
     if (!dir && ! (dir =getenv("TMPDIR")))
4e46615
-      dir=P_tmpdir;
4e46615
+      dir=DEFAULT_TMPDIR;
4e46615
     if (strlen(dir)+ pfx_len > FN_REFLEN-2)
4e46615
     {
4e46615
       errno=my_errno= ENAMETOOLONG;