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:
@ -61,7 +61,7 @@ if ($opt_stage == 0)
|
||||
log_system("$host/bin/mysqladmin --no-defaults -u root -S $mysql_unix_port -s shutdown");
|
||||
}
|
||||
system("touch $host/mysql-fix-for-glob");
|
||||
rm_all(<$host/mysql-*>);
|
||||
rm_all(<$host/mysql-3*>);
|
||||
rm_all("$host/test");
|
||||
system("mkdir $host") if (! -d $host);
|
||||
system("mkdir $host/test") if (! -d "$host/test");
|
||||
|
@ -24,7 +24,7 @@ EXTRA_DIST = INSTALL-SOURCE README \
|
||||
SUBDIRS = include @docs_dirs@ @readline_dir@ \
|
||||
@thread_dirs@ @sql_client_dirs@ \
|
||||
@sql_server_dirs@ scripts tests man \
|
||||
@bench_dirs@ support-files mysql-test
|
||||
@bench_dirs@ support-files
|
||||
|
||||
# Relink after clean
|
||||
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_CANONICAL_SYSTEM
|
||||
# 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)
|
||||
|
||||
PROTOCOL_VERSION=10
|
||||
@ -637,6 +637,20 @@ case $SYSTEM_TYPE in
|
||||
CFLAGS="$CFLAGS -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*)
|
||||
echo "Enabling getpass() workaround for Solaris 2.5.1"
|
||||
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS -DHAVE_RWLOCK_T";
|
||||
@ -1514,7 +1528,7 @@ AC_ARG_WITH(bench,
|
||||
|
||||
if test "$with_bench" = "yes"
|
||||
then
|
||||
bench_dirs="sql-bench"
|
||||
bench_dirs="sql-bench mysql-test"
|
||||
else
|
||||
bench_dirs=""
|
||||
fi
|
||||
|
@ -43,7 +43,7 @@ EXTRA_SCRIPTS = make_binary_distribution.sh \
|
||||
mysql_find_rows.sh \
|
||||
mysqlhotcopy.sh \
|
||||
mysqldumpslow.sh \
|
||||
mysqld_multi \
|
||||
mysqld_multi.sh \
|
||||
safe_mysqld.sh
|
||||
|
||||
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 -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/README $BASE/README
|
||||
cp -p mysql-test/mysql-test-run mysql-test/install_test_db $BASE/mysql-test/
|
||||
cp -p mysql-test/README $BASE/mysql-test/README
|
||||
cp -p mysql-test/include/*.inc $BASE/mysql-test/include
|
||||
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/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 };
|
||||
TYPELIB berkeley_lock_typelib= {array_elements(berkeley_lock_names),"",
|
||||
berkeley_lock_names};
|
||||
static MEM_ROOT show_logs_root;
|
||||
|
||||
static void berkeley_print_error(const char *db_errpfx, char *buffer);
|
||||
static byte* bdb_get_key(BDB_SHARE *share,uint *length,
|
||||
@ -211,45 +210,51 @@ int berkeley_rollback(THD *thd, void *trans)
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
static void *show_logs_alloc(size_t size)
|
||||
{
|
||||
return alloc_root(&show_logs_root, size);
|
||||
}
|
||||
|
||||
int berkeley_show_logs(THD *thd)
|
||||
{
|
||||
char **all_logs, **free_logs;
|
||||
char **all_logs, **free_logs, **a, **f;
|
||||
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");
|
||||
|
||||
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)) ||
|
||||
(error= log_archive(db_env, &free_logs, DB_ARCH_ABS, show_logs_alloc)))
|
||||
my_pthread_setspecific_ptr(THR_MALLOC,&show_logs_root);
|
||||
|
||||
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));
|
||||
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);
|
||||
net_store_data(packet,*a);
|
||||
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;
|
||||
net_store_data(packet, SHOW_LOG_STATUS_FREE);
|
||||
}
|
||||
else
|
||||
net_store_data(packet, SHOW_LOG_STATUS_INUSE);
|
||||
|
||||
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));
|
||||
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)
|
||||
|
@ -635,7 +635,7 @@ void clean_up(void)
|
||||
static void set_ports()
|
||||
{
|
||||
char *env;
|
||||
if (!mysql_port)
|
||||
if (!mysql_port && !opt_disable_networking)
|
||||
{ // Get port if not from commandline
|
||||
struct servent *serv_ptr;
|
||||
mysql_port = MYSQL_PORT;
|
||||
|
Reference in New Issue
Block a user