Hi Thien, ACK from me.
Best Regards, ThuanTr -----Original Message----- From: Thien Minh Huynh <thien.m.hu...@dektech.com.au> Sent: Tuesday, July 14, 2020 4:50 PM To: Vu Minh Nguyen <vu.m.ngu...@dektech.com.au>; Thuan Tran <thuan.t...@dektech.com.au>; Thang Duc Nguyen <thang.d.ngu...@dektech.com.au> Cc: opensaf-devel@lists.sourceforge.net; Thien Minh Huynh <thien.m.hu...@dektech.com.au> Subject: [PATCH 1/1] saflogger: avoid saflogger loop forever in resilience [#3198] When log resilient mode is enabled and timeout of saflogger is configured larger than logResilienceTimeout , the saflogger will be blocked forever until the underlying filesystem is responsive. The fix is adding a timer to avoid command loop too long. --- src/log/tools/saf_logger.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/log/tools/saf_logger.c b/src/log/tools/saf_logger.c index e9f7e9b36..7a7e192b2 100644 --- a/src/log/tools/saf_logger.c +++ b/src/log/tools/saf_logger.c @@ -148,6 +148,7 @@ static SaAisErrorT write_log_record(SaLogHandleT logHandle, int i = 0; struct pollfd fds[1]; int ret; + int64_t start_time_us = get_current_SaTime() / 1000; unsigned int wait_time = 0; i++; @@ -206,6 +207,7 @@ poll_retry: return SA_AIS_ERR_BAD_OPERATION; } + wait_time = (get_current_SaTime() / 1000) - start_time_us; if (cb_error == SA_AIS_ERR_TRY_AGAIN && wait_time < g_timeout*ONE_SECOND_TO_NS) { usleep(HUNDRED_MS); -- 2.17.1 _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel