aboutsummaryrefslogtreecommitdiffstats
path: root/vespalog
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-07-02 11:52:21 +0000
committerArne Juul <arnej@verizonmedia.com>2020-07-03 08:02:39 +0000
commit6cd62c06b215ebd785fded2c5afb42a0df8be104 (patch)
treee24e6a3a165757cc3627fb368018e07e280b5fd4 /vespalog
parent2a57218cd2f3020aed5aa4cea739c85cab594b0a (diff)
avoid naked exit
Diffstat (limited to 'vespalog')
-rw-r--r--vespalog/src/logger/logreplay.c4
-rw-r--r--vespalog/src/logger/runserver.cpp29
-rw-r--r--vespalog/src/test/bufferedlogskiptest.cpp8
-rw-r--r--vespalog/src/test/bufferedlogtest.cpp21
-rw-r--r--vespalog/src/test/logtest.cpp2
-rw-r--r--vespalog/src/test/rejectfiltertest.cpp7
-rw-r--r--vespalog/src/test/simple/logtest.cpp2
-rw-r--r--vespalog/src/test/threads/testthreads.cpp7
-rw-r--r--vespalog/src/vespa-logfmt/logfilter.c13
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;
}