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

Reply via email to