From 042ef11f3338ef22b70d62c189caafcd0b74d7e9 Mon Sep 17 00:00:00 2001 From: Matej Habrnal Date: Fri, 14 Aug 2015 09:48:40 +0200 Subject: [PATCH] Don't warn about missing 'type' if the locking fails and stop warning about corrupted mandatory files Signed-off-by: Matej Habrnal --- ...ning-about-corrupted-mandatory-files.patch | 82 +++++++++++++++++++ ...out-missing-type-if-the-locking-fail.patch | 42 ++++++++++ libreport.spec | 8 +- 3 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 0002-dd-stop-warning-about-corrupted-mandatory-files.patch create mode 100644 0003-dd-don-t-warn-about-missing-type-if-the-locking-fail.patch diff --git a/0002-dd-stop-warning-about-corrupted-mandatory-files.patch b/0002-dd-stop-warning-about-corrupted-mandatory-files.patch new file mode 100644 index 0000000..2e69d4a --- /dev/null +++ b/0002-dd-stop-warning-about-corrupted-mandatory-files.patch @@ -0,0 +1,82 @@ +From 63a7dba681c148603c9606e9f841fdecc4e5b549 Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 4 Aug 2015 19:18:38 +0200 +Subject: [PATCH] dd: stop warning about corrupted mandatory files + +These messages are printed by abrtd to syslog when it finds a dump +directory with such files. Unfortunately, abrtd prints out these +messages too often and users do not know how to get rid of them because +they make sense only to us (ABRT devels). Moreover, these messages are +not necessary because abrtd follows them with +"$PATH is not a valid problem directory" message. So admins are notified +about strange problem directories and they can remove them. + +The messages were accidentally turned on by me in these commits: +8f9fa454bd8c653758cddf07597f0a5a17ff5793 +b9e7fb2ac2ea3064dc73dab26f80beab100af65f + +Signed-off-by: Jakub Filak +--- + src/lib/dump_dir.c | 12 ++++++------ + 1 file changed, 6 insertions(+), 6 deletions(-) + +diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c +index 66e2569..aed7a15 100644 +--- a/src/lib/dump_dir.c ++++ b/src/lib/dump_dir.c +@@ -218,7 +218,7 @@ static int read_number_from_file_at(int dir_fd, const char *filename, const char + const int fd = secure_openat_read(dir_fd, filename); + if (fd < 0) + { +- log_warning("Can't open '%s'", filename); ++ log_info("Can't open '%s'", filename); + return fd; + } + +@@ -235,14 +235,14 @@ static int read_number_from_file_at(int dir_fd, const char *filename, const char + + if (value_buf == NULL) + { +- log_warning("Can't read from '%s'", filename); ++ log_info("Can't read from '%s'", filename); + ret = -EBADFD; + goto finito; + } + + if (total_read >= max_size) + { +- log_warning("File '%s' is too long to be valid %s " ++ log_info("File '%s' is too long to be valid %s " + "(max size %u)", filename, typename, (int)sizeof(value_buf)); + ret = -EMSGSIZE; + goto finito; +@@ -265,7 +265,7 @@ static int read_number_from_file_at(int dir_fd, const char *filename, const char + || (*endptr != '\0') + || endptr == value_buf + ) { +- log_warning("File '%s' doesn't contain valid %s" ++ log_info("File '%s' doesn't contain valid %s" + "('%s')", filename, typename, value_buf); + ret = -EINVAL; + goto finito; +@@ -276,7 +276,7 @@ static int read_number_from_file_at(int dir_fd, const char *filename, const char + */ + if (res <= min || res >= max) + { +- log_warning("File '%s' contains a number out-of-range of %s" ++ log_info("File '%s' contains a number out-of-range of %s" + "('%s')", filename, typename, value_buf); + ret = -ERANGE; + goto finito; +@@ -441,7 +441,7 @@ static int dd_lock(struct dump_dir *dd, unsigned sleep_usec, int flags) + if (dd->owns_lock) + xunlinkat(dd->dd_fd, ".lock", /*only files*/0); + +- log_warning("Unlocked '%s' (no or corrupted '%s' file)", dd->dd_dirname, missing_file); ++ log_notice("Unlocked '%s' (no or corrupted '%s' file)", dd->dd_dirname, missing_file); + if (--count == 0 || flags & DD_DONT_WAIT_FOR_LOCK) + { + errno = EISDIR; /* "this is an ordinary dir, not dump dir" */ +-- +2.4.3 + diff --git a/0003-dd-don-t-warn-about-missing-type-if-the-locking-fail.patch b/0003-dd-don-t-warn-about-missing-type-if-the-locking-fail.patch new file mode 100644 index 0000000..360afef --- /dev/null +++ b/0003-dd-don-t-warn-about-missing-type-if-the-locking-fail.patch @@ -0,0 +1,42 @@ +From eb38c73cc3aa81884e74718c6d7f412ea7a94f6f Mon Sep 17 00:00:00 2001 +From: Jakub Filak +Date: Tue, 4 Aug 2015 19:35:48 +0200 +Subject: [PATCH] dd: don't warn about missing 'type' if the locking fails + +The warning is printed out at least 10 times and makes only a little +sense to system administrators. abrtd follows those warnings with +"$path is not a valid problem directory" message which is a sufficient +way to tell the administrators to remove that directory. + +Related: rhbz#1243280 + +Signed-off-by: Jakub Filak +--- + src/lib/dump_dir.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/src/lib/dump_dir.c b/src/lib/dump_dir.c +index aed7a15..2399ca1 100644 +--- a/src/lib/dump_dir.c ++++ b/src/lib/dump_dir.c +@@ -384,7 +384,16 @@ static const char *dd_check(struct dump_dir *dd) + return FILENAME_TIME; + } + +- dd->dd_type = load_text_file_at(dd->dd_fd, FILENAME_TYPE, DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE); ++ /* Do not warn about missing 'type' file in non-verbose modes. ++ * ++ * Handling of FILENAME_TYPE should be consistent with handling of ++ * FILENAME_TIME in the function parse_time_file_at() where the missing ++ * file message is printed by log_info() (in a verbose mode). ++ */ ++ int load_flags = DD_LOAD_TEXT_RETURN_NULL_ON_FAILURE; ++ if (g_verbose < 2) load_flags |= DD_FAIL_QUIETLY_ENOENT; ++ ++ dd->dd_type = load_text_file_at(dd->dd_fd, FILENAME_TYPE, load_flags); + if (!dd->dd_type || (strlen(dd->dd_type) == 0)) + { + log_debug("Missing or empty file: "FILENAME_TYPE); +-- +2.4.3 + diff --git a/libreport.spec b/libreport.spec index d41e148..6a1d317 100644 --- a/libreport.spec +++ b/libreport.spec @@ -7,7 +7,7 @@ Summary: Generic library for reporting various problems Name: libreport Version: 2.6.2 -Release: 2%{?dist} +Release: 3%{?dist} License: GPLv2+ Group: System Environment/Libraries URL: https://abrt.readthedocs.org/ @@ -17,6 +17,8 @@ Source1: autogen.sh # git format-patch %%{Version} -N -M --topo-order # i=0; for p in `ls 0*.patch`; do printf "Patch%04d: %s\n" $i $p; ((i++)); done Patch0001: 0001-Use-a-dgettext-function-returning-strings-instead-of.patch +Patch0002: 0002-dd-stop-warning-about-corrupted-mandatory-files.patch +Patch0003: 0003-dd-don-t-warn-about-missing-type-if-the-locking-fail.patch # git is need for '%%autosetup -S git' which automatically applies all the # patches above. Please, be aware that the patches must be generated @@ -733,6 +735,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %changelog +* Fri Aug 14 2015 Matej Habrnal 2.6.2-3 +- don't warn about missing 'type' if the locking fails +- stop warning about corrupted mandatory files + * Wed Jul 22 2015 Matej Habrnal 2.6.2-2 - Use a dgettext function returning strings instead of bytes