소스 검색

logsys: Log warning if flightrecorder init fails

Signed-off-by: Jan Friesse <jfriesse@redhat.com>
Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
Jan Friesse 11 년 전
부모
커밋
8f13a98320
1개의 변경된 파일16개의 추가작업 그리고 1개의 파일을 삭제
  1. 16 1
      exec/logsys.c

+ 16 - 1
exec/logsys.c

@@ -309,6 +309,7 @@ int _logsys_system_setup(
 	int i;
 	int i;
 	int32_t fidx;
 	int32_t fidx;
 	char tempsubsys[LOGSYS_MAX_SUBSYS_NAMELEN];
 	char tempsubsys[LOGSYS_MAX_SUBSYS_NAMELEN];
+	int blackbox_enable_res;
 
 
 	if ((mainsystem == NULL) ||
 	if ((mainsystem == NULL) ||
 	    (strlen(mainsystem) >= LOGSYS_MAX_SUBSYS_NAMELEN)) {
 	    (strlen(mainsystem) >= LOGSYS_MAX_SUBSYS_NAMELEN)) {
@@ -333,6 +334,12 @@ int _logsys_system_setup(
 	 * _logsys_subsys_filename_add (i, "util.c");
 	 * _logsys_subsys_filename_add (i, "util.c");
 	 */
 	 */
 
 
+	/*
+	 * This file (logsys.c) is not exactly QB. We need tag for logsys.c if flightrecorder init
+	 * fails, and QB seems to be closest.
+	 */
+	_logsys_subsys_filename_add (i, "logsys.c");
+
 	i = LOGSYS_MAX_SUBSYS_COUNT;
 	i = LOGSYS_MAX_SUBSYS_COUNT;
 
 
 	pthread_mutex_lock (&logsys_config_mutex);
 	pthread_mutex_lock (&logsys_config_mutex);
@@ -364,7 +371,7 @@ int _logsys_system_setup(
 			  QB_LOG_FILTER_FILE, "*", LOG_TRACE);
 			  QB_LOG_FILTER_FILE, "*", LOG_TRACE);
 	qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_SIZE, IPC_LOGSYS_SIZE);
 	qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_SIZE, IPC_LOGSYS_SIZE);
 	qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_THREADED, QB_FALSE);
 	qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_THREADED, QB_FALSE);
-	qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_ENABLED, QB_TRUE);
+	blackbox_enable_res = qb_log_ctl(QB_LOG_BLACKBOX, QB_LOG_CONF_ENABLED, QB_TRUE);
 
 
 	if (logsys_format_set(NULL) == -1) {
 	if (logsys_format_set(NULL) == -1) {
 		return -1;
 		return -1;
@@ -390,6 +397,14 @@ int _logsys_system_setup(
 		}
 		}
 	}
 	}
 
 
+	if (blackbox_enable_res < 0) {
+		LOGSYS_PERROR (-blackbox_enable_res, LOGSYS_LEVEL_WARNING,
+		    "Unable to initialize log flight recorder. "\
+		    "The most common cause of this error is " \
+		    "not enough space on /dev/shm. Corosync will continue work, " \
+		    "but blackbox will not be available");
+	}
+
 	pthread_mutex_unlock (&logsys_config_mutex);
 	pthread_mutex_unlock (&logsys_config_mutex);
 
 
 	return (0);
 	return (0);