journal-upload: Update watchdog while in curl_easy_perform
authorKlearchos Chaloulos <klearchos.chaloulos@nokia.com>
Tue, 5 Apr 2016 10:47:04 +0000 (13:47 +0300)
committerKlearchos Chaloulos <klearchos.chaloulos@nokia.com>
Tue, 5 Apr 2016 14:37:00 +0000 (17:37 +0300)
commitd79ca7a622abbb0df6f5166cc0e4669373d9a614
treef49167fcfbbdb02c267b0026e1c1022fa4fab7ae
parent050d7e19983e6123cba650907d7d33acf2640956
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.
src/journal-remote/journal-upload-journal.c
src/journal-remote/journal-upload.c
src/journal-remote/journal-upload.h