summaryrefslogtreecommitdiff
path: root/src/mongo
diff options
context:
space:
mode:
authorKyle Erf <erf@mongodb.com>2013-09-19 14:15:17 -0400
committerMatt Kangas <matt.kangas@mongodb.com>2013-09-27 16:53:16 -0400
commit8a2181ba012c8d28faeb5f5dd56cc7e19ae4ec56 (patch)
tree9ed3c10a3fed9917c7a4c83c64e4d80ea52eef12 /src/mongo
parentb3616bea4afb813427f601764c65f1e291f82a6e (diff)
downloadmongo-8a2181ba012c8d28faeb5f5dd56cc7e19ae4ec56.tar.gz
SERVER-10034 Invalid --pidfilepath no longer silently ignored
Signed-off-by: Matt Kangas <matt.kangas@mongodb.com>
Diffstat (limited to 'src/mongo')
-rw-r--r--src/mongo/db/initialize_server_global_state.cpp7
-rw-r--r--src/mongo/util/processinfo.cpp13
-rw-r--r--src/mongo/util/processinfo.h2
3 files changed, 15 insertions, 7 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp
index a49c915957b..d23a6ef5835 100644
--- a/src/mongo/db/initialize_server_global_state.cpp
+++ b/src/mongo/db/initialize_server_global_state.cpp
@@ -300,7 +300,10 @@ namespace mongo {
#endif
if (!cmdLine.pidFile.empty()) {
- writePidFile(cmdLine.pidFile);
+ if (!writePidFile(cmdLine.pidFile)) {
+ // error message logged in writePidFile
+ return false;
+ }
}
if (!cmdLine.keyFile.empty() && cmdLine.clusterAuthMode != "x509") {
@@ -309,7 +312,7 @@ namespace mongo {
return false;
}
}
-
+
// Auto-enable auth except if clusterAuthMode is not set.
// clusterAuthMode is automatically set if a --keyfile parameter is provided.
if (!cmdLine.clusterAuthMode.empty()) {
diff --git a/src/mongo/util/processinfo.cpp b/src/mongo/util/processinfo.cpp
index 21057de9863..fd18180c743 100644
--- a/src/mongo/util/processinfo.cpp
+++ b/src/mongo/util/processinfo.cpp
@@ -34,18 +34,23 @@ namespace mongo {
out.close();
}
- void write( const string& p ) {
+ bool write( const string& p ) {
path = p;
ofstream out( path.c_str() , ios_base::out );
out << ProcessId::getCurrent() << endl;
- out.close();
+ return out;
}
string path;
} pidFileWiper;
- void writePidFile( const string& path ) {
- pidFileWiper.write( path );
+ bool writePidFile( const string& path ) {
+ bool e = pidFileWiper.write( path );
+ if (!e) {
+ log() << "ERROR: Cannot write pid file to " << path
+ << ": "<< strerror(errno);
+ }
+ return e;
}
ProcessInfo::SystemInfo* ProcessInfo::systemInfo = NULL;
diff --git a/src/mongo/util/processinfo.h b/src/mongo/util/processinfo.h
index 1de16692c70..1b1d7620a7e 100644
--- a/src/mongo/util/processinfo.h
+++ b/src/mongo/util/processinfo.h
@@ -169,7 +169,7 @@ namespace mongo {
};
- void writePidFile( const std::string& path );
+ bool writePidFile( const std::string& path );
void printMemInfo( const char * whereContextStr = 0 );