rpm: more verbose errors in rpmTempFile

This patch adds better error logging inside the rpm tempfile function in
order to be able to better analyze a rare and very hard-to-reproduce
failure in oe-selftest for rpm signing.

[YOCTO #9416]

(From OE-Core rev: aba432ea3ada509b24075c159081e8f0f942c308)

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Markus Lehtonen
2016-04-13 17:40:04 +03:00
committed by Richard Purdie
parent a43991d530
commit a460b04789
2 changed files with 54 additions and 0 deletions

View File

@@ -0,0 +1,53 @@
rpmdb: more verbose error logging in rpmTempFile()
Upstream-Status: Inappropriate [debugging]
Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
diff --git a/rpmdb/signature.c b/rpmdb/signature.c
index dce6c4e..a1d0f06 100644
--- a/rpmdb/signature.c
+++ b/rpmdb/signature.c
@@ -37,6 +37,7 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
int temput;
FD_t fd = NULL;
unsigned int ran;
+ int ret = 0;
if (!prefix) prefix = "";
@@ -44,8 +45,11 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
if (!_initialized) {
_initialized = 1;
tempfn = rpmGenPath(prefix, tpmacro, NULL);
- if (rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1))
- goto errxit;
+ ret = rpmioMkpath(tempfn, 0755, (uid_t) -1, (gid_t) -1);
+ if (ret) {
+ rpmlog(RPMLOG_ERR, _("error creating temporary directory %s: %d\n"), tempfn, ret);
+ goto errxit;
+ }
}
/* XXX should probably use mkstemp here */
@@ -68,12 +72,16 @@ int rpmTempFile(const char * prefix, const char ** fnptr, void * fdptr)
#endif
temput = urlPath(tempfn, &tfn);
- if (*tfn == '\0') goto errxit;
+ if (*tfn == '\0') {
+ rpmlog(RPMLOG_ERR, _("error creating tempfile: empty filename\n"));
+ goto errxit;
+ }
switch (temput) {
case URL_IS_DASH:
case URL_IS_HKP:
case URL_IS_MONGO: /* XXX FIXME */
+ rpmlog(RPMLOG_ERR, _("error creating temporary file, invalid uri type: %d\n"), temput);
goto errxit;
/*@notreached@*/ /*@switchbreak@*/ break;
case URL_IS_HTTPS:
--
2.6.6

View File

@@ -150,6 +150,7 @@ SRC_URI += " \
file://rpm-rpmdb-grammar.patch \
file://rpm-disable-blaketest.patch \
file://rpm-autogen-force.patch \
file://rpmdb-more-verbose-error-logging-in-rpmTempFile.patch \
"
SRC_URI_append_libc-musl = "\