Re: [PATCH] lib: Fix unused parameter warning in lib/error.c

2021-09-09 Thread Mark Wielaard
Hi Colin
(CC Saleem who introduced this new error replacement function),

On Wed, 2021-09-08 at 11:21 -0700, Colin Cross via Elfutils-devel
wrote:
> Mark the errnum parameter with __attribute__((unused)).

Thanks, that is interesting.
But I think this is an actual bug in the code.

Rereviewing the new replacement error function:

> #if !defined(HAVE_ERROR_H) && defined(HAVE_ERR_H)
> #include 
> #include 
> #include 
> 
> unsigned int error_message_count = 0;
> 
> void error(int status, int errnum, const char *format, ...) {
>   va_list argp;
> 
>   va_start(argp, format);
>   verr(status, format, argp);
>   va_end(argp);
> 
>   if (status)
> exit(status);
>   ++error_message_count;
> }
> #endif

I see three issues with the code:

1) error is supposed to first flush stdout before printing to stderr.
   This is minor, but might make the error message appear differently
   when stdout and stderr are mixed.

2) errnum isn't actually used as you noticed.
   error is supposed to print strerror(errnum) if errnum is not zero.

   Instead verr print strerror(errno), even when errno is zero.

   So I think the code should use errnum (if it is not zero), save the
   current value of errno, assign errnum to errno, call verr and set
   errno back.

3) error ignores status if it is zero, but verr seems to call exit (0)
   meaning it terminates the program instead of simply printing an
   error and increasing error_message_count.

Could the error replacement function be rewritten to behave more
correctly?

Thanks,

Mark


[PATCH v2] findtextrel: do not use unbound alloca

2021-09-09 Thread Dmitry V. Levin
This fixes the following compilation warning:

findtextrel.c:184:1: warning: stack usage might be unbounded [-Wstack-usage=]

Signed-off-by: Dmitry V. Levin 
---

 v1 introduced a memory leak, so in v2 I rearranged the code a bit
 to make clear the new code does not introduce any memory leaks.

 src/ChangeLog |  7 +++
 src/Makefile.am   |  1 -
 src/findtextrel.c | 52 +--
 3 files changed, 30 insertions(+), 30 deletions(-)

diff --git a/src/ChangeLog b/src/ChangeLog
index 297627df..449ca17b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,10 @@
+2021-09-09  Dmitry V. Levin  
+
+   * findtextrel.c: Include "libeu.h".
+   (open_rootdir_file): New function.
+   (process_file): Use it to open file inside rootdir.
+   * Makefile.am (findtextrel_no_Wstack_usage): Remove.
+
 2021-09-06  Dmitry V. Levin  
 
* objdump.c (show_disasm): Replace asprintf followed by
diff --git a/src/Makefile.am b/src/Makefile.am
index 88d0ac8f..ee695d5d 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -61,7 +61,6 @@ nm_no_Wstack_usage = yes
 size_no_Wstack_usage = yes
 strip_no_Wstack_usage = yes
 elflint_no_Wstack_usage = yes
-findtextrel_no_Wstack_usage = yes
 elfcmp_no_Wstack_usage = yes
 objdump_no_Wstack_usage = yes
 ranlib_no_Wstack_usage = yes
diff --git a/src/findtextrel.c b/src/findtextrel.c
index 220ee909..fd7baddb 100644
--- a/src/findtextrel.c
+++ b/src/findtextrel.c
@@ -36,6 +36,7 @@
 #include 
 
 #include 
+#include "libeu.h"
 #include "system.h"
 
 struct segments
@@ -181,30 +182,31 @@ noop (void *arg __attribute__ ((unused)))
 
 
 static int
-process_file (const char *fname, bool more_than_one)
+open_rootdir_file (const char *fname)
 {
-  int result = 0;
-  void *knownsrcs = NULL;
-
-  size_t fname_len = strlen (fname);
-  size_t rootdir_len = strlen (rootdir);
+  char *new_fname = NULL;
   const char *real_fname = fname;
+
   if (fname[0] == '/' && (rootdir[0] != '/' || rootdir[1] != '\0'))
-{
-  /* Prepend the user-provided root directory.  */
-  char *new_fname = alloca (rootdir_len + fname_len + 2);
-  *((char *) mempcpy (stpcpy (mempcpy (new_fname, rootdir, rootdir_len),
- "/"),
- fname, fname_len)) = '\0';
-  real_fname = new_fname;
-}
+real_fname = new_fname = xasprintf ("%s/%s", rootdir, fname);
 
   int fd = open (real_fname, O_RDONLY);
   if (fd == -1)
-{
-  error (0, errno, _("cannot open '%s'"), fname);
-  return 1;
-}
+error (0, errno, _("cannot open '%s'"), fname);
+
+  free (new_fname);
+  return fd;
+}
+
+
+static int
+process_file (const char *fname, bool more_than_one)
+{
+  int result = 0;
+  void *knownsrcs = NULL;
+  int fd = open_rootdir_file (fname);
+  if (fd == -1)
+return 1;
 
   Elf *elf = elf_begin (fd, ELF_C_READ_MMAP, NULL);
   if (elf == NULL)
@@ -362,18 +364,10 @@ cannot get program header index at offset %zd: %s"),
 is specified with an absolute path.  */
   if (dw == NULL && fname[0] == '/')
{
- size_t debuginfo_rootlen = strlen (debuginfo_root);
- char *difname = (char *) alloca (rootdir_len + debuginfo_rootlen
-  + fname_len + 8);
- strcpy (mempcpy (stpcpy (mempcpy (mempcpy (difname, rootdir,
-rootdir_len),
-   debuginfo_root,
-   debuginfo_rootlen),
-  "/"),
-  fname, fname_len),
- ".debug");
-
+ char *difname =
+   xasprintf("%s%s/%s.debug", rootdir, debuginfo_root, fname);
  fd2 = open (difname, O_RDONLY);
+ free (difname);
  if (fd2 != -1
  && (elf2 = elf_begin (fd2, ELF_C_READ_MMAP, NULL)) != NULL)
dw = dwarf_begin_elf (elf2, DWARF_C_READ, NULL);
-- 
ldv


[Bug debuginfod/28325] New: create new debuginfod.service.8 man page

2021-09-09 Thread fche at redhat dot com via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=28325

Bug ID: 28325
   Summary: create new debuginfod.service.8 man page
   Product: elfutils
   Version: unspecified
Status: NEW
  Severity: normal
  Priority: P2
 Component: debuginfod
  Assignee: unassigned at sourceware dot org
  Reporter: fche at redhat dot com
CC: elfutils-devel at sourceware dot org
  Target Milestone: ---

Let's briefly document the systemd service wrapper in its own right.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Buildbot failure in Wildebeest Builder on whole buildset

2021-09-09 Thread buildbot
The Buildbot has detected a new failure on builder elfutils-centos-x86_64 while 
building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/1/builds/823

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: centos-x86_64

Build Reason: 
Blamelist: Dmitry V. Levin 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-debian-i386 while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/4/builds/815

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: debian-i386

Build Reason: 
Blamelist: Dmitry V. Levin 

BUILD FAILED: failed test (failure)

Sincerely,
 -The Buildbot



Re: [PATCH v2] findtextrel: do not use unbound alloca

2021-09-09 Thread Mark Wielaard
Hi Dmitry,

On Thu, 2021-09-09 at 14:31 +0300, Dmitry V. Levin wrote:
> This fixes the following compilation warning:
> 
> findtextrel.c:184:1: warning: stack usage might be unbounded [-
> Wstack-usage=]
> 
> Signed-off-by: Dmitry V. Levin 
> ---
> 
>  v1 introduced a memory leak, so in v2 I rearranged the code a bit
>  to make clear the new code does not introduce any memory leaks.

Sorry I missed that in my original review. But yes, in the original you
only freed on error. Now always. Did the testsuite catch it with
configure --enable-valgrind ?

Looks good, please apply.

Thanks,

Mark
> 


[COMMITTED] tests: Cleanup error handling and don't share cache between servers/client

2021-09-09 Thread Mark Wielaard
There were still three tests that shared a cache between the servers
and client that queried those servers. Give them all separate caches.

Also the error handler for debuginfod tests wasn't called when a
command inside a function failed. Since testrun is a function, there
would be no metrics or error log files listed if the testrun command
failed. Making it hard to see what went wrong. Fix this by using
set -o errtrace

Signed-off-by: Mark Wielaard 
---
 tests/ChangeLog| 11 +++
 tests/debuginfod-subr.sh   | 14 -
 tests/run-debuginfod-federation-link.sh|  7 ---
 tests/run-debuginfod-federation-metrics.sh | 18 -
 tests/run-debuginfod-federation-sqlite.sh  | 23 ++
 5 files changed, 42 insertions(+), 31 deletions(-)

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 85dca442..05b31fd8 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,14 @@
+2021-09-09  Mark Wielaard  
+
+   * debuginfod-subr.sh: set -o errtrace.
+   (cleanup): Don't fail kill or wait. Only trap on normal exit.
+   (err): Don't fail curl metrics. Call cleanup.
+   * run-debuginfod-federation-link.sh: Use separate client caches
+   for both servers and debuginfod client. Remove duplicate valgrind
+   disabling.
+   * run-debuginfod-federation-metrics.sh: Likewise.
+   * run-debuginfod-federation-sqlite.sh: Likewise.
+
 2021-09-06  Dmitry V. Levin  
 
* elfcopy.c (copy_elf): Remove cast of malloc return value.
diff --git a/tests/debuginfod-subr.sh b/tests/debuginfod-subr.sh
index 7d238436..c21b7b8a 100755
--- a/tests/debuginfod-subr.sh
+++ b/tests/debuginfod-subr.sh
@@ -16,6 +16,9 @@
 
 # sourced from run-debuginfod-*.sh tests (must be bash scripts)
 
+# We trap ERR and like commands that fail in function to also trap
+set -o errtrace
+
 . $srcdir/test-subr.sh  # includes set -e
 
 type curl 2>/dev/null || (echo "need curl"; exit 77)
@@ -27,14 +30,14 @@ echo "zstd=$zstd bsdtar=`bsdtar --version`"
 
 cleanup()
 {
-  if [ $PID1 -ne 0 ]; then kill $PID1; wait $PID1; fi
-  if [ $PID2 -ne 0 ]; then kill $PID2; wait $PID2; fi
+  if [ $PID1 -ne 0 ]; then kill $PID1 || : ; wait $PID1 || :; fi
+  if [ $PID2 -ne 0 ]; then kill $PID2 || : ; wait $PID2 || :; fi
   rm -rf F R D L Z ${PWD}/foobar ${PWD}/mocktree ${PWD}/.client_cache* 
${PWD}/tmp*
   exit_cleanup
 }
 
-# clean up trash if we were aborted early
-trap cleanup 0 1 2 3 5 9 15
+# clean up trash if we exit
+trap cleanup 0
 
 errfiles_list=
 err() {
@@ -42,7 +45,7 @@ err() {
 for port in $PORT1 $PORT2
 do
 echo ERROR REPORT $port metrics
-curl -s http://127.0.0.1:$port/metrics
+curl -s http://127.0.0.1:$port/metrics || :
 echo
 done
 for x in $errfiles_list
@@ -51,6 +54,7 @@ err() {
 cat $x
 echo
 done
+cleanup
 false # trigger set -e
 }
 trap err ERR
diff --git a/tests/run-debuginfod-federation-link.sh 
b/tests/run-debuginfod-federation-link.sh
index 050bcbcf..1347e7b8 100755
--- a/tests/run-debuginfod-federation-link.sh
+++ b/tests/run-debuginfod-federation-link.sh
@@ -98,6 +98,9 @@ wait_ready $PORT2 'thread_busy{role="http-metrics"}' 1
 
 # have clients contact the new server
 export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2
+# Use fresh cache for debuginfod-find client requests
+export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache3
+mkdir -p $DEBUGINFOD_CACHE_PATH
 
 if type bsdtar 2>/dev/null; then
 # copy in the deb files
@@ -117,7 +120,6 @@ if type bsdtar 2>/dev/null; then
 archive_test f17a29b5a25bd4960531d82aa6b07c8abe84fa66 "" ""
 fi
 
-rm -rf $DEBUGINFOD_CACHE_PATH
 testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
 
 # send a request to stress XFF and User-Agent federation relay;
@@ -148,8 +150,7 @@ export DEBUGINFOD_URLS=127.0.0.1:$PORT2
 testrun ${abs_top_builddir}/debuginfod/debuginfod-find debuginfo $BUILDID
 
 # test parallel queries in client
-export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache3
-mkdir -p $DEBUGINFOD_CACHE_PATH
+rm -rf $DEBUGINFOD_CACHE_PATH
 export DEBUGINFOD_URLS="BAD http://127.0.0.1:$PORT1 127.0.0.1:$PORT1 
http://127.0.0.1:$PORT2 DNE"
 
 testrun ${abs_builddir}/debuginfod_build_id_find -e F/prog 1
diff --git a/tests/run-debuginfod-federation-metrics.sh 
b/tests/run-debuginfod-federation-metrics.sh
index 0cc4c2f7..2d0fd6d4 100755
--- a/tests/run-debuginfod-federation-metrics.sh
+++ b/tests/run-debuginfod-federation-metrics.sh
@@ -92,6 +92,10 @@ wait_ready $PORT2 'thread_busy{role="http-metrics"}' 1
 
 # have clients contact the new server
 export DEBUGINFOD_URLS=http://127.0.0.1:$PORT2
+# Use fresh cache for debuginfod-find client requests
+export DEBUGINFOD_CACHE_PATH=${PWD}/.client_cache3
+mkdir -p $DEBUGINFOD_CACHE_PATH
+
 if type bsdtar 2>/dev/null; then
 # copy in the deb files
 cp -rvp ${abs_srcdir}/debuginfod-debs/*deb D
@@ -110,7 +114,6 @@ if type bsdtar 2>/dev/null; then
 archive_te

Re: [Bug debuginfod/28034] client-side %-escape url characters

2021-09-09 Thread Noah Sanci via Elfutils-devel
Hello,

The attached patch %-escapes debuginfod url characters, then unescapes only
'/' characters. Previously characters such as '+' were not escaped and caused
improper escaping further on in handler_cb.
https://sourceware.org/bugzilla/show_bug.cgi?id=28034.

On Wed, Sep 8, 2021 at 9:38 AM Mark Wielaard  wrote:
>   /* Initialize each handle.  */
>   for (int i = 0; i < num_urls; i++)
>
> So you only need to escape once. You of course then need to make sure
> the escaped_string is freed after the loop.
Added

> We already check that the first char is a '/'. It seems silly to curl
> escape that one and then unescape it again. So maybe curl_easy_escape
> (data[i].handle, filename + 1, 0) and then change the snprintf pattern
> to "%s/%s/%s/%s"?
> ^ the slash got readded here.
Added

> The strlen inside the while loop can also be done outside and then
> calculated instead of running strlen on the tail every time.
Added

> Lastly I assume there are already testcases that cover this
> functionality? Just wanting to know how you tested it.
Previously, with run-debuginfod-find.sh the test was embedded within other
tests. Now the test is independent and has been added to the list of TESTS.

Regards,

Noah Sanci
From a080fd3feb79d601d86c54cf479562d6d5bed395 Mon Sep 17 00:00:00 2001
From: Noah Sanci 
Date: Thu, 9 Sep 2021 13:10:33 -0400
Subject: [PATCH] debuginfod: PR28034 - Percent escape debuginfod urls

When requesting some source files, some URL-inconvenient chars
sometimes pop up, including but not limited to '+', '^', and '&'.
Example from f33 libstdc++:
 /buildid/44d8485cb75512c2ca5c8f70afbd475cae30af4f/source/usr/src/debug
 /gcc-10.3.1-1.fc33.x86_64/obj-x86_64-redhat-linux/x86_64-redhat-linux/
 libstdc++-v3/src/c++11/../../../../../libstdc++-v3/src/c++11/
 condition_variable.cc
As this URL is passed into debuginfod's handler_cb, it appears that the
+ signs are helpfully unescaped to spaces by libmicrohttpd, which
'course breaks everything.
To combat this, before querying the debuginfod daemon, clients now %
escape the source filename. This converts many alphanumeric characters
into their %-code format, including '/' to %2F. We want to preserve the
'/' in the url, so after conversion replace %2Fs with a '/'.

https://sourceware.org/bugzilla/show_bug.cgi?id=28034

Signed-off-by: Noah Sanci 
---
 debuginfod/debuginfod-client.c | 18 ++--
 tests/ChangeLog|  7 +--
 tests/Makefile.am  |  2 +
 tests/run-debuginfod-percent-escape.sh | 60 ++
 4 files changed, 79 insertions(+), 8 deletions(-)
 create mode 100755 tests/run-debuginfod-percent-escape.sh

diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index d41723ce..77ca844b 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -883,6 +883,10 @@ debuginfod_query_server (debuginfod_client *c,
   data[i].errbuf[0] = '\0';
 }
 
+  char *escaped_string;
+  if (filename)
+escaped_string = curl_easy_escape(&target_handle, filename+1, 0);
+
   /* Initialize each handle.  */
   for (int i = 0; i < num_urls; i++)
 {
@@ -904,16 +908,23 @@ debuginfod_query_server (debuginfod_client *c,
   if (filename) /* must start with / */
 {
   /* PR28034 escape characters in completed url to %hh format. */
-  char *escaped_string;
-  escaped_string = curl_easy_escape(data[i].handle, filename, 0);
+  char *loc = escaped_string;
   if (!escaped_string)
 {
   rc = -ENOMEM;
   goto out2;
 }
+
+  size_t escaped_strlen = strlen(escaped_string);
+  while ((loc = strstr(loc, "%2F")))
+{
+loc[0] = '/';
+// pull the string back after replacement
+memmove(loc+1, loc+3,escaped_strlen - (loc - escaped_string + 2) );
+escaped_strlen -=2;
+}
   snprintf(data[i].url, PATH_MAX, "%s/%s/%s/%s", server_url,
build_id_bytes, type, escaped_string);
-  curl_free(escaped_string);
 }
   else
 snprintf(data[i].url, PATH_MAX, "%s/%s/%s", server_url, build_id_bytes, type);
@@ -953,6 +964,7 @@ debuginfod_query_server (debuginfod_client *c,
   curl_multi_add_handle(curlm, data[i].handle);
 }
 
+  if (filename) curl_free(escaped_string);
   /* Query servers in parallel.  */
   if (vfd >= 0)
 dprintf (vfd, "query %d urls in parallel\n", num_urls);
diff --git a/tests/ChangeLog b/tests/ChangeLog
index 85dca442..b84f420c 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -132,11 +132,8 @@
 2021-07-16  Noah Sanci  
 
 	PR28034
-	* run-debuginfod-find.sh: Added a test ensuring files with %
-	escapable characters in their paths are accessible. The test
-	itself is changing the name of a binary known previously as prog to
-	p+r%o$g. General operations such as accessing p+r%o$g acts as the
-	test for

Re: [COMMITTED] tests: Cleanup error handling and don't share cache between servers/client

2021-09-09 Thread Mark Wielaard
Hi,

On Thu, Sep 09, 2021 at 06:58:10PM +0200, Mark Wielaard wrote:
> Also the error handler for debuginfod tests wasn't called when a
> command inside a function failed. Since testrun is a function, there
> would be no metrics or error log files listed if the testrun command
> failed. Making it hard to see what went wrong. Fix this by using
> set -o errtrace

So that showed run-debuginfod-fd-prefetch-caches.sh "failed".  I
"fixed" that with the attached patch which I just committed. And also
make the cleanup and error handling slightly better (by only doing it
once).

But it doesn't really "fix" run-debuginfod-fd-prefetch-caches.sh. It
now just does nothing. The debuginfod server gets to scan a
non-existing directory and then nothing even tries to query anything
from the server. So nothing ever gets prefetched. And testing for zero
happily succeeds.

Noah, could you take a peek at this testcase and see if you can make
it do something "real"?

Thanks,

Mark
>From bbf0dc0162e82770f296b2ecda77a2b5bd6f7405 Mon Sep 17 00:00:00 2001
From: Mark Wielaard 
Date: Thu, 9 Sep 2021 21:51:51 +0200
Subject: [PATCH] tests: Don't fail run-debuginfod-fd-prefetch-caches.sh if
 grep -c fails

The set -o errtrace made run-debuginfod-fd-prefetch-caches.sh
fail. On some systems. Add set -o functrace to make it fail consistently.

The failure is because the grep -c for in the log file fails (it
returns zero). Fix this by using || true. But this is only a
workaround. It makes the test pass, but only because all values are
always zero. The test doesn't currently test anything.

Also make sure that err and cleanup are only executed once.

Signed-off-by: Mark Wielaard 
---
 tests/ChangeLog|  7 +++
 tests/debuginfod-subr.sh   |  7 +++
 tests/run-debuginfod-fd-prefetch-caches.sh | 12 
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/tests/ChangeLog b/tests/ChangeLog
index 05b31fd8..caee93d3 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,10 @@
+2021-09-09  Mark Wielaard  
+
+	* debuginfod-subr.sh: set -o functrace.
+	(cleanup): Disable trap 0.
+	(err): Disable trap ERR.
+	* run-debuginfod-fd-prefetch-caches.sh: Use || true when grep -c fails.
+
 2021-09-09  Mark Wielaard  
 
 	* debuginfod-subr.sh: set -o errtrace.
diff --git a/tests/debuginfod-subr.sh b/tests/debuginfod-subr.sh
index c21b7b8a..59033f35 100755
--- a/tests/debuginfod-subr.sh
+++ b/tests/debuginfod-subr.sh
@@ -17,6 +17,7 @@
 # sourced from run-debuginfod-*.sh tests (must be bash scripts)
 
 # We trap ERR and like commands that fail in function to also trap
+set -o functrace
 set -o errtrace
 
 . $srcdir/test-subr.sh  # includes set -e
@@ -30,6 +31,9 @@ echo "zstd=$zstd bsdtar=`bsdtar --version`"
 
 cleanup()
 {
+  # No more cleanups after this cleanup
+  trap - 0
+
   if [ $PID1 -ne 0 ]; then kill $PID1 || : ; wait $PID1 || :; fi
   if [ $PID2 -ne 0 ]; then kill $PID2 || : ; wait $PID2 || :; fi
   rm -rf F R D L Z ${PWD}/foobar ${PWD}/mocktree ${PWD}/.client_cache* ${PWD}/tmp*
@@ -41,6 +45,9 @@ trap cleanup 0
 
 errfiles_list=
 err() {
+# Don't trap any new errors from now on
+trap - ERR
+
 echo ERROR REPORTS
 for port in $PORT1 $PORT2
 do
diff --git a/tests/run-debuginfod-fd-prefetch-caches.sh b/tests/run-debuginfod-fd-prefetch-caches.sh
index 61fee9e9..7fbf7b20 100755
--- a/tests/run-debuginfod-fd-prefetch-caches.sh
+++ b/tests/run-debuginfod-fd-prefetch-caches.sh
@@ -51,10 +51,14 @@ grep 'prefetch fds ' vlog$PORT1 #$PREFETCH_FDS
 grep 'prefetch mbs ' vlog$PORT1 #$PREFETCH_MBS
 # search the vlog to find what metric counts should be and check the correct metrics
 # were incrimented
-wait_ready $PORT1 'fdcache_op_count{op="enqueue"}' $( grep -c 'interned.*front=1' vlog$PORT1 )
-wait_ready $PORT1 'fdcache_op_count{op="evict"}' $( grep -c 'evicted a=.*' vlog$PORT1 )
-wait_ready $PORT1 'fdcache_op_count{op="prefetch_enqueue"}' $( grep -c 'interned.*front=0' vlog$PORT1 )
-wait_ready $PORT1 'fdcache_op_count{op="prefetch_evict"}' $( grep -c 'evicted from prefetch a=.*front=0' vlog$PORT1 || true )
+enqueue_nr=$(grep -c 'interned.*front=1' vlog$PORT1 || true)
+wait_ready $PORT1 'fdcache_op_count{op="enqueue"}' $enqueue_nr
+evict_nr=$(grep -c 'evicted a=.*' vlog$PORT1 || true)
+wait_ready $PORT1 'fdcache_op_count{op="evict"}' $evict_nr
+prefetch_enqueue_nr=$(grep -c 'interned.*front=0' vlog$PORT1 || true)
+wait_ready $PORT1 'fdcache_op_count{op="prefetch_enqueue"}' $prefetch_enqueue_nr
+prefetch_evict_nr=$(grep -c 'evicted from prefetch a=.*front=0' vlog$PORT1 || true)
+wait_ready $PORT1 'fdcache_op_count{op="prefetch_evict"}' $prefetch_evict_nr
 
 kill $PID1
 wait $PID1
-- 
2.32.0



Buildbot failure in Wildebeest Builder on whole buildset

2021-09-09 Thread buildbot
The Buildbot has detected a new failure on builder elfutils-debian-i386 while 
building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/4/builds/818

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: debian-i386

Build Reason: 
Blamelist: Dmitry V. Levin 

BUILD FAILED: failed test (failure)

Sincerely,
 -The Buildbot



Buildbot failure in Wildebeest Builder on whole buildset

2021-09-09 Thread buildbot
The Buildbot has detected a new failure on builder elfutils-debian-amd64 while 
building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/2/builds/819

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: debian-amd64

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-fedora-x86_64 while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/3/builds/823

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: fedora-x86_64

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-fedora-s390x while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/10/builds/789

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: fedora-s390x

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-fedora-ppc64le while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/11/builds/774

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: fedora-ppc64le

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-fedora-ppc64 while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/12/builds/772

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: fedora-ppc64

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-debian-armhf while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/15/builds/614

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: debian-armhf

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The BuildbotThe Buildbot has detected a new failure on builder 
elfutils-debian-arm64 while building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/45/builds/255

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: debian-arm64

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The Buildbot



Buildbot failure in Wildebeest Builder on whole buildset

2021-09-09 Thread buildbot
The Buildbot has detected a new failure on builder elfutils-centos-x86_64 while 
building elfutils.
Full details are available at:
https://builder.wildebeest.org/buildbot/#builders/1/builds/829

Buildbot URL: https://builder.wildebeest.org/buildbot/

Worker for this Build: centos-x86_64

Build Reason: 
Blamelist: Mark Wielaard 

BUILD FAILED: failed test (failure)

Sincerely,
 -The Buildbot