From 6c71c0d96d2287bcae88942ce6d5a0f7df5bee84 Mon Sep 17 00:00:00 2001 From: Noriko Hosoi Date: Oct 08 2015 19:31:20 +0000 Subject: Ticket #48304 - ns-slapd - LOGINFO:Unable to remove file Description: In the log rotation, if a log file to be deleted does not exist, the "Unable to remove file" is logged in the error log, which is not necessary. This patch updates the logging code to suppress the unnecessary log messages as well as replace with more detailed ones. https://fedorahosted.org/389/ticket/48304 Reviewed by mreynolds@redhat.com (Thank you, Mark!!) (cherry picked from commit e2abffcc5cf6e63136fc0bcb5b0e12830cca22a5) --- diff --git a/ldap/servers/slapd/log.c b/ldap/servers/slapd/log.c index 1458e54..2ec90de 100644 --- a/ldap/servers/slapd/log.c +++ b/ldap/servers/slapd/log.c @@ -2330,15 +2330,25 @@ log__delete_access_logfile() loginfo.log_access_fdes = NULL; PR_snprintf (buffer, sizeof(buffer), "%s", loginfo.log_access_file); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s\n", loginfo.log_access_file,0,0); + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_access_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s error %d (%s)\n", + loginfo.log_access_file, prerr, slapd_pr_strerror(prerr)); + } } /* Delete the rotation file also. */ PR_snprintf (buffer, sizeof(buffer), "%s.rotationinfo", loginfo.log_access_file); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s.rotationinfo\n", loginfo.log_access_file,0,0); + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_access_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s.rotationinfo error %d (%s)\n", + loginfo.log_access_file, prerr, slapd_pr_strerror(prerr)); + } } return 0; } @@ -2440,15 +2450,15 @@ delete_logfile: log_convert_time (delete_logp->l_ctime, tbuf, 1 /*short */); PR_snprintf (buffer, sizeof(buffer), "%s.%s", loginfo.log_access_file, tbuf); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s.%s\n", - loginfo.log_access_file,tbuf,0); - + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_access_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s.%s error %d (%s)\n", + loginfo.log_access_file, tbuf, prerr, slapd_pr_strerror(prerr)); + } } else { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Removed file:%s.%s because of (%s)\n", - loginfo.log_access_file, tbuf, - logstr); + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Removed file:%s.%s because of (%s)\n", loginfo.log_access_file, tbuf, logstr); } slapi_ch_free((void**)&delete_logp); loginfo.log_numof_access_logs--; @@ -3067,7 +3077,6 @@ log__delete_error_logfile(int locked) char buffer[BUFSIZ]; char tbuf[TBUFSIZE]; - /* If we have only one log, then will delete this one */ if (loginfo.log_error_maxnumlogs == 1) { LOG_CLOSE(loginfo.log_error_fdes); @@ -3075,10 +3084,14 @@ log__delete_error_logfile(int locked) PR_snprintf (buffer, sizeof(buffer), "%s", loginfo.log_error_file); if (PR_Delete(buffer) != PR_SUCCESS) { if (!locked) { - /* if locked, we should not call LDAPDebug, - which tries to get a lock internally. */ - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s\n", loginfo.log_error_file,0,0); + /* If locked, we should not call LDAPDebug, which tries to get a lock internally. */ + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_error_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s error %d (%s)\n", + loginfo.log_error_file, prerr, slapd_pr_strerror(prerr)); + } } } @@ -3086,11 +3099,14 @@ log__delete_error_logfile(int locked) PR_snprintf (buffer, sizeof(buffer), "%s.rotationinfo", loginfo.log_error_file); if (PR_Delete(buffer) != PR_SUCCESS) { if (!locked) { - /* if locked, we should not call LDAPDebug, - which tries to get a lock internally. */ - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s.rotationinfo\n", - loginfo.log_error_file,0,0); + /* If locked, we should not call LDAPDebug, which tries to get a lock internally. */ + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_error_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s.rotationinfo error %d (%s)\n", + loginfo.log_error_file, prerr, slapd_pr_strerror(prerr)); + } } } return 0; @@ -3202,10 +3218,11 @@ delete_logfile: PR_snprintf (buffer, sizeof(buffer), "%s.%s", loginfo.log_error_file, tbuf); if (PR_Delete(buffer) != PR_SUCCESS) { PRErrorCode prerr = PR_GetError(); - PR_snprintf(buffer, sizeof(buffer), - "LOGINFO:Unable to remove file:%s.%s error %d (%s)\n", - loginfo.log_error_file, tbuf, prerr, slapd_pr_strerror(prerr)); - log__error_emergency(buffer, 0, locked); + if (PR_FILE_NOT_FOUND_ERROR != prerr) { + PR_snprintf(buffer, sizeof(buffer), "LOGINFO:Unable to remove file:%s.%s error %d (%s)\n", + loginfo.log_error_file, tbuf, prerr, slapd_pr_strerror(prerr)); + log__error_emergency(buffer, 0, locked); + } } slapi_ch_free((void**)&delete_logp); loginfo.log_numof_error_logs--; @@ -3245,15 +3262,25 @@ log__delete_audit_logfile() loginfo.log_audit_fdes = NULL; PR_snprintf(buffer, sizeof(buffer), "%s", loginfo.log_audit_file); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s\n", loginfo.log_audit_file,0,0); + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_audit_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s error %d (%s)\n", + loginfo.log_audit_file, prerr, slapd_pr_strerror(prerr)); + } } /* Delete the rotation file also. */ PR_snprintf(buffer, sizeof(buffer), "%s.rotationinfo", loginfo.log_audit_file); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s.rotationinfo\n", loginfo.log_audit_file,0,0); + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_audit_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s.rotatoininfo error %d (%s)\n", + loginfo.log_audit_file, prerr, slapd_pr_strerror(prerr)); + } } return 0; } @@ -3354,15 +3381,15 @@ delete_logfile: log_convert_time (delete_logp->l_ctime, tbuf, 1 /*short */); PR_snprintf(buffer, sizeof(buffer), "%s.%s", loginfo.log_audit_file, tbuf ); if (PR_Delete(buffer) != PR_SUCCESS) { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Unable to remove file:%s.%s\n", - loginfo.log_audit_file, tbuf,0); - + PRErrorCode prerr = PR_GetError(); + if (PR_FILE_NOT_FOUND_ERROR == prerr) { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "File %s already removed\n", loginfo.log_audit_file); + } else { + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Unable to remove file:%s.%s error %d (%s)\n", + loginfo.log_audit_file, tbuf, prerr, slapd_pr_strerror(prerr)); + } } else { - LDAPDebug(LDAP_DEBUG_TRACE, - "LOGINFO:Removed file:%s.%s because of (%s)\n", - loginfo.log_audit_file, tbuf, - logstr); + slapi_log_error(SLAPI_LOG_TRACE, "LOGINFO", "Removed file:%s.%s because of (%s)\n", loginfo.log_audit_file, tbuf, logstr); } slapi_ch_free((void**)&delete_logp); loginfo.log_numof_audit_logs--; @@ -3640,10 +3667,8 @@ log__open_errorlogfile(int logfile_state, int locked) Even if PR_Rename fails with the error, we continue logging. */ if (PR_FILE_EXISTS_ERROR != prerr) { - PR_snprintf(buffer, sizeof(buffer), - "Failed to rename errors log file, " - SLAPI_COMPONENT_NAME_NSPR " error %d (%s). Exiting...", - prerr, slapd_pr_strerror(prerr)); + PR_snprintf(buffer, sizeof(buffer), "Failed to rename errors log file, " + SLAPI_COMPONENT_NAME_NSPR " error %d (%s). Exiting...\n", prerr, slapd_pr_strerror(prerr)); log__error_emergency(buffer, 1, 1); slapi_ch_free((void **)&log); if (!locked) LOG_ERROR_UNLOCK_WRITE();