diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-07-02 11:52:21 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-07-03 08:02:39 +0000 |
commit | 6cd62c06b215ebd785fded2c5afb42a0df8be104 (patch) | |
tree | e24e6a3a165757cc3627fb368018e07e280b5fd4 /vespalog/src | |
parent | 2a57218cd2f3020aed5aa4cea739c85cab594b0a (diff) |
avoid naked exit
Diffstat (limited to 'vespalog/src')
-rw-r--r-- | vespalog/src/logger/logreplay.c | 4 | ||||
-rw-r--r-- | vespalog/src/logger/runserver.cpp | 29 | ||||
-rw-r--r-- | vespalog/src/test/bufferedlogskiptest.cpp | 8 | ||||
-rw-r--r-- | vespalog/src/test/bufferedlogtest.cpp | 21 | ||||
-rw-r--r-- | vespalog/src/test/logtest.cpp | 2 | ||||
-rw-r--r-- | vespalog/src/test/rejectfiltertest.cpp | 7 | ||||
-rw-r--r-- | vespalog/src/test/simple/logtest.cpp | 2 | ||||
-rw-r--r-- | vespalog/src/test/threads/testthreads.cpp | 7 | ||||
-rw-r--r-- | vespalog/src/vespa-logfmt/logfilter.c | 13 |
9 files changed, 48 insertions, 45 deletions
diff --git a/vespalog/src/logger/logreplay.c b/vespalog/src/logger/logreplay.c index 70a1b9a08a9..7a920a916a4 100644 --- a/vespalog/src/logger/logreplay.c +++ b/vespalog/src/logger/logreplay.c @@ -19,7 +19,7 @@ main(int argc, char **argv) "Replays a vespa log file with the same timing delta between each log message.\n" "Reprints the log messages without timestamps.\n\n", argv[0]); - exit(EXIT_FAILURE); + return EXIT_FAILURE; } while (fgets(line, sizeof line, stdin)) { @@ -54,5 +54,5 @@ main(int argc, char **argv) fwrite(s, strlen(s), 1, stdout); fflush(stdout); } - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/logger/runserver.cpp b/vespalog/src/logger/runserver.cpp index e58565f78b9..f8d16dad29e 100644 --- a/vespalog/src/logger/runserver.cpp +++ b/vespalog/src/logger/runserver.cpp @@ -102,7 +102,7 @@ PidFile::writePid() if (didtruncate != 0) { fprintf(stderr, "could not truncate pid file %s: %s\n", _pidfile, strerror(errno)); - exit(1); + std::_Exit(1); } char buf[100]; sprintf(buf, "%d\n", getpid()); @@ -111,7 +111,7 @@ PidFile::writePid() if (didw != l) { fprintf(stderr, "could not write pid to %s: %s\n", _pidfile, strerror(errno)); - exit(1); + std::_Exit(1); } LOG(debug, "wrote '%s' to %s (fd %d)", buf, _pidfile, _fd); } @@ -168,7 +168,7 @@ int loop(const char *svc, char * const * run) if (pipe(pstdout) < 0 || pipe(pstderr) < 0) { LOG(error, "pipe: %s", strerror(errno)); - exit(1); + std::_Exit(1); } LOG(debug, "stdout pipe %d <- %d; stderr pipe %d <- %d", pstdout[0], pstdout[1], @@ -188,11 +188,11 @@ int loop(const char *svc, char * const * run) close(pstderr[1]); execvp(run[0], run); LOG(error, "exec %s: %s", run[0], strerror(errno)); - exit(1); + std::_Exit(1); } if (child < 0) { LOG(error, "fork(): %s", strerror(errno)); - exit(1); + std::_Exit(1); } // I am the parent process @@ -374,7 +374,7 @@ int main(int argc, char *argv[]) } if (chdir(envROOT) != 0) { fprintf(stderr, "Cannot chdir to %s: %s\n", envROOT, strerror(errno)); - exit(1); + return 1; } PidFile mypf(pidfile); @@ -393,7 +393,7 @@ int main(int argc, char *argv[]) if (killpg(pid, SIGTERM) != 0) { fprintf(stderr, "could not signal %d: %s\n", pid, strerror(errno)); - exit(1); + return 1; } } fprintf(stdout, "Waiting for exit (up to 60 seconds)\n"); @@ -421,7 +421,7 @@ int main(int argc, char *argv[]) service, pidfile); } mypf.cleanUp(); - exit(0); + return 0; } if (optind >= argc || killcmd != NULL) { usage(argv[0], 1); @@ -430,7 +430,7 @@ int main(int argc, char *argv[]) if (mypf.anotherRunning()) { fprintf(stderr, "runserver already running with pid %d\n", mypf.readPid()); - exit(0); + return 0; } if (!mypf.writeOpen()) { @@ -443,17 +443,17 @@ int main(int argc, char *argv[]) close(0); if (open("/dev/null", O_RDONLY) != 0) { perror("open /dev/null for reading failed"); - exit(1); + std::_Exit(1); } close(1); if (open("/dev/null", O_WRONLY) != 1) { perror("open /dev/null for writing failed"); - exit(1); + std::_Exit(1); } dup2(1, 2); if (setsid() < 0) { perror("setsid"); - exit(1); + std::_Exit(1); } struct sigaction act; struct sigaction oact; @@ -482,15 +482,14 @@ int main(int argc, char *argv[]) } while (!gotstopsig && restart > 0); } catch (MsgException& ex) { LOG(error, "exception: '%s'", ex.what()); - exit(1); + return 1; } if (restart > 0) { LOG(debug, "final exit status: %d", stat); } mypf.cleanUp(); - exit(stat); + return stat; } - if (rsp < 0) { perror("fork"); return 1; diff --git a/vespalog/src/test/bufferedlogskiptest.cpp b/vespalog/src/test/bufferedlogskiptest.cpp index 21a3044e676..55815480e97 100644 --- a/vespalog/src/test/bufferedlogskiptest.cpp +++ b/vespalog/src/test/bufferedlogskiptest.cpp @@ -5,6 +5,7 @@ #include <fstream> #include <iostream> #include <unistd.h> +#include <cstdlib> LOG_SETUP("bufferedlogskiptest"); @@ -53,10 +54,9 @@ void testSkipBufferOnDebug(const std::string& file, uint64_t & timer) [[maybe_unused]] int system_result = system(("diff -u " + file + " bufferedlogskiptest.skipped.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); - } void reset(uint64_t & timer) { @@ -71,7 +71,7 @@ main(int argc, char **argv) { if (argc != 2) { std::cerr << "bufferedlogskiptest must be called with one argument\n"; - exit(EXIT_FAILURE); + return EXIT_FAILURE; } ns_log::Logger::fakePid = true; uint64_t timer; @@ -81,5 +81,5 @@ main(int argc, char **argv) reset(timer); testSkipBufferOnDebug(argv[1], timer); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/test/bufferedlogtest.cpp b/vespalog/src/test/bufferedlogtest.cpp index 09e103986ac..4035e98653f 100644 --- a/vespalog/src/test/bufferedlogtest.cpp +++ b/vespalog/src/test/bufferedlogtest.cpp @@ -8,6 +8,7 @@ #include <fstream> #include <iostream> #include <unistd.h> +#include <cstdlib> LOG_SETUP("bufferedlogtest"); @@ -98,7 +99,7 @@ void testThatEntriesWithHighCountIsKept(const std::string& file, uint64_t& timer [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.highcountkept.log") .c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -134,7 +135,7 @@ void testThatEntriesWithHighCountsAreEventuallyRemoved( [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.highcountexpire.log") .c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -168,7 +169,7 @@ void testThatEntriesExpire( << "testThatEntriesExpire\n"; [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.expire.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -237,7 +238,7 @@ void testThatHighCountEntriesDontStarveOthers( << "testThatHighCountEntriesDontStarveOthers\n"; [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.nostarve.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -270,7 +271,7 @@ void testNoTokenMatchAcrossComponents(const std::string& file, [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.tokenacrossloggers.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -299,7 +300,7 @@ void testLogLocationAsToken(const std::string& file, uint64_t& timer) [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.locationastoken.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -328,7 +329,7 @@ void testLogMessageAsToken(const std::string& file, uint64_t& timer) [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.messageastoken.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); } @@ -363,7 +364,7 @@ void testNonBufferedLoggerTriggersBufferedLogTrim(const std::string& file, [[maybe_unused]] int systemResult = system(("diff -u " + file + " bufferedlogtest.trimcache.log").c_str()); - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } unlink(file.c_str()); @@ -380,7 +381,7 @@ main(int argc, char **argv) { if (argc != 2) { std::cerr << "bufferedlogtest must be called with one argument\n"; - exit(EXIT_FAILURE); + return EXIT_FAILURE; } ns_log::Logger::fakePid = true; ns_log::BufferedLogger::logger.setMaxCacheSize(10); @@ -405,5 +406,5 @@ main(int argc, char **argv) reset(timer); testNonBufferedLoggerTriggersBufferedLogTrim(argv[1], timer); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/test/logtest.cpp b/vespalog/src/test/logtest.cpp index 42b7bfc6ef9..a95bea9e31c 100644 --- a/vespalog/src/test/logtest.cpp +++ b/vespalog/src/test/logtest.cpp @@ -33,5 +33,5 @@ main(int, char **argv) LOG(info, "Exiting."); EV_STOPPING("logtest", "clean exit"); EV_STOPPED("logtest", getpid(), 0); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/test/rejectfiltertest.cpp b/vespalog/src/test/rejectfiltertest.cpp index d79d621c780..3125c05b959 100644 --- a/vespalog/src/test/rejectfiltertest.cpp +++ b/vespalog/src/test/rejectfiltertest.cpp @@ -5,6 +5,7 @@ #include <stdlib.h> #include <unistd.h> #include <iostream> +#include <cstdlib> using ns_log::RejectFilter; using ns_log::Logger; @@ -15,7 +16,7 @@ assertShouldNotReject(RejectFilter & filter, Logger::LogLevel level, const char std::cerr << "Filter should not reject level '" << Logger::levelName(level) << "' message '" << (msg == NULL ? "NULL" : msg) << "' ...: "; if (filter.shouldReject(level, msg)) { std::cerr << "Failed!\n"; - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } std::cerr << "Success!\n"; } @@ -26,7 +27,7 @@ assertShouldReject(RejectFilter & filter, Logger::LogLevel level, const char * m std::cerr << "Filter should reject level '" << Logger::levelName(level) << "' message '" << (msg == NULL ? "NULL" : msg) << "' ...: "; if (!filter.shouldReject(level, msg)) { std::cerr << "Failed!\n"; - exit(EXIT_FAILURE); + std::_Exit(EXIT_FAILURE); } std::cerr << "Success!\n"; } @@ -53,5 +54,5 @@ main(int argc, char **argv) assertShouldNotReject(defaultFilter, Logger::warning, "foobar"); assertShouldNotReject(defaultFilter, Logger::event, NULL); assertShouldReject(defaultFilter, Logger::warning, "E 18-140313.398540 10727 18/11/2012 14:03:13 yjava_preload.so: [preload.c:670] Accept failed: -1 (4)"); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/test/simple/logtest.cpp b/vespalog/src/test/simple/logtest.cpp index 020c97dd1a8..7951b488052 100644 --- a/vespalog/src/test/simple/logtest.cpp +++ b/vespalog/src/test/simple/logtest.cpp @@ -33,5 +33,5 @@ main(int, char **argv) LOG(info, "Exiting."); EV_STOPPING("logtest", "clean exit"); EV_STOPPED("logtest", getpid(), 0); - exit(EXIT_SUCCESS); + return EXIT_SUCCESS; } diff --git a/vespalog/src/test/threads/testthreads.cpp b/vespalog/src/test/threads/testthreads.cpp index ab7ddad3da7..465d2c6e3f8 100644 --- a/vespalog/src/test/threads/testthreads.cpp +++ b/vespalog/src/test/threads/testthreads.cpp @@ -9,6 +9,7 @@ #include <fcntl.h> #include <unistd.h> #include <sys/stat.h> +#include <cstdlib> using std::string; using namespace std::chrono_literals; @@ -44,18 +45,18 @@ FileThread::Run(FastOS_ThreadInterface *, void *) int fd = open(_file.c_str(), O_RDWR | O_CREAT | O_APPEND, 0644); if (fd == -1) { fprintf(stderr, "open failed: %s\n", strerror(errno)); - exit(1); + std::_Exit(1); } std::this_thread::sleep_for(5ms); struct stat buf; fstat(fd, &buf); if (buf.st_size != 0) { fprintf(stderr, "%s isn't empty anymore\n", _file.c_str()); - exit(1); + std::_Exit(1); } if (close(fd) != 0) { fprintf(stderr, "close of %d failed: %s\n", fd, strerror(errno)); - exit(1); + std::_Exit(1); } } } diff --git a/vespalog/src/vespa-logfmt/logfilter.c b/vespalog/src/vespa-logfmt/logfilter.c index 2db108771ee..1af97751011 100644 --- a/vespalog/src/vespa-logfmt/logfilter.c +++ b/vespalog/src/vespa-logfmt/logfilter.c @@ -5,6 +5,7 @@ #include <sys/wait.h> #include <unistd.h> #include <csignal> +#include <cstdlib> int main(int argc, char *argv[]) { @@ -15,7 +16,7 @@ int main(int argc, char *argv[]) if (argc < 3) { fprintf(stderr, "Usage: %s logfmt prog [...]\n", argv[0]); - exit(1); + return 1; } pipe(lfpipe); @@ -29,11 +30,11 @@ int main(int argc, char *argv[]) } execlp(argv[1], argv[1], "-", (const char *)NULL); perror("exec logfmt failed"); - exit(1); + std::_Exit(1); } if (lfmtpid < 0) { perror("fork failed"); - exit(1); + return 1; } close(lfpipe[0]); @@ -50,11 +51,11 @@ int main(int argc, char *argv[]) argv[i-2] = NULL; execvp(argv[0], argv); perror("exec program failed"); - exit(1); + std::_Exit(1); } if (progpid < 0) { perror("fork failed"); - exit(1); + return 1; } close(lfpipe[1]); @@ -74,5 +75,5 @@ int main(int argc, char *argv[]) kill(getpid(), sig); } /* should not get here */ - exit(1); + return 1; } |