Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package elfutils for openSUSE:Factory 
checked in at 2022-08-18 16:48:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/elfutils (Old)
 and      /work/SRC/openSUSE:Factory/.elfutils.new.2083 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "elfutils"

Thu Aug 18 16:48:43 2022 rev:99 rq:997533 version:0.187

Changes:
--------
--- /work/SRC/openSUSE:Factory/elfutils/elfutils-debuginfod.changes     
2022-06-17 21:22:09.142761642 +0200
+++ /work/SRC/openSUSE:Factory/.elfutils.new.2083/elfutils-debuginfod.changes   
2022-08-18 16:48:51.177401999 +0200
@@ -1,0 +2,22 @@
+Wed Aug 17 11:42:11 UTC 2022 - Martin Li??ka <mli...@suse.cz>
+
+- Use %ghost for debuginfod.sqlite file.
+
+-------------------------------------------------------------------
+Tue Aug 16 13:29:30 UTC 2022 - Martin Li??ka <mli...@suse.cz>
+
+- Add support-nullglob-in-profile.-.in-files.patch
+  fixes boo#1202440.
+
+-------------------------------------------------------------------
+Mon Aug 15 11:04:57 UTC 2022 - Martin Li??ka <mli...@suse.cz>
+
+- Add PR29474-debuginfod.patch in order to fix PR29474.
+
+-------------------------------------------------------------------
+Fri Aug 12 12:35:57 UTC 2022 - Martin Li??ka <mli...@suse.cz>
+
+- Add Recommends for libdebuginfod1 so that debuginfod-profile
+  sets the DEBUGINFOD_URLS.
+
+-------------------------------------------------------------------

New:
----
  PR29474-debuginfod.patch
  support-nullglob-in-profile.-.in-files.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ elfutils-debuginfod.spec ++++++
--- /var/tmp/diff_new_pack.c8ims7/_old  2022-08-18 16:48:51.837403536 +0200
+++ /var/tmp/diff_new_pack.c8ims7/_new  2022-08-18 16:48:51.841403545 +0200
@@ -31,6 +31,8 @@
 Source4:        %{name}.sysusers
 Patch1:         harden_debuginfod.service.patch
 Patch2:         config-Move-the-2-dev-null-inside-the-sh-c-quotes-fo.patch
+Patch3:         PR29474-debuginfod.patch
+Patch4:         support-nullglob-in-profile.-.in-files.patch
 BuildRequires:  autoconf
 BuildRequires:  automake
 BuildRequires:  bison
@@ -73,6 +75,7 @@
 Group:          System/Libraries
 Conflicts:      libdebuginfod1-dummy = %{version}
 License:        GPL-2.0-or-later OR LGPL-3.0-or-later
+Recommends:     debuginfod-profile
 
 %description -n libdebuginfod1
 The libdebuginfod1 package contains shared libraries
@@ -193,7 +196,7 @@
 %{_sysusersdir}/%{name}.conf
 
 %dir %attr(0700,debuginfod,debuginfod) %{_localstatedir}/cache/debuginfod
-%verify(not md5 size mtime) %attr(0600,debuginfod,debuginfod) 
%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
+%ghost %attr(0600,debuginfod,debuginfod) 
%{_localstatedir}/cache/debuginfod/debuginfod.sqlite
 
 %files -n libdebuginfod1
 %{_libdir}/libdebuginfod.so.*

++++++ PR29474-debuginfod.patch ++++++
>From 31d6b1fe74ab89138b4d256742997b730dc5cba8 Mon Sep 17 00:00:00 2001
From: "Frank Ch. Eigler" <f...@redhat.com>
Date: Mon, 15 Aug 2022 06:20:10 -0400
Subject: [PATCH] PR29474: debuginfod
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Previous code sometimes confused debuginfod with concurrent queries
targeting the same RPM.  One thread fetching & prefetching, the other
thread misinterpreted the sudden presence of its target file in the
fdcache as a mere unnecessary prefetch duplicate.  But if it was the
other thread's target file, previous code would -skip- it completely,
resulting in a 404 error.  New code allows the other thread to also
decompress the target file and return it, and still continue to its
own prefetching process for other files.

There's a performance trade-off here.  Another option would be for the
other thread to check the fdcache regularly and abort its own
prefetch/fetch/prefetch loop early in case of a sudden target file
hit.  That'd save CPU probably but it'd stop prefetching of later
segments of the input archive, which could save future time.

Automated testing is too time/load sensitive to attempt.  Confirmed
working with Martin's stress tester.

Reported-By: Martin Li??ka <mli...@suse.cz>
Signed-Off-By: Frank Ch. Eigler <f...@redhat.com>
---
 debuginfod/ChangeLog      | 6 ++++++
 debuginfod/debuginfod.cxx | 3 ++-
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index a089d0bd..9245be53 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -1742,7 +1742,8 @@ handle_buildid_r_match (bool internal_req_p,
       if ((r == 0) && (fn != b_source1)) // stage 1
         continue;
 
-      if (fdcache.probe (b_source0, fn)) // skip if already interned
+      if (fdcache.probe (b_source0, fn) && // skip if already interned
+          fn != b_source1) // but only if we'd just be prefetching, PR29474
         continue;
 
       // extract this file to a temporary file
-- 
2.37.1




++++++ support-nullglob-in-profile.-.in-files.patch ++++++
>From 538f0c744dd4e1d931b98d01425b45137afcd9a4 Mon Sep 17 00:00:00 2001
From: Martin Liska <mli...@suse.cz>
Date: Tue, 16 Aug 2022 15:14:26 +0200
Subject: [PATCH] Support nullglob in profile.*.in files

In openSUSE we have the following RPM checker that uses
shopt -s nullglob:
https://github.com/openSUSE/post-build-checks/blob/master/checks/50-check-libtool-deps#L31

The script loads all /etc/profile.d/*.sh files via source $FILE which
can end up by stuck cat (with no arguments):

shopt -s nullglob ; cat "/etc/debuginfod"/*.urls
(stuck)
---
 config/profile.csh.in | 2 +-
 config/profile.sh.in  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/config/profile.csh.in b/config/profile.csh.in
index 74c20c99..d962d969 100644
--- a/config/profile.csh.in
+++ b/config/profile.csh.in
@@ -6,7 +6,7 @@
 
 if (! $?DEBUGINFOD_URLS) then
     set prefix="@prefix@"
-    set DEBUGINFOD_URLS=`sh -c 'cat "$0"/*.urls 2>/dev/null; :' 
"@sysconfdir@/debuginfod" | tr '\n' ' '`
+    set DEBUGINFOD_URLS=`sh -c 'cat /dev/null "$0"/*.urls 2>/dev/null; :' 
"@sysconfdir@/debuginfod" | tr '\n' ' '`
     if ( "$DEBUGINFOD_URLS" != "" ) then
         setenv DEBUGINFOD_URLS "$DEBUGINFOD_URLS"
     else
diff --git a/config/profile.sh.in b/config/profile.sh.in
index bad20b1e..3f4397dc 100644
--- a/config/profile.sh.in
+++ b/config/profile.sh.in
@@ -6,7 +6,7 @@
 
 if [ -z "$DEBUGINFOD_URLS" ]; then
     prefix="@prefix@"
-    DEBUGINFOD_URLS=$(cat "@sysconfdir@/debuginfod"/*.urls 2>/dev/null | tr 
'\n' ' ')
+    DEBUGINFOD_URLS=$(cat /dev/null "@sysconfdir@/debuginfod"/*.urls 
2>/dev/null | tr '\n' ' ')
     [ -n "$DEBUGINFOD_URLS" ] && export DEBUGINFOD_URLS || unset 
DEBUGINFOD_URLS
     unset prefix
 fi
-- 
2.37.1

Reply via email to