From 1e015787dca917e772b5da0944681b5156f6269b Mon Sep 17 00:00:00 2001 From: YoungHun Kim Date: Tue, 7 Jul 2020 09:17:20 +0900 Subject: [PATCH] Check the return value of gettimeofday() and move function execution procedure at connection handler - Add connection time log for debugging Change-Id: Iedfcd2b00816fd7da450869b81f048a463a488a2 --- packaging/mused.spec | 4 ++-- server/src/muse_server_private.c | 19 +++++++++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/packaging/mused.spec b/packaging/mused.spec index 5e9111e..ccd092d 100644 --- a/packaging/mused.spec +++ b/packaging/mused.spec @@ -1,7 +1,7 @@ Name: mused Summary: A multimedia daemon -Version: 0.3.119 -Release: 1 +Version: 0.3.120 +Release: 0 Group: System/Libraries License: Apache-2.0 Source0: %{name}-%{version}.tar.gz diff --git a/server/src/muse_server_private.c b/server/src/muse_server_private.c index a61a0a5..721fc15 100644 --- a/server/src/muse_server_private.c +++ b/server/src/muse_server_private.c @@ -192,7 +192,7 @@ static int _ms_new(muse_channel_e channel) /* Setup listen queue */ if (listen(fd, 5) == MUSE_ERR) { strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX); - LOGE("[%d] listen failed (%d) %s", fd, errno, err_msg); + LOGE("[%d] listen() failed (%d) %s", fd, errno, err_msg); muse_core_log_file_list(UDS_files[channel]); ms_log_user_group_info(); close(fd); @@ -274,8 +274,6 @@ 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(); @@ -382,6 +380,14 @@ static gboolean _ms_connection_handler(GIOChannel *source, GIOCondition conditio ms_ipc_create_data_dispatch_worker(m); } + if (gettimeofday(&muse_server->tv_s, NULL) != 0) { + LOGE("gettimeofday() failed"); + ms_respawn(SIGABRT); + return FALSE; + } + + LOGI("connected time %lu", muse_server->tv_s.tv_sec); + _ms_unlock_state(); LOGI("Leave"); @@ -428,7 +434,8 @@ static void _ms_check_idle_state(void) if ((int)muse_server->tv_s.tv_sec == 0) return; - gettimeofday(&tv_c, NULL); + muse_return_if_fail(gettimeofday(&tv_c, NULL) == 0); + timersub(&tv_c, &muse_server->tv_s, &tv_r); elapsed_time = tv_r.tv_sec; @@ -438,8 +445,8 @@ static void _ms_check_idle_state(void) instance_number = g_queue_get_length(connection->instance_q); 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); + LOGW("[#%d] %u sec [period %d] [last connected time %lu] total number of modules = %d ( %s)", period_idx, + elapsed_time, period, muse_server->tv_s.tv_sec, instance_number, muse_server->instance_pid_info); period_idx++; } -- 2.7.4