mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 02:05:57 +01:00
MDEV-22159: Don't redirect as root to a tmp file not owned by root
Also add a check for tmp file being empty and bail out with a clear error message in such a case, as mysqld_safe prevents normal stderr from being displayed anywhere and would fail silently on this.
This commit is contained in:
parent
a6a8774d47
commit
efa3b3de35
1 changed files with 8 additions and 1 deletions
|
@ -263,7 +263,9 @@ wsrep_recover_position() {
|
|||
fi
|
||||
|
||||
if [ -f $wr_logfile ]; then
|
||||
[ "$euid" = "0" ] && chown $user $wr_logfile
|
||||
# NOTE! Do not change ownership of the temporary file, as on newer kernel
|
||||
# versions fs.protected_regular is set to '2' and redirecting output with >
|
||||
# as root to a file not owned by root will fail with "Permission denied"
|
||||
chmod 600 $wr_logfile
|
||||
else
|
||||
log_error "WSREP: mktemp failed"
|
||||
|
@ -278,6 +280,11 @@ wsrep_recover_position() {
|
|||
|
||||
eval "$mysqld_cmd --wsrep_recover $wr_options 2> $wr_logfile"
|
||||
|
||||
if [ ! -s "$wr_logfile" ]; then
|
||||
log_error "Log file $wr_logfile was empty, cannot proceed. Is system running fs.protected_regular?"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local rp="$(grep 'WSREP: Recovered position:' $wr_logfile)"
|
||||
if [ -z "$rp" ]; then
|
||||
local skipped="$(grep WSREP $wr_logfile | grep 'skipping position recovery')"
|
||||
|
|
Loading…
Add table
Reference in a new issue