summaryrefslogtreecommitdiff
path: root/src/journal-remote/journal-upload.c
diff options
context:
space:
mode:
authorKlearchos Chaloulos <klearchos.chaloulos@nokia.com>2016-04-05 13:47:04 +0300
committerKlearchos Chaloulos <klearchos.chaloulos@nokia.com>2016-04-05 17:37:00 +0300
commitd79ca7a622abbb0df6f5166cc0e4669373d9a614 (patch)
treef49167fcfbbdb02c267b0026e1c1022fa4fab7ae /src/journal-remote/journal-upload.c
parent050d7e19983e6123cba650907d7d33acf2640956 (diff)
journal-upload: Update watchdog while in curl_easy_perform
It is observed that a combination of high log throughput, low I/O speed on journal remote side and many nodes uploading simultaneously caused the journal-upload process to dump core because of watchdog starvation. This is caused because journal-upload stays in curl_easy_perform(), because it cannot upload fast enough to reach the end of the journal. Currently journal-upload will return from curl_easy_perform() only when the end of the journal is reached. Therefore a check is added in journal_input_callback(), which will update the watchdog if the elapsed time since the start of the uploading process is greater than WATCHDOG_USEC/2.
Diffstat (limited to 'src/journal-remote/journal-upload.c')
-rw-r--r--src/journal-remote/journal-upload.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/journal-remote/journal-upload.c b/src/journal-remote/journal-upload.c
index 6e1c3bb9ef..f2e9117f9f 100644
--- a/src/journal-remote/journal-upload.c
+++ b/src/journal-remote/journal-upload.c
@@ -494,6 +494,7 @@ static int perform_upload(Uploader *u) {
assert(u);
+ u->reset_reference_timestamp = true;
code = curl_easy_perform(u->easy);
if (code) {
if (u->error[0])