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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
551ad1cf
Commit
551ad1cf
authored
Aug 07, 2013
by
Seppo Jaakola
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Merged FreeBSD compatibility changes (up to revision 3893 in lp:~codership/codership-mysql/5.5-23)
parent
7cf10ddf
Changes
7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
222 additions
and
58 deletions
+222
-58
.bzrignore
.bzrignore
+3
-0
cmake/install_macros.cmake
cmake/install_macros.cmake
+24
-0
cmake/os/FreeBSD.cmake
cmake/os/FreeBSD.cmake
+3
-0
scripts/mysqld_safe.sh
scripts/mysqld_safe.sh
+3
-2
scripts/wsrep_sst_rsync.sh
scripts/wsrep_sst_rsync.sh
+42
-22
scripts/wsrep_sst_xtrabackup.sh
scripts/wsrep_sst_xtrabackup.sh
+145
-34
sql/wsrep_utils.cc
sql/wsrep_utils.cc
+2
-0
No files found.
.bzrignore
View file @
551ad1cf
...
...
@@ -72,6 +72,9 @@ RelWithDebInfo
.vimrc
ac_available_languages_fragment
BitKeeper/
build_debug
build_install
build_release
client/*.ds?
client/completion_hash.cpp
client/decimal.c
...
...
cmake/install_macros.cmake
View file @
551ad1cf
...
...
@@ -13,8 +13,30 @@
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
if
(
APPLE
)
LIST
(
APPEND CMAKE_CXX_LINK_EXECUTABLE
"dsymutil <TARGET>"
)
LIST
(
APPEND CMAKE_C_LINK_EXECUTABLE
"dsymutil <TARGET>"
)
LIST
(
APPEND CMAKE_CXX_CREATE_SHARED_LIBRARY
"dsymutil <TARGET>"
)
LIST
(
APPEND CMAKE_C_CREATE_SHARED_LIBRARY
"dsymutil <TARGET>"
)
LIST
(
APPEND CMAKE_CXX_CREATE_SHARED_MODULE
"dsymutil <TARGET>"
)
LIST
(
APPEND CMAKE_C_CREATE_SHARED_MODULE
"dsymutil <TARGET>"
)
ENDIF
()
GET_FILENAME_COMPONENT
(
MYSQL_CMAKE_SCRIPT_DIR
${
CMAKE_CURRENT_LIST_FILE
}
PATH
)
INCLUDE
(
${
MYSQL_CMAKE_SCRIPT_DIR
}
/cmake_parse_arguments.cmake
)
MACRO
(
INSTALL_DSYM_DIRECTORIES targets
)
IF
(
APPLE
)
FOREACH
(
target
${
targets
}
)
GET_TARGET_PROPERTY
(
location
${
target
}
LOCATION
)
GET_TARGET_PROPERTY
(
type
${
target
}
TYPE
)
# It's a dirty hack, but cmake too stupid and mysql cmake files too buggy */
STRING
(
REPLACE
"liblibmysql.dylib"
"libmysqlclient.
${
SHARED_LIB_MAJOR_VERSION
}
.dylib"
location
${
location
}
)
IF
(
type MATCHES
"EXECUTABLE"
OR type MATCHES
"MODULE"
OR type MATCHES
"SHARED_LIBRARY"
)
INSTALL
(
DIRECTORY
"
${
location
}
.dSYM"
DESTINATION
${
INSTALL_LOCATION
}
COMPONENT Debuginfo
)
ENDIF
()
ENDFOREACH
()
ENDIF
()
ENDMACRO
()
FUNCTION
(
INSTALL_DEBUG_SYMBOLS
)
IF
(
MSVC
)
...
...
@@ -31,6 +53,7 @@ FUNCTION (INSTALL_DEBUG_SYMBOLS)
MESSAGE
(
FATAL_ERROR
"No INSTALL_LOCATION passed to INSTALL_DEBUG_SYMBOLS"
)
ENDIF
()
SET
(
targets
${
ARG_DEFAULT_ARGS
}
)
FOREACH
(
target
${
targets
}
)
GET_TARGET_PROPERTY
(
type
${
target
}
TYPE
)
GET_TARGET_PROPERTY
(
location
${
target
}
LOCATION
)
...
...
@@ -252,6 +275,7 @@ FUNCTION(MYSQL_INSTALL_TARGETS)
INSTALL
(
TARGETS
${
TARGETS
}
DESTINATION
${
ARG_DESTINATION
}
${
COMP
}
)
INSTALL_DEBUG_SYMBOLS
(
${
TARGETS
}
${
COMP
}
INSTALL_LOCATION
${
ARG_DESTINATION
}
)
INSTALL_DSYM_DIRECTORIES
(
"
${
TARGETS
}
"
)
ENDFUNCTION
()
...
...
cmake/os/FreeBSD.cmake
View file @
551ad1cf
...
...
@@ -38,3 +38,6 @@ IF(CMAKE_SIZEOF_VOID_P EQUAL 4 AND CMAKE_SYSTEM_PROCESSOR STREQUAL "i386")
SET
(
CMAKE_CXX_FLAGS
"
${
CMAKE_CXX_FLAGS
}
-march=i686"
)
SET
(
CMAKE_REQUIRED_FLAGS
"
${
CMAKE_REQUIRED_FLAGS
}
-march=i686"
)
ENDIF
()
SET
(
HAVE_SYS_TIMEB_H CACHE INTERNAL
""
)
scripts/mysqld_safe.sh
View file @
551ad1cf
...
...
@@ -241,7 +241,8 @@ wsrep_recover_position() {
if
[
-z
"
$rp
"
]
;
then
local
skipped
=
"
$(
grep
WSREP
$wr_logfile
|
grep
'skipping position recovery'
)
"
if
[
-z
"
$skipped
"
]
;
then
log_error
"WSREP: Failed to recover position: "
`
cat
$wr_logfile
`
;
log_error
"WSREP: Failed to recover position:
'
`
cat
$wr_logfile
`
'"
ret
=
1
else
log_notice
"WSREP: Position recovery skipped"
...
...
@@ -253,7 +254,7 @@ wsrep_recover_position() {
wsrep_start_position_opt
=
"--wsrep_start_position=
$start_pos
"
fi
rm
$wr_logfile
[
$ret
-eq
0
]
&&
rm
$wr_logfile
return
$ret
}
...
...
scripts/wsrep_sst_rsync.sh
100644 → 100755
View file @
551ad1cf
...
...
@@ -20,6 +20,8 @@
RSYNC_PID
=
RSYNC_CONF
=
OS
=
$(
uname
)
[
"
$OS
"
==
"Darwin"
]
&&
export
-n
LD_LIBRARY_PATH
.
$(
dirname
$0
)
/wsrep_sst_common
...
...
@@ -50,14 +52,32 @@ check_pid_and_port()
local
rsync_pid
=
$(
cat
$pid_file
)
local
rsync_port
=
$2
check_pid
$pid_file
&&
\
netstat
-anpt
2>/dev/null |
\
grep
LISTEN |
grep
\:
$rsync_port
|
grep
$rsync_pid
/rsync
>
/dev/null
if
[
"
$OS
"
==
"Darwin"
-o
"
$OS
"
==
"FreeBSD"
]
;
then
# no netstat --program(-p) option in Darwin and FreeBSD
check_pid
$pid_file
&&
\
lsof
-i
-Pn
2>/dev/null |
\
grep
"(LISTEN)"
|
grep
":
$rsync_port
"
|
grep
-w
'^rsync[[:space:]]\+'
"
$rsync_pid
"
>
/dev/null
else
check_pid
$pid_file
&&
\
netstat
-lnpt
2>/dev/null |
\
grep
LISTEN |
grep
\:
$rsync_port
|
grep
$rsync_pid
/rsync
>
/dev/null
fi
}
MAGIC_FILE
=
"
$WSREP_SST_OPT_DATA
/rsync_sst_complete"
rm
-rf
"
$MAGIC_FILE
"
# Old filter - include everything except selected
# FILTER=(--exclude '*.err' --exclude '*.pid' --exclude '*.sock' \
# --exclude '*.conf' --exclude core --exclude 'galera.*' \
# --exclude grastate.txt --exclude '*.pem' \
# --exclude '*.[0-9][0-9][0-9][0-9][0-9][0-9]' --exclude '*.index')
# New filter - exclude everything except dirs (schemas) and innodb files
FILTER
=(
-f
'- lost+found'
-f
'+ /ib_lru_dump'
-f
'+ /ibdata*'
-f
'+ /ib_logfile*'
-f
'+ */'
-f
'-! */*'
)
# Old versions of rsync have a bug transferring filter rules to daemon, so specify filter rules directly to daemon
FILTER_DAEMON
=
"- lost+found + /ib_lru_dump + /ibdata* + ib_logfile* + */ -! */*"
if
[
"
$WSREP_SST_OPT_ROLE
"
=
"donor"
]
then
...
...
@@ -85,21 +105,12 @@ then
sync
# Old filter - include everything except selected
# FILTER=(--exclude '*.err' --exclude '*.pid' --exclude '*.sock' \
# --exclude '*.conf' --exclude core --exclude 'galera.*' \
# --exclude grastate.txt --exclude '*.pem' \
# --exclude '*.[0-9][0-9][0-9][0-9][0-9][0-9]' --exclude '*.index')
# New filter - exclude everything except dirs (schemas) and innodb files
FILTER
=(
-f
'- lost+found'
-f
'+ /ib_lru_dump'
-f
'+ /ibdata*'
-f
'+ /ib_logfile*'
-f
'+ */'
-f
'-! */*'
)
# first, the normal directories, so that we can detect incompatible protocol
RC
=
0
rsync
--archive
--no-times
--ignore-times
--inplace
--delete
--quiet
\
--no-recursive
--dirs
\
$WHOLE_FILE_OPT
"
${
FILTER
[@]
}
"
"
$WSREP_SST_OPT_DATA
/"
\
rsync://
$WSREP_SST_OPT_ADDR
||
RC
=
$?
rsync://
$WSREP_SST_OPT_ADDR
-with_filter
||
RC
=
$?
[
$RC
-ne
0
]
&&
wsrep_log_error
"rsync returned code
$RC
:"
...
...
@@ -122,9 +133,11 @@ then
# then, we parallelize the transfer of database directories, use . so that pathconcatenation works
pushd
"
$WSREP_SST_OPT_DATA
"
1>/dev/null
count
=
$(
grep
-c
processor /proc/cpuinfo
)
count
=
1
[
"
$OS
"
==
"Linux"
]
&&
count
=
$(
grep
-c
processor /proc/cpuinfo
)
[
"
$OS
"
==
"Darwin"
-o
"
$OS
"
==
"FreeBSD"
]
&&
count
=
$(
sysctl
-n
hw.ncpu
)
find
.
-maxdepth
1
-mindepth
1
-type
d
-print0
| xargs
-
i
-0
-P
$count
\
find
.
-maxdepth
1
-mindepth
1
-type
d
-print0
| xargs
-
I
{}
-0
-P
$count
\
rsync
--archive
--no-times
--ignore-times
--inplace
--delete
--quiet
\
$WHOLE_FILE_OPT
"
$WSREP_SST_OPT_DATA
"
/
{}
/
\
rsync://
$WSREP_SST_OPT_ADDR
/
{}
||
RC
=
$?
...
...
@@ -151,7 +164,7 @@ then
echo
"continue"
# now server can resume updating data
echo
"
$STATE
"
>
"
$MAGIC_FILE
"
rsync
-
aqc
"
$MAGIC_FILE
"
rsync://
$WSREP_SST_OPT_ADDR
rsync
-
-archive
--quiet
--checksum
"
$MAGIC_FILE
"
rsync://
$WSREP_SST_OPT_ADDR
echo
"done
$STATE
"
...
...
@@ -180,7 +193,7 @@ then
fi
trap
"exit 32"
HUP PIPE
trap
"exit 3"
INT TERM
trap
"exit 3"
INT TERM
ABRT
trap
cleanup_joiner EXIT
MYUID
=
$(
id
-u
)
...
...
@@ -190,12 +203,19 @@ then
cat
<<
EOF
> "
$RSYNC_CONF
"
pid file =
$RSYNC_PID
use chroot = no
[
$MODULE
-with_filter]
path =
$WSREP_SST_OPT_DATA
read only = no
timeout = 300
uid =
$MYUID
gid =
$MYGID
filter =
$FILTER_DAEMON
[
$MODULE
]
path =
$WSREP_SST_OPT_DATA
read only = no
timeout = 300
uid =
$MYUID
gid =
$MYGID
path =
$WSREP_SST_OPT_DATA
read only = no
timeout = 300
uid =
$MYUID
gid =
$MYGID
EOF
# rm -rf "$DATA"/ib_logfile* # we don't want old logs around
...
...
scripts/wsrep_sst_xtrabackup.sh
View file @
551ad1cf
This diff is collapsed.
Click to expand it.
sql/wsrep_utils.cc
View file @
551ad1cf
...
...
@@ -358,6 +358,8 @@ size_t guess_ip (char* buf, size_t buf_len)
#elif defined(__sun__)
const
char
cmd
[]
=
"/sbin/ifconfig -a | "
"/usr/gnu/bin/grep -m1 -1 -E 'net[0-9]:' | tail -n 1 | awk '{ print $2 }'"
;
#elif defined(__APPLE__) || defined(__FreeBSD__)
const
char
cmd
[]
=
"route -nv get 8.8.8.8 | tail -n1 | awk '{print $5}'"
;
#else
char
*
cmd
;
#error "OS not supported"
...
...
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