Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
2e174533
Commit
2e174533
authored
Jan 23, 2007
by
mjorgensen@production.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal:/home/bk/mysql-5.1
into production.mysql.com:/usersnfs/mjorgensen/bktrees/mysql-5.1-build
parents
f2157aed
37f76ab4
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
133 additions
and
54 deletions
+133
-54
BUILD/check-cpu
BUILD/check-cpu
+27
-3
BUILD/compile-amd64-valgrind-max
BUILD/compile-amd64-valgrind-max
+24
-0
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+1
-1
scripts/mysqlaccess.sh
scripts/mysqlaccess.sh
+4
-0
scripts/mysqld_multi.sh
scripts/mysqld_multi.sh
+3
-0
sql/ha_ndbcluster.cc
sql/ha_ndbcluster.cc
+67
-46
sql/mysqld.cc
sql/mysqld.cc
+7
-4
No files found.
BUILD/check-cpu
View file @
2e174533
...
...
@@ -5,9 +5,13 @@
#
check_cpu
()
{
if
test
-r
/proc/cpuinfo
;
then
CPUINFO
=
/proc/cpuinfo
if
test
-n
"
$TEST_CPUINFO
"
;
then
CPUINFO
=
$TEST_CPUINFO
fi
if
test
-r
"
$CPUINFO
"
-a
"
$CPUINFO
"
!=
" "
;
then
# on Linux (and others?) we can get detailed CPU information out of /proc
cpuinfo
=
"cat
/proc/cpuinfo
"
cpuinfo
=
"cat
$CPUINFO
"
# detect CPU family
cpu_family
=
`
$cpuinfo
|
grep
'family'
|
cut
-d
':'
-f
2 |
cut
-d
' '
-f
2 |
head
-1
`
...
...
@@ -33,6 +37,7 @@ check_cpu () {
done
else
# Fallback when there is no /proc/cpuinfo
CPUINFO
=
" "
case
"
`
uname
-s
`
"
in
FreeBSD|OpenBSD
)
cpu_family
=
`
uname
-m
`
;
...
...
@@ -84,6 +89,18 @@ check_cpu () {
*
Pentium
*
M
*
pro
*
)
cpu_arg
=
"pentium-m"
;
;;
*
Celeron
\(
R
\)
*
\
M
*
)
cpu_arg
=
"pentium-m"
;
;;
*
Celeron
*
Coppermine
*
)
cpu_arg
=
"pentium3"
;;
*
Celeron
\(
R
\)
*
)
cpu_arg
=
"pentium4"
;;
*
Celeron
*
)
cpu_arg
=
"pentium2"
;
;;
*
Athlon
*
64
*
)
cpu_arg
=
"athlon64"
;
;;
...
...
@@ -120,7 +137,14 @@ check_cpu () {
esac
if
test
-z
"
$cpu_arg
"
;
then
if
test
-z
"
$cpu_arg
"
;
then
if
test
"
$CPUINFO
"
!=
" "
;
then
# fallback to uname if necessary
TEST_CPUINFO
=
" "
check_cpu_cflags
=
""
check_cpu
return
fi
echo
"BUILD/check-cpu: Oops, could not find out what kind of cpu this machine is using."
>
&2
check_cpu_cflags
=
""
return
...
...
BUILD/compile-amd64-valgrind-max
0 → 100755
View file @
2e174533
#! /bin/sh
path
=
`
dirname
$0
`
.
"
$path
/SETUP.sh"
extra_flags
=
"
$amd64_cflags
$debug_cflags
$valgrind_flags
"
extra_configs
=
"
$amd64_configs
$debug_configs
$max_configs
"
.
"
$path
/FINISH.sh"
if
test
-z
"
$just_print
"
then
set
+v +x
echo
"
\
******************************************************************************
Note that by default BUILD/compile-pentium-valgrind-max calls 'configure' with
--enable-assembler. When Valgrind detects an error involving an assembly
function (for example an uninitialized value used as an argument of an
assembly function), Valgrind will not print the stacktrace and 'valgrind
--gdb-attach=yes' will not work either. If you need a stacktrace in those
cases, you have to run BUILD/compile-pentium-valgrind-max with the
--disable-assembler argument.
******************************************************************************"
fi
mysql-test/mysql-test-run.pl
View file @
2e174533
...
...
@@ -1037,7 +1037,7 @@ sub command_line_setup () {
# On some operating systems, there is a limit to the length of a
# UNIX domain socket's path far below PATH_MAX, so try to avoid long
# socket path names.
$sockdir
=
tempdir
(
CLEANUP
=>
1
)
if
(
length
(
$sockdir
)
>
80
);
$sockdir
=
tempdir
(
CLEANUP
=>
0
)
if
(
length
(
$sockdir
)
>
80
);
# Put this into a hash, will be a C struct
...
...
scripts/mysqlaccess.sh
View file @
2e174533
...
...
@@ -465,6 +465,9 @@ MySQLaccess::Report::Print_Header();
elsif
(
-f
"@sysconfdir@/
$script_conf
"
)
{
require
"@sysconfdir@/
$script_conf
"
;
}
elsif
(
-f
"/etc/
$script_conf
"
)
{
require
"/etc/
$script_conf
"
;
}
# ****************************
# Read in all parameters
...
...
@@ -930,6 +933,7 @@ sub MergeConfigFile {
sub MergeConfigFiles
{
my
(
$name
,
$pass
,
$uid
,
$gid
,
$quota
,
$comment
,
$gcos
,
$dir
,
$shell
)
=
getpwuid
$<
;
MergeConfigFile
(
"@sysconfdir@/my.cnf"
)
;
MergeConfigFile
(
"/etc/my.cnf"
)
;
MergeConfigFile
(
"
$dir
/.my.cnf"
)
;
}
...
...
scripts/mysqld_multi.sh
View file @
2e174533
...
...
@@ -467,6 +467,9 @@ sub find_groups
if (-f "@sysconfdir@/my.cnf" && -r "@sysconfdir@/my.cnf")
{
open(MY_CNF, "<@sysconfdir@/my.cnf") && (@tmp=<MY_CNF>) && close(MY_CNF);
} elsif (-f "/etc/my.cnf" && -r "/etc/my.cnf")
{
open(MY_CNF, "</etc/my.cnf") && (@tmp=<MY_CNF>) && close(MY_CNF);
}
for ($i = 0; ($line = shift @tmp); $i++)
{
...
...
sql/ha_ndbcluster.cc
View file @
2e174533
...
...
@@ -133,6 +133,7 @@ static uint ndbcluster_alter_table_flags(uint flags)
}
static
int
ndbcluster_inited
=
0
;
static
int
ndbcluster_terminating
=
0
;
static
Ndb
*
g_ndb
=
NULL
;
Ndb_cluster_connection
*
g_ndb_cluster_connection
=
NULL
;
...
...
@@ -159,6 +160,7 @@ pthread_t ndb_util_thread;
int
ndb_util_thread_running
=
0
;
pthread_mutex_t
LOCK_ndb_util_thread
;
pthread_cond_t
COND_ndb_util_thread
;
pthread_cond_t
COND_ndb_util_ready
;
pthread_handler_t
ndb_util_thread_func
(
void
*
arg
);
ulong
ndb_cache_check_time
;
...
...
@@ -6625,6 +6627,7 @@ int ndbcluster_find_files(handlerton *hton, THD *thd,
/* Call back after cluster connect */
static
int
connect_callback
()
{
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
update_status_variables
(
g_ndb_cluster_connection
);
uint
node_id
,
i
=
0
;
...
...
@@ -6634,6 +6637,7 @@ static int connect_callback()
g_node_id_map
[
node_id
]
=
i
++
;
pthread_cond_signal
(
&
COND_ndb_util_thread
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
return
0
;
}
...
...
@@ -6644,6 +6648,15 @@ static int ndbcluster_init(void *p)
int
res
;
DBUG_ENTER
(
"ndbcluster_init"
);
if
(
ndbcluster_inited
)
DBUG_RETURN
(
FALSE
);
pthread_mutex_init
(
&
ndbcluster_mutex
,
MY_MUTEX_INIT_FAST
);
pthread_mutex_init
(
&
LOCK_ndb_util_thread
,
MY_MUTEX_INIT_FAST
);
pthread_cond_init
(
&
COND_ndb_util_thread
,
NULL
);
pthread_cond_init
(
&
COND_ndb_util_ready
,
NULL
);
ndb_util_thread_running
=
-
1
;
ndbcluster_terminating
=
0
;
ndb_dictionary_is_mysqld
=
1
;
ndbcluster_hton
=
(
handlerton
*
)
p
;
...
...
@@ -6742,17 +6755,12 @@ static int ndbcluster_init(void *p)
(
void
)
hash_init
(
&
ndbcluster_open_tables
,
system_charset_info
,
32
,
0
,
0
,
(
hash_get_key
)
ndbcluster_get_key
,
0
,
0
);
pthread_mutex_init
(
&
ndbcluster_mutex
,
MY_MUTEX_INIT_FAST
);
#ifdef HAVE_NDB_BINLOG
/* start the ndb injector thread */
if
(
ndbcluster_binlog_start
())
goto
ndbcluster_init_error
;
#endif
/* HAVE_NDB_BINLOG */
pthread_mutex_init
(
&
LOCK_ndb_util_thread
,
MY_MUTEX_INIT_FAST
);
pthread_cond_init
(
&
COND_ndb_util_thread
,
NULL
);
ndb_cache_check_time
=
opt_ndb_cache_check_time
;
// Create utility thread
pthread_t
tmp
;
...
...
@@ -6763,15 +6771,27 @@ static int ndbcluster_init(void *p)
pthread_mutex_destroy
(
&
ndbcluster_mutex
);
pthread_mutex_destroy
(
&
LOCK_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_ready
);
goto
ndbcluster_init_error
;
}
/* Wait for the util thread to start */
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
while
(
!
ndb_util_thread_running
)
pthread_cond_wait
(
&
COND_ndb_util_
thread
,
&
LOCK_ndb_util_thread
);
while
(
ndb_util_thread_running
<
0
)
pthread_cond_wait
(
&
COND_ndb_util_
ready
,
&
LOCK_ndb_util_thread
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
if
(
!
ndb_util_thread_running
)
{
DBUG_PRINT
(
"error"
,
(
"ndb utility thread exited prematurely"
));
hash_free
(
&
ndbcluster_open_tables
);
pthread_mutex_destroy
(
&
ndbcluster_mutex
);
pthread_mutex_destroy
(
&
LOCK_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_ready
);
goto
ndbcluster_init_error
;
}
ndbcluster_inited
=
1
;
DBUG_RETURN
(
FALSE
);
...
...
@@ -6797,22 +6817,12 @@ static int ndbcluster_end(handlerton *hton, ha_panic_function type)
ndbcluster_inited
=
0
;
/* wait for util thread to finish */
sql_print_information
(
"Stopping Cluster Utility thread"
);
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
if
(
ndb_util_thread_running
>
0
)
{
ndbcluster_terminating
=
1
;
pthread_cond_signal
(
&
COND_ndb_util_thread
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
while
(
ndb_util_thread_running
>
0
)
{
struct
timespec
abstime
;
set_timespec
(
abstime
,
1
);
pthread_cond_timedwait
(
&
COND_ndb_util_thread
,
&
LOCK_ndb_util_thread
,
&
abstime
);
}
}
pthread_cond_wait
(
&
COND_ndb_util_ready
,
&
LOCK_ndb_util_thread
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
...
...
@@ -6861,6 +6871,7 @@ static int ndbcluster_end(handlerton *hton, ha_panic_function type)
pthread_mutex_destroy
(
&
ndbcluster_mutex
);
pthread_mutex_destroy
(
&
LOCK_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_thread
);
pthread_cond_destroy
(
&
COND_ndb_util_ready
);
DBUG_RETURN
(
0
);
}
...
...
@@ -8395,6 +8406,8 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
DBUG_ENTER
(
"ndb_util_thread"
);
DBUG_PRINT
(
"enter"
,
(
"ndb_cache_check_time: %lu"
,
ndb_cache_check_time
));
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
thd
=
new
THD
;
/* note that contructor of THD uses DBUG_ */
THD_CHECK_SENTRY
(
thd
);
...
...
@@ -8403,12 +8416,7 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
thd
->
thread_stack
=
(
char
*
)
&
thd
;
/* remember where our stack is */
if
(
thd
->
store_globals
())
{
thd
->
cleanup
();
delete
thd
;
ndb_util_thread_running
=
0
;
DBUG_RETURN
(
NULL
);
}
goto
ndb_util_thread_fail
;
thd
->
init_for_queries
();
thd
->
version
=
refresh_version
;
thd
->
set_time
();
...
...
@@ -8419,15 +8427,27 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
thd
->
main_security_ctx
.
priv_user
=
0
;
thd
->
current_stmt_binlog_row_based
=
TRUE
;
// If in mixed mode
/* Signal successful initialization */
ndb_util_thread_running
=
1
;
pthread_cond_signal
(
&
COND_ndb_util_thread
);
pthread_cond_signal
(
&
COND_ndb_util_ready
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
/*
wait for mysql server to start
*/
pthread_mutex_lock
(
&
LOCK_server_started
);
while
(
!
mysqld_server_started
)
pthread_cond_wait
(
&
COND_server_started
,
&
LOCK_server_started
);
{
set_timespec
(
abstime
,
1
);
pthread_cond_timedwait
(
&
COND_server_started
,
&
LOCK_server_started
,
&
abstime
);
if
(
ndbcluster_terminating
)
{
pthread_mutex_unlock
(
&
LOCK_server_started
);
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
goto
ndb_util_thread_end
;
}
}
pthread_mutex_unlock
(
&
LOCK_server_started
);
/*
...
...
@@ -8437,22 +8457,17 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
while
(
!
ndb_cluster_node_id
&&
(
ndbcluster_hton
->
slot
!=
~
(
uint
)
0
))
{
/* ndb not connected yet */
set_timespec
(
abstime
,
1
);
pthread_cond_timedwait
(
&
COND_ndb_util_thread
,
&
LOCK_ndb_util_thread
,
&
abstime
);
if
(
abort_loop
)
{
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
pthread_cond_wait
(
&
COND_ndb_util_thread
,
&
LOCK_ndb_util_thread
);
if
(
ndbcluster_terminating
)
goto
ndb_util_thread_end
;
}
}
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
/* Get thd_ndb for this thread */
if
(
!
(
thd_ndb
=
ha_ndbcluster
::
seize_thd_ndb
()))
{
sql_print_error
(
"Could not allocate Thd_ndb object"
);
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
goto
ndb_util_thread_end
;
}
set_thd_ndb
(
thd
,
thd_ndb
);
...
...
@@ -8471,19 +8486,20 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
#endif
set_timespec
(
abstime
,
0
);
for
(;
!
abort_loop
;)
for
(;;)
{
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
if
(
!
ndbcluster_terminating
)
pthread_cond_timedwait
(
&
COND_ndb_util_thread
,
&
LOCK_ndb_util_thread
,
&
abstime
);
if
(
ndbcluster_terminating
)
/* Shutting down server */
goto
ndb_util_thread_end
;
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
#ifdef NDB_EXTRA_DEBUG_UTIL_THREAD
DBUG_PRINT
(
"ndb_util_thread"
,
(
"Started, ndb_cache_check_time: %lu"
,
ndb_cache_check_time
));
#endif
if
(
abort_loop
)
break
;
/* Shutting down server */
#ifdef HAVE_NDB_BINLOG
/*
...
...
@@ -8606,13 +8622,18 @@ pthread_handler_t ndb_util_thread_func(void *arg __attribute__((unused)))
abstime
.
tv_nsec
-=
1000000000
;
}
}
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
ndb_util_thread_end:
sql_print_information
(
"Stopping Cluster Utility thread"
);
net_end
(
&
thd
->
net
);
ndb_util_thread_fail:
thd
->
cleanup
();
delete
thd
;
pthread_mutex_lock
(
&
LOCK_ndb_util_thread
);
/* signal termination */
ndb_util_thread_running
=
0
;
pthread_cond_signal
(
&
COND_ndb_util_ready
);
pthread_mutex_unlock
(
&
LOCK_ndb_util_thread
);
DBUG_PRINT
(
"exit"
,
(
"ndb_util_thread"
));
my_thread_end
();
...
...
sql/mysqld.cc
View file @
2e174533
...
...
@@ -3698,15 +3698,18 @@ we force server id to 2, but this MySQL server will not act as a slave.");
mysqld_port
,
MYSQL_COMPILATION_COMMENT
);
// Signal threads waiting for server to be started
mysqld_server_started
=
1
;
pthread_cond_signal
(
&
COND_server_started
);
if
(
!
opt_noacl
)
{
if
(
Events
::
get_instance
()
->
init
())
unireg_abort
(
1
);
}
/* Signal threads waiting for server to be started */
pthread_mutex_lock
(
&
LOCK_server_started
);
mysqld_server_started
=
1
;
pthread_cond_signal
(
&
COND_server_started
);
pthread_mutex_unlock
(
&
LOCK_server_started
);
#if defined(__NT__) || defined(HAVE_SMEM)
handle_connections_methods
();
#else
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment