mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Automerge part of mysql-trunk-bugfixing into mysql-trunk-merge.
This commit is contained in:
3
mysql-test/include/not_parallel.inc
Normal file
3
mysql-test/include/not_parallel.inc
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
if (`SELECT '$MTR_PARALLEL' > 1`) {
|
||||||
|
--skip test requires --parallel=1
|
||||||
|
}
|
@ -362,6 +362,7 @@ sub main {
|
|||||||
$opt_parallel= 1 if ($opt_parallel < 1);
|
$opt_parallel= 1 if ($opt_parallel < 1);
|
||||||
mtr_report("Using parallel: $opt_parallel");
|
mtr_report("Using parallel: $opt_parallel");
|
||||||
}
|
}
|
||||||
|
$ENV{MTR_PARALLEL} = $opt_parallel;
|
||||||
|
|
||||||
# Create server socket on any free port
|
# Create server socket on any free port
|
||||||
my $server = new IO::Socket::INET
|
my $server = new IO::Socket::INET
|
||||||
@ -1826,7 +1827,7 @@ sub find_plugin($$)
|
|||||||
mtr_file_exists(vs_config_dirs($location,$plugin_filename),
|
mtr_file_exists(vs_config_dirs($location,$plugin_filename),
|
||||||
"$basedir/lib/plugin/".$plugin_filename,
|
"$basedir/lib/plugin/".$plugin_filename,
|
||||||
"$basedir/$location/.libs/".$plugin_filename,
|
"$basedir/$location/.libs/".$plugin_filename,
|
||||||
"$basedir/lib/mysql/plugin/".$plugin_filename,
|
"$basedir/lib/mysql/plugin/".$plugin_filename,
|
||||||
);
|
);
|
||||||
return $lib_example_plugin;
|
return $lib_example_plugin;
|
||||||
}
|
}
|
||||||
@ -1943,6 +1944,16 @@ sub environment_setup {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ----------------------------------------------------
|
||||||
|
# Add the paths where mysqld will find archive/blackhole/federated plugins.
|
||||||
|
# ----------------------------------------------------
|
||||||
|
$ENV{'ARCHIVE_PLUGIN_DIR'} =
|
||||||
|
dirname(find_plugin("ha_archive", "storage/archive"));
|
||||||
|
$ENV{'BLACKHOLE_PLUGIN_DIR'} =
|
||||||
|
dirname(find_plugin("ha_blackhole", "storage/blackhole"));
|
||||||
|
$ENV{'FEDERATED_PLUGIN_DIR'} =
|
||||||
|
dirname(find_plugin("ha_federated", "storage/federated"));
|
||||||
|
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
# Add the path where mysqld will find mypluglib.so
|
# Add the path where mysqld will find mypluglib.so
|
||||||
# ----------------------------------------------------
|
# ----------------------------------------------------
|
||||||
|
@ -1,2 +1 @@
|
|||||||
--plugin_dir=../storage/federated/.libs
|
--plugin_dir=$FEDERATED_PLUGIN_DIR
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
--source include/not_windows.inc
|
--source include/not_windows.inc
|
||||||
--source include/have_federated_plugin.inc
|
--source include/have_federated_plugin.inc
|
||||||
|
|
||||||
|
--skip federated plugin is disabled
|
||||||
|
|
||||||
CREATE TABLE t1(a int) ENGINE=FEDERATED;
|
CREATE TABLE t1(a int) ENGINE=FEDERATED;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
--plugin_dir=../storage/archive/.libs
|
--plugin_dir=$ARCHIVE_PLUGIN_DIR
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
--source include/not_windows.inc
|
--source include/not_windows.inc
|
||||||
--source include/have_archive_plugin.inc
|
--source include/have_archive_plugin.inc
|
||||||
|
|
||||||
|
# When running in parallel we get
|
||||||
|
# Warning 1620 Plugin is busy and will be uninstalled on shutdown
|
||||||
|
--source include/not_parallel.inc
|
||||||
|
|
||||||
CREATE TABLE t1(a int) ENGINE=ARCHIVE;
|
CREATE TABLE t1(a int) ENGINE=ARCHIVE;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
@ -1 +1 @@
|
|||||||
--plugin_dir=../storage/blackhole/.libs
|
--plugin_dir=$BLACKHOLE_PLUGIN_DIR
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
--source include/not_windows.inc
|
--source include/not_windows.inc
|
||||||
--source include/have_blackhole_plugin.inc
|
--source include/have_blackhole_plugin.inc
|
||||||
|
|
||||||
|
# When running in parallel we get
|
||||||
|
# Warning 1620 Plugin is busy and will be uninstalled on shutdown
|
||||||
|
--source include/not_parallel.inc
|
||||||
|
|
||||||
CREATE TABLE t1(a int) ENGINE=BLACKHOLE;
|
CREATE TABLE t1(a int) ENGINE=BLACKHOLE;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
@ -504,6 +504,7 @@ rm -f $RBR%{_mandir}/man1/make_win_bin_dist.1*
|
|||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
%pre -n MySQL-server%{product_suffix}
|
%pre -n MySQL-server%{product_suffix}
|
||||||
|
mysql_datadir=%{mysqldatadir}
|
||||||
# Check if we can safely upgrade. An upgrade is only safe if it's from one
|
# Check if we can safely upgrade. An upgrade is only safe if it's from one
|
||||||
# of our RPMs in the same version family.
|
# of our RPMs in the same version family.
|
||||||
|
|
||||||
@ -576,7 +577,74 @@ HERE
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# We assume that if there is exactly one ".pid" file,
|
||||||
|
# it contains the valid PID of a running MySQL server.
|
||||||
|
NR_PID_FILES=`ls $mysql_datadir/*.pid 2>/dev/null | wc -l`
|
||||||
|
case $NR_PID_FILES in
|
||||||
|
0 ) SERVER_TO_START='' ;; # No "*.pid" file == no running server
|
||||||
|
1 ) SERVER_TO_START='true' ;;
|
||||||
|
* ) SERVER_TO_START='' # Situation not clear
|
||||||
|
SEVERAL_PID_FILES=true ;;
|
||||||
|
esac
|
||||||
|
# That logic may be debated: We might check whether it is non-empty,
|
||||||
|
# contains exactly one number (possibly a PID), and whether "ps" finds it.
|
||||||
|
# OTOH, if there is no such process, it means a crash without a cleanup -
|
||||||
|
# is that a reason not to start a new server after upgrade?
|
||||||
|
|
||||||
|
STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
|
||||||
|
|
||||||
|
if [ -f $STATUS_FILE ]; then
|
||||||
|
echo "Some previous upgrade was not finished:"
|
||||||
|
ls -ld $STATUS_FILE
|
||||||
|
echo "Please check its status, then do"
|
||||||
|
echo " rm $STATUS_FILE"
|
||||||
|
echo "before repeating the MySQL upgrade."
|
||||||
|
exit 1
|
||||||
|
elif [ -n "$SEVERAL_PID_FILES" ] ; then
|
||||||
|
echo "Your MySQL directory '$mysql_datadir' has more than one PID file:"
|
||||||
|
ls -ld $mysql_datadir/*.pid
|
||||||
|
echo "Please check which one (if any) corresponds to a running server"
|
||||||
|
echo "and delete all others before repeating the MySQL upgrade."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
NEW_VERSION=%{mysql_version}-%{release}
|
||||||
|
|
||||||
|
# The "pre" section code is also run on a first installation,
|
||||||
|
# when there is no data directory yet. Protect against error messages.
|
||||||
|
if [ -d $mysql_datadir ] ; then
|
||||||
|
echo "MySQL RPM upgrade to version $NEW_VERSION" > $STATUS_FILE
|
||||||
|
echo "'pre' step running at `date`" >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
echo "ERR file(s):" >> $STATUS_FILE
|
||||||
|
ls -ltr $mysql_datadir/*.err >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
echo "Latest 'Version' line in latest file:" >> $STATUS_FILE
|
||||||
|
grep '^Version' `ls -tr $mysql_datadir/*.err | tail -1` | \
|
||||||
|
tail -1 >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
|
||||||
|
if [ -n "$SERVER_TO_START" ] ; then
|
||||||
|
# There is only one PID file, race possibility ignored
|
||||||
|
echo "PID file:" >> $STATUS_FILE
|
||||||
|
ls -l $mysql_datadir/*.pid >> $STATUS_FILE
|
||||||
|
cat $mysql_datadir/*.pid >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
echo "Server process:" >> $STATUS_FILE
|
||||||
|
ps -fp `cat $mysql_datadir/*.pid` >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
echo "SERVER_TO_START=$SERVER_TO_START" >> $STATUS_FILE
|
||||||
|
else
|
||||||
|
# Take a note we checked it ...
|
||||||
|
echo "PID file:" >> $STATUS_FILE
|
||||||
|
ls -l $mysql_datadir/*.pid >> $STATUS_FILE 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Shut down a previously installed server first
|
# Shut down a previously installed server first
|
||||||
|
# Note we *could* make that depend on $SERVER_TO_START, but we rather don't,
|
||||||
|
# so a "stop" is attempted even if there is no PID file.
|
||||||
|
# (Maybe the "stop" doesn't work then, but we might fix that in itself.)
|
||||||
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
||||||
%{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
|
%{_sysconfdir}/init.d/mysql stop > /dev/null 2>&1
|
||||||
echo "Giving mysqld 5 seconds to exit nicely"
|
echo "Giving mysqld 5 seconds to exit nicely"
|
||||||
@ -585,17 +653,33 @@ fi
|
|||||||
|
|
||||||
%post -n MySQL-server%{product_suffix}
|
%post -n MySQL-server%{product_suffix}
|
||||||
mysql_datadir=%{mysqldatadir}
|
mysql_datadir=%{mysqldatadir}
|
||||||
|
NEW_VERSION=%{mysql_version}-%{release}
|
||||||
|
STATUS_FILE=$mysql_datadir/RPM_UPGRADE_MARKER
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Create data directory if needed
|
# Create data directory if needed, check whether upgrade or install
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
if [ ! -d $mysql_datadir ] ; then mkdir -m 755 $mysql_datadir; fi
|
if [ ! -d $mysql_datadir ] ; then mkdir -m 755 $mysql_datadir; fi
|
||||||
if [ ! -d $mysql_datadir/mysql ] ; then mkdir $mysql_datadir/mysql; fi
|
if [ -f $STATUS_FILE ] ; then
|
||||||
|
SERVER_TO_START=`grep '^SERVER_TO_START=' $STATUS_FILE | cut -c17-`
|
||||||
|
else
|
||||||
|
SERVER_TO_START=''
|
||||||
|
fi
|
||||||
|
# echo "Analyzed: SERVER_TO_START=$SERVER_TO_START"
|
||||||
|
if [ ! -d $mysql_datadir/mysql ] ; then
|
||||||
|
mkdir $mysql_datadir/mysql;
|
||||||
|
echo "MySQL RPM installation of version $NEW_VERSION" >> $STATUS_FILE
|
||||||
|
else
|
||||||
|
# If the directory exists, we may assume it is an upgrade.
|
||||||
|
echo "MySQL RPM upgrade to version $NEW_VERSION" >> $STATUS_FILE
|
||||||
|
fi
|
||||||
if [ ! -d $mysql_datadir/test ] ; then mkdir $mysql_datadir/test; fi
|
if [ ! -d $mysql_datadir/test ] ; then mkdir $mysql_datadir/test; fi
|
||||||
|
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
# Make MySQL start/shutdown automatically when the machine does it.
|
# Make MySQL start/shutdown automatically when the machine does it.
|
||||||
# ----------------------------------------------------------------------
|
# ----------------------------------------------------------------------
|
||||||
|
# NOTE: This still needs to be debated. Should we check whether these links
|
||||||
|
# for the other run levels exist(ed) before the upgrade?
|
||||||
# use insserv for older SuSE Linux versions
|
# use insserv for older SuSE Linux versions
|
||||||
if [ -x /sbin/insserv ] ; then
|
if [ -x /sbin/insserv ] ; then
|
||||||
/sbin/insserv %{_sysconfdir}/init.d/mysql
|
/sbin/insserv %{_sysconfdir}/init.d/mysql
|
||||||
@ -677,17 +761,30 @@ if [ -x sbin/restorecon ] ; then
|
|||||||
sbin/restorecon -R var/lib/mysql
|
sbin/restorecon -R var/lib/mysql
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Restart in the same way that mysqld will be started normally.
|
# Was the server running before the upgrade? If so, restart the new one.
|
||||||
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
if [ "$SERVER_TO_START" = "true" ] ; then
|
||||||
%{_sysconfdir}/init.d/mysql start
|
# Restart in the same way that mysqld will be started normally.
|
||||||
echo "Giving mysqld 2 seconds to start"
|
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
||||||
sleep 2
|
%{_sysconfdir}/init.d/mysql start
|
||||||
|
echo "Giving mysqld 2 seconds to start"
|
||||||
|
sleep 2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Allow mysqld_safe to start mysqld and print a message before we exit
|
||||||
|
sleep 2
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Allow mysqld_safe to start mysqld and print a message before we exit
|
# Collect an upgrade history ...
|
||||||
sleep 2
|
echo "Upgrade/install finished at `date`" >> $STATUS_FILE
|
||||||
|
echo >> $STATUS_FILE
|
||||||
|
echo "=====" >> $STATUS_FILE
|
||||||
|
STATUS_HISTORY=$mysql_datadir/RPM_UPGRADE_HISTORY
|
||||||
|
cat $STATUS_FILE >> $STATUS_HISTORY
|
||||||
|
rm $STATUS_FILE
|
||||||
|
|
||||||
|
|
||||||
%preun -n MySQL-server%{product_suffix}
|
%preun -n MySQL-server%{product_suffix}
|
||||||
|
|
||||||
if [ $1 = 0 ] ; then
|
if [ $1 = 0 ] ; then
|
||||||
# Stop MySQL before uninstalling it
|
# Stop MySQL before uninstalling it
|
||||||
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
if [ -x %{_sysconfdir}/init.d/mysql ] ; then
|
||||||
@ -892,6 +989,17 @@ fi
|
|||||||
# merging BK trees)
|
# merging BK trees)
|
||||||
##############################################################################
|
##############################################################################
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Jun 15 2010 Joerg Bruehe <joerg.bruehe@sun.com>
|
||||||
|
|
||||||
|
- Change the behaviour on installation and upgrade:
|
||||||
|
On installation, do not autostart the server.
|
||||||
|
*Iff* the server was stopped before the upgrade is started, this is taken as a
|
||||||
|
sign the administrator is handling that manually, and so the new server will
|
||||||
|
not be started automatically at the end of the upgrade.
|
||||||
|
The start/stop scripts will still be installed, so the server will be started
|
||||||
|
on the next machine boot.
|
||||||
|
This is the 5.5 version of fixing bug#27072 (RPM autostarting the server).
|
||||||
|
|
||||||
* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
|
* Tue Jun 1 2010 Jonathan Perkin <jonathan.perkin@oracle.com>
|
||||||
|
|
||||||
- Implement SELinux checks from distribution-specific spec file.
|
- Implement SELinux checks from distribution-specific spec file.
|
||||||
|
Reference in New Issue
Block a user