mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Fixed error when copying mysqld_multi
Fixes for mysql-test Fixed race condition in SHOW LOGS
This commit is contained in:
@ -5,5 +5,5 @@ aclocal; autoheader; aclocal; automake; autoconf
|
|||||||
|
|
||||||
CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -f
|
CFLAGS="-O6 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -fomit-frame-pointer -f
|
||||||
elide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/m
|
elide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/m
|
||||||
ysql --with-extra-charsets=complex
|
ysql --with-extra-charsets=complex
|
||||||
gmake
|
gmake
|
||||||
|
@ -61,7 +61,7 @@ if ($opt_stage == 0)
|
|||||||
log_system("$host/bin/mysqladmin --no-defaults -u root -S $mysql_unix_port -s shutdown");
|
log_system("$host/bin/mysqladmin --no-defaults -u root -S $mysql_unix_port -s shutdown");
|
||||||
}
|
}
|
||||||
system("touch $host/mysql-fix-for-glob");
|
system("touch $host/mysql-fix-for-glob");
|
||||||
rm_all(<$host/mysql-*>);
|
rm_all(<$host/mysql-3*>);
|
||||||
rm_all("$host/test");
|
rm_all("$host/test");
|
||||||
system("mkdir $host") if (! -d $host);
|
system("mkdir $host") if (! -d $host);
|
||||||
system("mkdir $host/test") if (! -d "$host/test");
|
system("mkdir $host/test") if (! -d "$host/test");
|
||||||
|
@ -24,7 +24,7 @@ EXTRA_DIST = INSTALL-SOURCE README \
|
|||||||
SUBDIRS = include @docs_dirs@ @readline_dir@ \
|
SUBDIRS = include @docs_dirs@ @readline_dir@ \
|
||||||
@thread_dirs@ @sql_client_dirs@ \
|
@thread_dirs@ @sql_client_dirs@ \
|
||||||
@sql_server_dirs@ scripts tests man \
|
@sql_server_dirs@ scripts tests man \
|
||||||
@bench_dirs@ support-files mysql-test
|
@bench_dirs@ support-files
|
||||||
|
|
||||||
# Relink after clean
|
# Relink after clean
|
||||||
CLEANFILES = linked_client_sources linked_server_sources linked_libmysql_sources linked_libmysql_r_sources linked_include_sources
|
CLEANFILES = linked_client_sources linked_server_sources linked_libmysql_sources linked_libmysql_r_sources linked_include_sources
|
||||||
|
18
configure.in
18
configure.in
@ -4,7 +4,7 @@ dnl Process this file with autoconf to produce a configure script.
|
|||||||
AC_INIT(sql/mysqld.cc)
|
AC_INIT(sql/mysqld.cc)
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
# The Docs Makefile.am parses this line!
|
# The Docs Makefile.am parses this line!
|
||||||
AM_INIT_AUTOMAKE(mysql, 3.23.29-gamma)
|
AM_INIT_AUTOMAKE(mysql, 3.23.29a-gamma)
|
||||||
AM_CONFIG_HEADER(config.h)
|
AM_CONFIG_HEADER(config.h)
|
||||||
|
|
||||||
PROTOCOL_VERSION=10
|
PROTOCOL_VERSION=10
|
||||||
@ -637,6 +637,20 @@ case $SYSTEM_TYPE in
|
|||||||
CFLAGS="$CFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
CFLAGS="$CFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
||||||
CXXFLAGS="$CXXFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
CXXFLAGS="$CXXFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
||||||
;;
|
;;
|
||||||
|
*solaris2.8*)
|
||||||
|
# Solaris 2.8 has a broken /usr/include/widec.h
|
||||||
|
# Make a fixed copy in ./include
|
||||||
|
echo "Fixing broken include files for $SYSTEM_TYPE"
|
||||||
|
echo " - Creating local copy of widec.h"
|
||||||
|
if test ! -d include
|
||||||
|
then
|
||||||
|
mkdir ./include
|
||||||
|
fi
|
||||||
|
builddir=`pwd`
|
||||||
|
sed -e "s|^#if[ ]*!defined(__lint)|#if !defined\(__lint\) \&\& !defined\(getwc\)|" < /usr/include/widec.h > include/widec.h
|
||||||
|
CFLAGS="$CFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
||||||
|
CXXFLAGS="$CXXFLAGS -DHAVE_CURSES_H -I$builddir/include -DHAVE_RWLOCK_T"
|
||||||
|
;;
|
||||||
*solaris2.5.1*)
|
*solaris2.5.1*)
|
||||||
echo "Enabling getpass() workaround for Solaris 2.5.1"
|
echo "Enabling getpass() workaround for Solaris 2.5.1"
|
||||||
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS -DHAVE_RWLOCK_T";
|
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS -DHAVE_RWLOCK_T";
|
||||||
@ -1514,7 +1528,7 @@ AC_ARG_WITH(bench,
|
|||||||
|
|
||||||
if test "$with_bench" = "yes"
|
if test "$with_bench" = "yes"
|
||||||
then
|
then
|
||||||
bench_dirs="sql-bench"
|
bench_dirs="sql-bench mysql-test"
|
||||||
else
|
else
|
||||||
bench_dirs=""
|
bench_dirs=""
|
||||||
fi
|
fi
|
||||||
|
@ -43,7 +43,7 @@ EXTRA_SCRIPTS = make_binary_distribution.sh \
|
|||||||
mysql_find_rows.sh \
|
mysql_find_rows.sh \
|
||||||
mysqlhotcopy.sh \
|
mysqlhotcopy.sh \
|
||||||
mysqldumpslow.sh \
|
mysqldumpslow.sh \
|
||||||
mysqld_multi \
|
mysqld_multi.sh \
|
||||||
safe_mysqld.sh
|
safe_mysqld.sh
|
||||||
|
|
||||||
EXTRA_DIST = $(EXTRA_SCRIPTS) \
|
EXTRA_DIST = $(EXTRA_SCRIPTS) \
|
||||||
|
@ -69,11 +69,11 @@ cp -r -p sql/share/* $BASE/share/mysql
|
|||||||
rm -f $BASE/share/mysql/Makefile* $BASE/share/mysql/*/*.OLD
|
rm -f $BASE/share/mysql/Makefile* $BASE/share/mysql/*/*.OLD
|
||||||
rm -rf $BASE/share/SCCS $BASE/share/*/SCCS
|
rm -rf $BASE/share/SCCS $BASE/share/*/SCCS
|
||||||
|
|
||||||
cp -p mysql-test/mysql-test-run mysql-test/install_test_db $BASE/scripts
|
cp -p mysql-test/mysql-test-run mysql-test/install_test_db $BASE/mysql-test/
|
||||||
cp -p mysql-test/README $BASE/README
|
cp -p mysql-test/README $BASE/mysql-test/README
|
||||||
cp -p mysql-test/include/*.inc $BASE/mysql-test/include
|
cp -p mysql-test/include/*.inc $BASE/mysql-test/include
|
||||||
cp -p mysql-test/std_data/*.dat mysql-test/std_data/*.frm \
|
cp -p mysql-test/std_data/*.dat mysql-test/std_data/*.frm \
|
||||||
mysql-test/std_data/*.MRG $BASE/mysql-test/std_data
|
mysql-test/std_data/*.MRG $BASE/mysql-test/std_data
|
||||||
cp -p mysql-test/t/*.test mysql-test/t/*.opt $BASE/mysql-test/t
|
cp -p mysql-test/t/*.test mysql-test/t/*.opt $BASE/mysql-test/t
|
||||||
cp -p mysql-test/r/*.result $BASE/mysql-test/r
|
cp -p mysql-test/r/*.result $BASE/mysql-test/r
|
||||||
|
|
||||||
|
@ -93,7 +93,6 @@ u_int32_t berkeley_lock_types[]=
|
|||||||
{ DB_LOCK_DEFAULT, DB_LOCK_OLDEST, DB_LOCK_RANDOM };
|
{ DB_LOCK_DEFAULT, DB_LOCK_OLDEST, DB_LOCK_RANDOM };
|
||||||
TYPELIB berkeley_lock_typelib= {array_elements(berkeley_lock_names),"",
|
TYPELIB berkeley_lock_typelib= {array_elements(berkeley_lock_names),"",
|
||||||
berkeley_lock_names};
|
berkeley_lock_names};
|
||||||
static MEM_ROOT show_logs_root;
|
|
||||||
|
|
||||||
static void berkeley_print_error(const char *db_errpfx, char *buffer);
|
static void berkeley_print_error(const char *db_errpfx, char *buffer);
|
||||||
static byte* bdb_get_key(BDB_SHARE *share,uint *length,
|
static byte* bdb_get_key(BDB_SHARE *share,uint *length,
|
||||||
@ -211,45 +210,51 @@ int berkeley_rollback(THD *thd, void *trans)
|
|||||||
DBUG_RETURN(error);
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *show_logs_alloc(size_t size)
|
|
||||||
{
|
|
||||||
return alloc_root(&show_logs_root, size);
|
|
||||||
}
|
|
||||||
|
|
||||||
int berkeley_show_logs(THD *thd)
|
int berkeley_show_logs(THD *thd)
|
||||||
{
|
{
|
||||||
char **all_logs, **free_logs;
|
char **all_logs, **free_logs, **a, **f;
|
||||||
String *packet= &thd->packet;
|
String *packet= &thd->packet;
|
||||||
int error;
|
int error=1;
|
||||||
|
MEM_ROOT show_logs_root;
|
||||||
|
MEM_ROOT *old_root=my_pthread_getspecific_ptr(MEM_ROOT*,THR_MALLOC);
|
||||||
DBUG_ENTER("berkeley_show_logs");
|
DBUG_ENTER("berkeley_show_logs");
|
||||||
|
|
||||||
init_alloc_root(&show_logs_root, 1024, 1024);
|
init_alloc_root(&show_logs_root, 1024, 1024);
|
||||||
if ((error= log_archive(db_env, &all_logs, DB_ARCH_ABS|DB_ARCH_LOG, show_logs_alloc)) ||
|
my_pthread_setspecific_ptr(THR_MALLOC,&show_logs_root);
|
||||||
(error= log_archive(db_env, &free_logs, DB_ARCH_ABS, show_logs_alloc)))
|
|
||||||
|
if ((error= log_archive(db_env, &all_logs, DB_ARCH_ABS | DB_ARCH_LOG,
|
||||||
|
(void* (*)(unsigned int)) sql_alloc)) ||
|
||||||
|
(error= log_archive(db_env, &free_logs, DB_ARCH_ABS,
|
||||||
|
(void* (*)(unsigned int)) sql_alloc)))
|
||||||
{
|
{
|
||||||
DBUG_PRINT("error", ("log_archive failed (error %d)", error));
|
DBUG_PRINT("error", ("log_archive failed (error %d)", error));
|
||||||
db_env->err(db_env, error, "log_archive: DB_ARCH_ABS");
|
db_env->err(db_env, error, "log_archive: DB_ARCH_ABS");
|
||||||
DBUG_RETURN(1);
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (char **a = all_logs, **f = free_logs; *a; ++a)
|
for (a = all_logs, f = free_logs; *a; ++a)
|
||||||
{
|
{
|
||||||
packet->length(0);
|
packet->length(0);
|
||||||
net_store_data(packet,*a);
|
net_store_data(packet,*a);
|
||||||
net_store_data(packet,"BDB");
|
net_store_data(packet,"BDB");
|
||||||
if (f && *f && strcmp(*a, *f) == 0)
|
if (*f && strcmp(*a, *f) == 0)
|
||||||
{
|
{
|
||||||
net_store_data(packet, SHOW_LOG_STATUS_FREE);
|
|
||||||
++f;
|
++f;
|
||||||
|
net_store_data(packet, SHOW_LOG_STATUS_FREE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
net_store_data(packet, SHOW_LOG_STATUS_INUSE);
|
net_store_data(packet, SHOW_LOG_STATUS_INUSE);
|
||||||
|
|
||||||
if (my_net_write(&thd->net,(char*) packet->ptr(),packet->length()))
|
if (my_net_write(&thd->net,(char*) packet->ptr(),packet->length()))
|
||||||
DBUG_RETURN(1); /* purecov: inspected */
|
goto err;
|
||||||
}
|
}
|
||||||
|
error=0;
|
||||||
|
|
||||||
|
err:
|
||||||
free_root(&show_logs_root,MYF(0));
|
free_root(&show_logs_root,MYF(0));
|
||||||
DBUG_RETURN(0);
|
my_pthread_setspecific_ptr(THR_MALLOC,old_root);
|
||||||
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void berkeley_print_error(const char *db_errpfx, char *buffer)
|
static void berkeley_print_error(const char *db_errpfx, char *buffer)
|
||||||
|
@ -635,7 +635,7 @@ void clean_up(void)
|
|||||||
static void set_ports()
|
static void set_ports()
|
||||||
{
|
{
|
||||||
char *env;
|
char *env;
|
||||||
if (!mysql_port)
|
if (!mysql_port && !opt_disable_networking)
|
||||||
{ // Get port if not from commandline
|
{ // Get port if not from commandline
|
||||||
struct servent *serv_ptr;
|
struct servent *serv_ptr;
|
||||||
mysql_port = MYSQL_PORT;
|
mysql_port = MYSQL_PORT;
|
||||||
|
Reference in New Issue
Block a user