Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
redis
Commits
f7af1bea
Commit
f7af1bea
authored
Feb 15, 2016
by
antirez
Browse files
Include full paths on RDB/AOF files errors.
Close #3086.
parent
0b4a628f
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/aof.c
View file @
f7af1bea
...
...
@@ -38,6 +38,7 @@
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/wait.h>
#include <sys/param.h>
void
aofUpdateCurrentSize
(
void
);
void
aofClosePipes
(
void
);
...
...
@@ -234,11 +235,20 @@ void stopAppendOnly(void) {
/* Called when the user switches from "appendonly no" to "appendonly yes"
* at runtime using the CONFIG command. */
int
startAppendOnly
(
void
)
{
char
cwd
[
MAXPATHLEN
];
/* Current working dir path for error messages. */
server
.
aof_last_fsync
=
server
.
unixtime
;
server
.
aof_fd
=
open
(
server
.
aof_filename
,
O_WRONLY
|
O_APPEND
|
O_CREAT
,
0644
);
serverAssert
(
server
.
aof_state
==
AOF_OFF
);
if
(
server
.
aof_fd
==
-
1
)
{
serverLog
(
LL_WARNING
,
"Redis needs to enable the AOF but can't open the append only file: %s"
,
strerror
(
errno
));
char
*
cwdp
=
getcwd
(
cwd
,
MAXPATHLEN
);
serverLog
(
LL_WARNING
,
"Redis needs to enable the AOF but can't open the "
"append only file %s (in server root dir %s): %s"
,
server
.
aof_filename
,
cwdp
?
cwdp
:
"unknown"
,
strerror
(
errno
));
return
C_ERR
;
}
if
(
rewriteAppendOnlyFileBackground
()
==
C_ERR
)
{
...
...
@@ -1417,7 +1427,10 @@ void backgroundRewriteDoneHandler(int exitcode, int bysignal) {
latencyStartMonitor
(
latency
);
if
(
rename
(
tmpfile
,
server
.
aof_filename
)
==
-
1
)
{
serverLog
(
LL_WARNING
,
"Error trying to rename the temporary AOF file: %s"
,
strerror
(
errno
));
"Error trying to rename the temporary AOF file %s into %s: %s"
,
tmpfile
,
server
.
aof_filename
,
strerror
(
errno
));
close
(
newfd
);
if
(
oldfd
!=
-
1
)
close
(
oldfd
);
goto
cleanup
;
...
...
src/rdb.c
View file @
f7af1bea
...
...
@@ -39,6 +39,7 @@
#include <sys/wait.h>
#include <arpa/inet.h>
#include <sys/stat.h>
#include <sys/param.h>
#define RDB_LOAD_NONE 0
#define RDB_LOAD_ENC (1<<0)
...
...
@@ -832,6 +833,7 @@ werr: /* Write error. */
/* Save the DB on disk. Return C_ERR on error, C_OK on success. */
int
rdbSave
(
char
*
filename
)
{
char
tmpfile
[
256
];
char
cwd
[
MAXPATHLEN
];
/* Current working dir path for error messages. */
FILE
*
fp
;
rio
rdb
;
int
error
=
0
;
...
...
@@ -839,7 +841,12 @@ int rdbSave(char *filename) {
snprintf
(
tmpfile
,
256
,
"temp-%d.rdb"
,
(
int
)
getpid
());
fp
=
fopen
(
tmpfile
,
"w"
);
if
(
!
fp
)
{
serverLog
(
LL_WARNING
,
"Failed opening .rdb for saving: %s"
,
char
*
cwdp
=
getcwd
(
cwd
,
MAXPATHLEN
);
serverLog
(
LL_WARNING
,
"Failed opening the RDB file %s (in server root dir %s) "
"for saving: %s"
,
filename
,
cwdp
?
cwdp
:
"unknown"
,
strerror
(
errno
));
return
C_ERR
;
}
...
...
@@ -858,10 +865,18 @@ int rdbSave(char *filename) {
/* Use RENAME to make sure the DB file is changed atomically only
* if the generate DB file is ok. */
if
(
rename
(
tmpfile
,
filename
)
==
-
1
)
{
serverLog
(
LL_WARNING
,
"Error moving temp DB file on the final destination: %s"
,
strerror
(
errno
));
char
*
cwdp
=
getcwd
(
cwd
,
MAXPATHLEN
);
serverLog
(
LL_WARNING
,
"Error moving temp DB file %s on the final "
"destination %s (in server root dir %s): %s"
,
tmpfile
,
filename
,
cwdp
?
cwdp
:
"unknown"
,
strerror
(
errno
));
unlink
(
tmpfile
);
return
C_ERR
;
}
serverLog
(
LL_NOTICE
,
"DB saved on disk"
);
server
.
dirty
=
0
;
server
.
lastsave
=
time
(
NULL
);
...
...
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