Fix bug to print the idle state properly in every period defined in mused.conf 09/236309/14 accepted/tizen/unified/20200629.143521 submit/tizen/20200624.045121
authorYoungHun Kim <yh8004.kim@samsung.com>
Tue, 16 Jun 2020 06:45:28 +0000 (15:45 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Tue, 23 Jun 2020 00:10:57 +0000 (09:10 +0900)
 - Refresh initial time whenever a client is connected
 - The data type for elapsed time is also changed to unsigned integer to increase its maximum value

Change-Id: I1dfb66666ff130cdda291a710e6b6dff1d39818d

core/src/muse_core.c
server/src/muse_server_ipc.c
server/src/muse_server_private.c

index 87bb0b9..09f2e6a 100644 (file)
@@ -446,7 +446,7 @@ int muse_core_msg_send_fd(int sock_fd, int *fds, const char *buf)
 
                memcpy(fdptr, fds, sizeof(int) * fd_cnt);
 
-               /* the value of msg_controllen increases after memcpy so reassignes the orginal value */
+               /* the value of msg_controllen increases after memcpy so reassigns the original value */
                msg.msg_controllen = cptr->cmsg_len;
        }
 
@@ -674,10 +674,10 @@ bool muse_core_msg_recv_len(int fd, char *buf, int msg_len)
                recv_len = recv(fd, buf + offset, msg_len - offset, 0);
                if (recv_len < 0) {
                        strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
-                       LOGE("[fd %d] recv failed [error %s %d]", fd, err_msg, errno);
+                       LOGE("[%d] recv failed [error %s %d]", fd, err_msg, errno);
                        return false;
                } else if (recv_len == 0) {
-                       LOGD("[fd %d] EOF", fd);
+                       LOGD("[%d] EOF", fd);
                        return false;
                }
 
index fe858db..93871ce 100644 (file)
@@ -431,7 +431,7 @@ gboolean ms_ipc_create_msg_dispatch_worker(muse_module_h m)
                return FALSE;
        }
 
-       LOGD("Leave module %p, thread %p", m, thread);
+       LOGD("Leave module %p thread %p", m, thread);
 
        return TRUE;
 }
index 1566de9..a61a0a5 100644 (file)
@@ -137,8 +137,6 @@ static void _ms_create_new_server_from_fd(int fd[], int type)
        muse_server->data_fd = fd[MUSE_CHANNEL_DATA];
        muse_server->type = type;
 
-       gettimeofday(&muse_server->tv_s, NULL);
-
        for (i = 0; i < MUSE_CHANNEL_MAX; i++) {
                if (!_ms_attach(fd[i], _ms_connection_handler, GINT_TO_POINTER(i))) {
                        snprintf(err_msg, sizeof(err_msg), "Fail to attach server fd %d", fd[i]);
@@ -276,6 +274,8 @@ static gboolean _ms_connection_handler(GIOChannel *source, GIOCondition conditio
 
        _ms_lock_state();
 
+       gettimeofday(&muse_server->tv_s, NULL);
+
        if (!ms_is_server_ready()) {
                LOGW("Now mused state is not ready...");
                _ms_unlock_state();
@@ -410,7 +410,8 @@ static void _ms_check_idle_state(void)
        ms_connection_t *connection = NULL;
        ms_config_t *conf = NULL;
        struct timeval tv_c, tv_r;
-       int instance_number, timeout;
+       int instance_number, period;
+       uint32_t elapsed_time;
        static int period_idx = 1;
 
        muse_return_if_fail(muse_server);
@@ -422,25 +423,31 @@ static void _ms_check_idle_state(void)
        conf = muse_server->conf;
        muse_return_if_fail(conf);
 
+       period = ms_config_get_log_period();
+
+       if ((int)muse_server->tv_s.tv_sec == 0)
+               return;
+
        gettimeofday(&tv_c, NULL);
        timersub(&tv_c, &muse_server->tv_s, &tv_r);
 
-       timeout = (int)tv_r.tv_sec;
+       elapsed_time = tv_r.tv_sec;
 
        ms_connection_lock(connection);
 
        instance_number = g_queue_get_length(connection->instance_q);
 
-       if (timeout >= ms_config_get_log_period() * period_idx) {
-               LOGW("total number of modules = %d ( %s)", instance_number, muse_server->instance_pid_info);
+       if (elapsed_time >= (uint32_t)(period * period_idx)) {
+               LOGW("[#%d %u sec (period %d connected time %d)] total number of modules = %d ( %s)", period_idx,
+                       elapsed_time, period, (int)muse_server->tv_s.tv_sec, instance_number, muse_server->instance_pid_info);
                period_idx++;
        }
 
        ms_connection_unlock(connection);
 
        if (conf->is_on_demand) {
-               if (instance_number == 0 && timeout >= ms_config_get_max_idle_time()) {
-                       LOGE("Timeout exit !!! [Idle time] %d sec", timeout);
+               if (instance_number == 0 && elapsed_time >= (uint32_t)ms_config_get_max_idle_time()) {
+                       LOGE("Timeout exit !!! [Idle time] %u sec", elapsed_time);
                        ms_remove_ready_file();
                        exit(EXIT_SUCCESS);
                }