Update to log additional information for debugging the exception errors 16/194216/12
authorYoungHun Kim <yh8004.kim@samsung.com>
Fri, 30 Nov 2018 05:02:03 +0000 (14:02 +0900)
committerYoungHun Kim <yh8004.kim@samsung.com>
Mon, 10 Dec 2018 02:33:05 +0000 (11:33 +0900)
 - Additional information is Unix domain socket using system call and
   the user (uid, user name) and group (gid, group name) using new function (ms_log_user_group_info)

Change-Id: I0e66a61568fed1f39aa3e1230ac341b7c9ab3b13

core/include/muse_core.h
core/src/muse_core.c
packaging/mused.spec
server/include/muse_server_private.h
server/src/muse_server_private.c
unittest/muse_gtest_socket.cpp

index 9e59493..9a16e04 100644 (file)
@@ -117,6 +117,7 @@ void muse_core_create_fd_table(void);
 void muse_core_remove_all_fd_table(void);
 void muse_core_destroy_fd_table(void);
 void muse_core_log_process_info(int pid);
+void muse_core_log_file_info(const char *path);
 
 #ifdef __cplusplus
 }
index a1670bf..8d02815 100644 (file)
@@ -767,3 +767,11 @@ void muse_core_log_process_info(int pid)
        _muse_log_get_cmd_info(cmd);
 }
 
+void muse_core_log_file_info(const char *path)
+{
+       char cmd[MUSE_MSG_LEN_MAX];
+
+       snprintf(cmd, sizeof(cmd), "/bin/ls -alt %s", path);
+       _muse_log_get_cmd_info(cmd);
+}
+
index b8fa34b..7e150f7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mused
 Summary:    A multimedia daemon
-Version:    0.3.54
+Version:    0.3.55
 Release:    0
 Group:      System/Libraries
 License:    Apache-2.0
index 5ccf592..e36603d 100644 (file)
@@ -34,6 +34,8 @@
 #include "muse_server_workqueue.h"
 #include "muse_server_tool.h"
 #include <systemd/sd-daemon.h>
+#include <pwd.h>
+#include <grp.h>
 
 #ifdef MUSE_TTRACE_LOG
 #include <trace.h>
@@ -104,6 +106,7 @@ void ms_exit_worker(muse_module_h m);
 void ms_respawn(int signo);
 int ms_get_pid(muse_module_h m);
 void ms_log_process_info(int pid);
+void ms_log_user_group_info(void);
 gboolean ms_is_log_enabled(void);
 int ms_kill_thread(int signo);
 gboolean ms_init_bufmgr(void);
index 22530b9..dcc7ab7 100644 (file)
@@ -180,7 +180,7 @@ static int _ms_new(muse_channel_e channel)
        fd = socket(AF_UNIX, SOCK_STREAM, 0); /* Unix Domain Socket */
        if (!muse_core_fd_is_valid(fd)) {
                strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
-               LOGE("socket failed sock: %s", err_msg);
+               LOGE("socket failed sock (%d) : %s", errno, err_msg);
                return MUSE_ERR;
        }
 
@@ -194,7 +194,9 @@ static int _ms_new(muse_channel_e channel)
        /* Bind to filename */
        if (bind(fd, (struct sockaddr *)&addr_un, address_len) < 0) {
                strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
-               LOGE("socket bind failed : %s", err_msg);
+               LOGE("[%d] socket bind failed (%d) %s", fd, errno, err_msg);
+               muse_core_log_file_info(UDS_files[channel]);
+               ms_log_user_group_info();
                if (errno == EADDRINUSE)
                        unlink(addr_un.sun_path);
                close(fd);
@@ -203,7 +205,10 @@ static int _ms_new(muse_channel_e channel)
 
        /* Setup listen queue */
        if (listen(fd, 5) == MUSE_ERR) {
-               LOGE("listen failed");
+               strerror_r(errno, err_msg, MUSE_MSG_LEN_MAX);
+               LOGE("[%d] listen failed (%d) %s", fd, errno, err_msg);
+               muse_core_log_file_info(UDS_files[channel]);
+               ms_log_user_group_info();
                close(fd);
                return MUSE_ERR;
        }
@@ -853,6 +858,22 @@ void ms_log_process_info(int pid)
        ms_log_get_cmd_info(cmd);
 }
 
+void ms_log_user_group_info(void)
+{
+       struct passwd *p;
+       struct group *g;
+       uid_t uid;
+       gid_t gid;
+
+       uid = getuid();
+       gid = getgid();
+
+       p = getpwuid(uid);
+       g = getgrgid(gid);
+
+       LOGE("user [%s : %lu] group [%s : %lu]", p->pw_name, (unsigned long)uid, g->gr_name, (unsigned long)gid);
+}
+
 gboolean ms_is_log_enabled(void)
 {
        return muse_server->conf->log_enabled;
@@ -865,6 +886,7 @@ gboolean ms_init_bufmgr(void)
        muse_server->bufmgr = tbm_bufmgr_init(-1);
        if (!muse_server->bufmgr) {
                LOGE("Error - tbm_bufmgr_init");
+               ms_log_user_group_info();
                return FALSE;
        }
 
index f9afe73..544b004 100644 (file)
@@ -145,7 +145,7 @@ static gboolean _client_close(int fd)
        }
 
        if (close(fd) == MUSE_ERR) {
-               LOGE("[%d] failed to close [error %s %d]", fd, errno);
+               LOGE("[%d] failed to close [error %d]", fd, errno);
                return FALSE;
        }
 
@@ -155,7 +155,7 @@ static gboolean _client_close(int fd)
 static gboolean _server_close(int fd)
 {
        if (close(fd) == MUSE_ERR) {
-               LOGE("[%d] failed to close [error %s %d]", fd, errno);
+               LOGE("[%d] failed to close [error %d]", fd, errno);
                return FALSE;
        }