Merge lp:~tplavcic/percona-server/bld-212-5.6-tokudb into lp:percona-server/5.6

Proposed by Tomislav Plavcic
Status: Superseded
Proposed branch: lp:~tplavcic/percona-server/bld-212-5.6-tokudb
Merge into: lp:percona-server/5.6
Diff against target: 390 lines (+283/-23)
6 files modified
build-ps/debian/percona-server-tokudb-5.6.files (+1/-0)
build-ps/debian/percona-server-tokudb-5.6.postinst (+3/-9)
build-ps/percona-server.spec (+9/-14)
scripts/CMakeLists.txt (+1/-0)
scripts/mysqld_safe.sh (+42/-0)
scripts/ps_tokudb_admin.sh (+227/-0)
To merge this branch: bzr merge lp:~tplavcic/percona-server/bld-212-5.6-tokudb
Reviewer Review Type Date Requested Status
Roel Van de Paar (community) Needs Information
Laurynas Biveinis (community) Needs Information
Review via email: mp+246539@code.launchpad.net

This proposal has been superseded by a proposal from 2015-01-15.

Description of the change

This change is for BLD-212 (simplify TokuDB installation).
It adds ps_tokudb_admin script which can install/uninstall TokuDB plugin and disable transparent huge pages.
Mysqld_safe was changed to read thp-setting option from my.cnf

Extensive testing was done in BLD-212 so here I only show how install/uninstall works on centos7.
Test packages are available here:
http://jenkins.percona.com/job/percona-server-5.6-RELEASE/96/

INSTALL
-------
[vagrant@t-centos7-64 ~]$ sudo ps_tokudb_admin -e -u root
Checking transparent huge pages status on the system...
>> Transparent huge pages are enabled (should be disabled).

Checking if thp-setting=never option is already set in config file...
>> Option thp-setting=never is not set in the config file.
>> (needed only if THP is not disabled permanently on the system)

Checking TokuDB plugin status...
>> TokuDB plugin is not installed.

Disabling transparent huge pages for the current session...
>> Successfuly disabled transparent huge pages for this session.

Adding thp-setting=never option into /etc/my.cnf
>> Successfuly added thp-setting=never option into /etc/my.cnf

Installing TokuDB engine...
>> Successfuly installed TokuDB plugin.

mysql> show plugins;
...
| TokuDB | ACTIVE | STORAGE ENGINE | ha_tokudb.so | GPL |
| TokuDB_file_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
| TokuDB_fractal_tree_info | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
| TokuDB_fractal_tree_block_map | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
| TokuDB_trx | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
| TokuDB_locks | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
| TokuDB_lock_waits | ACTIVE | INFORMATION SCHEMA | ha_tokudb.so | GPL |
+-------------------------------+----------+--------------------+--------------+---------+

UNINSTALL
---------
[vagrant@t-centos7-64 ~]$ sudo ps_tokudb_admin -d -u root
Checking transparent huge pages status on the system...
>> Transparent huge pages are currently disabled on the system.

Checking if thp-setting=never option is already set in config file...
>> Option thp-setting=never is set in the config file.

Checking TokuDB plugin status...
>> TokuDB plugin is installed.

Removing thp-setting=never option from /etc/my.cnf
>> Successfuly removed thp-setting=never option from /etc/my.cnf

Uninstalling TokuDB plugin...
>> Successfuly uninstalled TokuDB plugin.

To post a comment you must log in.
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

It needs a blueprint?

review: Needs Information
Revision history for this message
Tomislav Plavcic (tplavcic) wrote :

Created some blueprint - please check.

Revision history for this message
Roel Van de Paar (roel11) wrote :

The script does not allow specification of host/socket/port. Thus, it assumes that PS is installed in a standard way (yum/apt), on a standard port, etc.

If the customer has both MS and PS on one box, on different ports, the wrong one may be auto-selected depending on which one is running on the default port, etc.

review: Needs Information
Revision history for this message
Roel Van de Paar (roel11) wrote :

Also, I am not sure about removing the INSTALL PLUGIN information from postinst. It may still make sense for many DBA's to quickly hop in a CLI and execute this, rather then using a new tool.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'build-ps/debian/percona-server-tokudb-5.6.files'
2--- build-ps/debian/percona-server-tokudb-5.6.files 2014-09-27 13:49:22 +0000
3+++ build-ps/debian/percona-server-tokudb-5.6.files 2015-01-15 08:09:15 +0000
4@@ -1,3 +1,4 @@
5 usr/lib/mysql/plugin/ha_tokudb.so
6 usr/lib/mysql/plugin/debug/ha_tokudb.so
7 usr/bin/tokuftdump
8+usr/bin/ps_tokudb_admin
9
10=== modified file 'build-ps/debian/percona-server-tokudb-5.6.postinst'
11--- build-ps/debian/percona-server-tokudb-5.6.postinst 2014-05-20 21:04:08 +0000
12+++ build-ps/debian/percona-server-tokudb-5.6.postinst 2015-01-15 08:09:15 +0000
13@@ -3,15 +3,9 @@
14 # Some postinstall info about TokuDB
15 if [ -z "$2" ]; then
16 echo -e "\n\n * This release of Percona Server is distributed with TokuDB storage engine."
17- echo -e " * Run the following commands to enable the TokuDB storage engine in Percona Server:\n"
18- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';\""
19- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';\""
20- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';\""
21- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';\""
22- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';\""
23- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';\""
24- echo -e "\tmysql -e \"INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';\""
25- echo -e "\n * See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_intro.html for more details\n\n"
26+ echo -e " * Run the following script to enable the TokuDB storage engine in Percona Server:\n"
27+ echo -e "\tps_tokudb_admin --enable -u <mysql_admin_user> -p <mysql_admin_pass>\n"
28+ echo -e " * See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_intro.html for more details\n\n"
29 fi
30
31 #DEBHELPER#
32
33=== modified file 'build-ps/percona-server.spec'
34--- build-ps/percona-server.spec 2015-01-13 14:38:41 +0000
35+++ build-ps/percona-server.spec 2015-01-15 08:09:15 +0000
36@@ -651,6 +651,10 @@
37 %if 0%{?systemd}
38 rm -rf $RBR%{_sysconfdir}/init.d/mysql
39 %endif
40+# Not needed if TokuDB package is not created
41+%if ! %{with tokudb}
42+rm -rf $RBR%{_bindir}/ps_tokudb_admin
43+%endif
44
45 ##############################################################################
46 # Post processing actions, i.e. when installed
47@@ -1094,20 +1098,10 @@
48 %post -n Percona-Server-tokudb%{product_suffix}
49
50 if [ $1 -eq 1 ] ; then
51- echo ""
52- echo "* This release of Percona Server is distributed with TokuDB storage engine."
53- echo "* Run the following commands to enable the TokuDB storage engine in Percona Server:"
54- echo ""
55- echo "mysql -e \"INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';\""
56- echo "mysql -e \"INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';\""
57- echo "mysql -e \"INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';\""
58- echo "mysql -e \"INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';\""
59- echo "mysql -e \"INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';\""
60- echo "mysql -e \"INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';\""
61- echo "mysql -e \"INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';\""
62- echo ""
63- echo "* See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_intro.html for more details"
64- echo ""
65+ echo -e "\n\n * This release of Percona Server is distributed with TokuDB storage engine."
66+ echo -e " * Run the following script to enable the TokuDB storage engine in Percona Server:\n"
67+ echo -e "\tps_tokudb_admin --enable -u <mysql_admin_user> -p <mysql_admin_pass>\n"
68+ echo -e " * See http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_intro.html for more details\n\n"
69 fi
70 # ----------------------------------------------------------------------------
71 %endif
72@@ -1375,6 +1369,7 @@
73 %{_bindir}/tokuftdump
74 %{_libdir}/mysql/plugin/ha_tokudb.so
75 %attr(755, root, root) %{_libdir}/mysql/plugin/debug/ha_tokudb.so
76+%attr(755, root, root) %{_bindir}/ps_tokudb_admin
77 %endif
78
79 # ----------------------------------------------------------------------------
80
81=== modified file 'scripts/CMakeLists.txt'
82--- scripts/CMakeLists.txt 2014-12-16 06:00:17 +0000
83+++ scripts/CMakeLists.txt 2015-01-15 08:09:15 +0000
84@@ -339,6 +339,7 @@
85 mysqldumpslow
86 mysqld_multi
87 mysqld_safe
88+ ps_tokudb_admin
89 )
90 FOREACH(file ${BIN_SCRIPTS})
91 IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${file}.sh)
92
93=== modified file 'scripts/mysqld_safe.sh'
94--- scripts/mysqld_safe.sh 2014-12-01 07:53:48 +0000
95+++ scripts/mysqld_safe.sh 2015-01-15 08:09:15 +0000
96@@ -20,6 +20,8 @@
97 load_jemalloc=1
98 flush_caches=0
99 numa_interleave=0
100+# Change (disable) transparent huge pages (TokuDB requirement)
101+thp_setting=
102
103 # Initial logging status: error log is not open, and not using syslog
104 logging=init
105@@ -233,6 +235,7 @@
106 --open-files-limit=*) open_files="$val" ;;
107 --open_files_limit=*) open_files="$val" ;;
108 --skip-kill-mysqld*) KILL_MYSQLD=0 ;;
109+ --thp-setting=*) thp_setting="$val" ;;
110 --syslog) want_syslog=1 ;;
111 --skip-syslog) want_syslog=0 ;;
112 --syslog-tag=*) syslog_tag="$val" ;;
113@@ -799,6 +802,45 @@
114 exit 1
115 fi
116
117+# Change transparent huge pages setting if thp-setting option specified
118+if [ -n "$thp_setting" ]
119+then
120+ if [ $(id -u) -ne 0 ]; then
121+ log_error "mysqld_safe must be run as root for setting transparent huge pages!"
122+ exit 1
123+ elif [ $thp_setting != "always" -a $thp_setting != "madvise" -a $thp_setting != "never" ]; then
124+ log_error "Invalid value for thp-setting=$thp_setting in config file. Valid values are: always, madvise or never"
125+ exit 1
126+ else
127+ if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]; then
128+ CONTENT_THP=$(cat /sys/kernel/mm/transparent_hugepage/enabled)
129+ STATUS_THP=0
130+ set +e
131+ STATUS_THP=$(echo $CONTENT_THP | grep -cv "\[${thp_setting}\]")
132+ set -e
133+ fi
134+ if [ $STATUS_THP -eq 0 ]; then
135+ log_notice "Transparent huge pages are already set to: ${thp_setting}."
136+ else
137+ if [ -f /sys/kernel/mm/transparent_hugepage/defrag ]; then
138+ echo $thp_setting > /sys/kernel/mm/transparent_hugepage/defrag
139+ if [ $? -ne 0 ]; then
140+ log_error "Error setting transparent huge pages to: ${thp_setting}."
141+ exit 1
142+ fi
143+ fi
144+ if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]; then
145+ echo $thp_setting > /sys/kernel/mm/transparent_hugepage/enabled
146+ if [ $? -ne 0 ]; then
147+ log_error "Error setting transparent huge pages to: ${thp_setting}."
148+ exit 1
149+ fi
150+ fi
151+ log_notice "Successfuly set transparent huge pages to: ${thp_setting}."
152+ fi
153+ fi
154+fi
155+
156 #
157 # Uncomment the following lines if you want all tables to be automatically
158 # checked and repaired during startup. You should add sensible key_buffer
159
160=== added file 'scripts/ps_tokudb_admin.sh'
161--- scripts/ps_tokudb_admin.sh 1970-01-01 00:00:00 +0000
162+++ scripts/ps_tokudb_admin.sh 2015-01-15 08:09:15 +0000
163@@ -0,0 +1,227 @@
164+#!/bin/bash
165+#
166+# Script for installing TokuDB plugin in Percona Server
167+#
168+
169+# Bail out on errors, be strict
170+set -ue
171+
172+# Examine parameters
173+# default user
174+USER="root"
175+# default pass
176+PASSWORD=""
177+STATUS_THP_SYSTEM=0
178+STATUS_THP_MYCNF=0
179+STATUS_PLUGIN=0
180+ENABLE=0
181+DISABLE=0
182+MYCNF_LOCATION=
183+MYSQLD_SAFE_STATUS=0
184+
185+# Check if we have a functional getopt(1)
186+if ! getopt --test
187+ then
188+ go_out="$(getopt --options=u:p:edh \
189+ --longoptions=user:,password:,enable,disable,help \
190+ --name="$(basename "$0")" -- "$@")"
191+ test $? -eq 0 || exit 1
192+ eval set -- $go_out
193+fi
194+
195+for arg
196+do
197+ case "$arg" in
198+ -- ) shift; break;;
199+ -u | --user )
200+ shift
201+ USER="$1"
202+ ;;
203+ -p | --password )
204+ shift
205+ PASSWORD="-p$1"
206+ ;;
207+ -e | --enable )
208+ shift
209+ ENABLE=1
210+ ;;
211+ -d | --disable )
212+ shift
213+ DISABLE=1
214+ ;;
215+ -h | --help )
216+ printf "This script is used for installing and uninstalling TokuDB plugin for Percona Server 5.6.\n"
217+ printf "If transparent huge pages are enabled on the system it adds thp-setting=never option to my.cnf\n"
218+ printf "to disable it on runtime.\n\n"
219+ printf "Valid options are:\n"
220+ printf " -u, --user <USER>\t mysql admin username\n"
221+ printf " -p, --password <PASS>\t mysql admin password\n"
222+ printf " -e, --enable\t\t enable TokuDB plugin and disable transparent huge pages in my.cnf\n"
223+ printf " -d, --disable\t\t disable TokuDB plugin and remove thp-setting=never option in my.cnf\n"
224+ printf " -h, --help\t\t show this help\n\n"
225+ printf "For TokuDB requirements and manual steps for installation please visit this webpage:\n"
226+ printf "http://www.percona.com/doc/percona-server/5.6/tokudb/tokudb_installation.html\n\n"
227+ exit 0
228+ ;;
229+ esac
230+done
231+
232+# Make sure only root can run this script
233+if [ $(id -u) -ne 0 ]; then
234+ echo "This script must be run as root!" 1>&2
235+ exit 1
236+fi
237+
238+if [ $ENABLE = 1 -a $DISABLE = 1 ]; then
239+ printf "Only --enable OR --disable can be specified - not both!\n"
240+ exit 1
241+elif [ $ENABLE = 0 -a $DISABLE = 0 ]; then
242+ printf "You should specify --enable or --disable option. Use --help for printing options.\n"
243+ exit 1
244+fi
245+
246+# Check transparent huge pages status on the system
247+printf "Checking transparent huge pages status on the system...\n"
248+if [ -f /sys/kernel/mm/transparent_hugepage/enabled ]; then
249+ CONTENT_TRANSHP=$(</sys/kernel/mm/transparent_hugepage/enabled)
250+ set +e
251+ STATUS_THP_SYSTEM=$(echo $CONTENT_TRANSHP | grep -cv '\[never\]')
252+ set -e
253+fi
254+if [ $STATUS_THP_SYSTEM = 0 ]; then
255+ printf ">> Transparent huge pages are currently disabled on the system.\n\n"
256+else
257+ printf ">> Transparent huge pages are enabled (should be disabled).\n\n"
258+fi
259+
260+# Check thp-setting=never option in my.cnf
261+printf "Checking if thp-setting=never option is already set in config file...\n"
262+set +e
263+STATUS_THP_MYCNF=$(my_print_defaults server mysqld mysqld_safe|grep -c thp-setting=never)
264+set -e
265+if [ $STATUS_THP_MYCNF = 0 ]; then
266+ printf ">> Option thp-setting=never is not set in the config file.\n"
267+ printf ">> (needed only if THP is not disabled permanently on the system)\n\n"
268+else
269+ printf ">> Option thp-setting=never is set in the config file.\n\n"
270+fi
271+
272+# Check location of my.cnf
273+if [ -f /etc/my.cnf ]; then
274+ MYCNF_LOCATION=/etc/my.cnf
275+elif [ -f /etc/mysql/my.cnf ]; then
276+ MYCNF_LOCATION=/etc/mysql/my.cnf
277+elif [ -f /usr/etc/my.cnf ]; then
278+ MYCNF_LOCATION=/usr/etc/my.cnf
279+else
280+ if [ -d /etc/mysql ]; then
281+ MYCNF_LOCATION=/etc/mysql/my.cnf
282+ else
283+ MYCNF_LOCATION=/etc/my.cnf
284+ fi
285+ echo -n "" >> ${MYCNF_LOCATION}
286+fi
287+
288+# Check TokuDB plugin status
289+printf "Checking TokuDB plugin status...\n"
290+LIST_ENGINE=$(mysql -e "show plugins;" -u$USER $PASSWORD)
291+if [ $? -ne 0 ]; then
292+ printf ">> Error checking TokuDB plugin status!\n";
293+ exit 1
294+fi
295+set +e
296+STATUS_PLUGIN=$(echo "$LIST_ENGINE" | grep -c "TokuDB")
297+set -e
298+if [ $STATUS_PLUGIN = 0 ]; then
299+ printf ">> TokuDB plugin is not installed.\n\n"
300+elif [ $STATUS_PLUGIN = 7 ]; then
301+ printf ">> TokuDB plugin is installed.\n\n"
302+else
303+ printf ">> TokuDB plugin is partially installed. Please cleanup manually.\n\n"
304+ exit 1
305+fi
306+
307+# Disable transparent huge pages in the current session so
308+# that the plugin can be installed without restarting PS
309+if [ $ENABLE = 1 -a $STATUS_THP_SYSTEM = 1 ]; then
310+ printf "Disabling transparent huge pages for the current session...\n"
311+ if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
312+ echo never > /sys/kernel/mm/transparent_hugepage/defrag
313+ fi
314+ if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
315+ echo never > /sys/kernel/mm/transparent_hugepage/enabled
316+ fi
317+ if [ $? -eq 0 ]; then
318+ printf ">> Successfuly disabled transparent huge pages for this session.\n\n"
319+ else
320+ printf ">> Error disabling transparent huge pages for this session.\n\n"
321+ exit 1
322+ fi
323+fi
324+
325+# Add option to disable transparent huge pages into my.cnf
326+if [ $ENABLE = 1 -a $STATUS_THP_MYCNF = 0 ]; then
327+ printf "Adding thp-setting=never option into $MYCNF_LOCATION\n"
328+ set +e
329+ MYSQLD_SAFE_STATUS=$(grep -c "^\[mysqld_safe\]$" $MYCNF_LOCATION)
330+ set -e
331+ if [ $MYSQLD_SAFE_STATUS = 0 ]; then
332+ echo -e "\n[mysqld_safe]\nthp-setting=never" >> $MYCNF_LOCATION
333+ else
334+ sed -i '/^\[mysqld_safe\]$/a thp-setting=never' $MYCNF_LOCATION
335+ fi
336+ if [ $? -eq 0 ]; then
337+ printf ">> Successfuly added thp-setting=never option into $MYCNF_LOCATION\n\n";
338+ else
339+ printf ">> Error adding thp-setting=never option into $MYCNF_LOCATION\n\n";
340+ exit 1
341+ fi
342+fi
343+
344+# Remove option for disabling transparent huge pages from my.cnf
345+if [ $DISABLE = 1 -a $STATUS_THP_MYCNF = 1 ]; then
346+ printf "Removing thp-setting=never option from $MYCNF_LOCATION\n"
347+ sed -i '/^thp-setting=never$/d' $MYCNF_LOCATION
348+ if [ $? -eq 0 ]; then
349+ printf ">> Successfuly removed thp-setting=never option from $MYCNF_LOCATION\n\n";
350+ else
351+ printf ">> Error removing thp-setting=never option from $MYCNF_LOCATION\n\n";
352+ exit 1
353+ fi
354+fi
355+
356+# Installing TokuDB plugin
357+if [ $ENABLE = 1 -a $STATUS_PLUGIN = 0 ]; then
358+ printf "Installing TokuDB engine...\n"
359+ mysql -e "INSTALL PLUGIN tokudb SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
360+ mysql -e "INSTALL PLUGIN tokudb_file_map SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
361+ mysql -e "INSTALL PLUGIN tokudb_fractal_tree_info SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
362+ mysql -e "INSTALL PLUGIN tokudb_fractal_tree_block_map SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
363+ mysql -e "INSTALL PLUGIN tokudb_trx SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
364+ mysql -e "INSTALL PLUGIN tokudb_locks SONAME 'ha_tokudb.so';" -u$USER $PASSWORD &&
365+ mysql -e "INSTALL PLUGIN tokudb_lock_waits SONAME 'ha_tokudb.so';" -u$USER $PASSWORD
366+ if [ $? -eq 0 ]; then
367+ printf ">> Successfuly installed TokuDB plugin.\n\n"
368+ else
369+ printf ">> Error installing TokuDB plugin. Please check error log.\n\n"
370+ exit 1
371+ fi
372+fi
373+
374+# Uninstalling TokuDB plugin
375+if [ $DISABLE = 1 -a $STATUS_PLUGIN = 7 ]; then
376+ printf "Uninstalling TokuDB plugin...\n"
377+ mysql -e "UNINSTALL PLUGIN tokudb;" -u$USER $PASSWORD &&
378+ mysql -e "UNINSTALL PLUGIN tokudb_file_map;" -u$USER $PASSWORD &&
379+ mysql -e "UNINSTALL PLUGIN tokudb_fractal_tree_info;" -u$USER $PASSWORD &&
380+ mysql -e "UNINSTALL PLUGIN tokudb_fractal_tree_block_map;" -u$USER $PASSWORD &&
381+ mysql -e "UNINSTALL PLUGIN tokudb_trx;" -u$USER $PASSWORD &&
382+ mysql -e "UNINSTALL PLUGIN tokudb_locks;" -u$USER $PASSWORD &&
383+ mysql -e "UNINSTALL PLUGIN tokudb_lock_waits;" -u$USER $PASSWORD
384+ if [ $? -eq 0 ]; then
385+ printf ">> Successfuly uninstalled TokuDB plugin.\n\n"
386+ else
387+ printf ">> Error uninstalling TokuDB plugin. Please check error log.\n\n"
388+ exit 1
389+ fi
390+fi

Subscribers

People subscribed via source and target branches