☠ Buildbot (GNU Toolchain): elfutils - failed test (failure) (master)

2022-04-23 Thread builder--- via Elfutils-devel
A new failure has been detected on builder elfutils-fedora-x86_64 while 
building elfutils.

Full details are available at:
http://localhost:8010/#builders/30/builds/28

Build state: failed test (failure)
Revision: 40508c282202b5ff85201d79dc8d32298bb27299
Worker: fedora-x86_64
Build Reason: (unknown)
Blamelist: Frank Ch. Eigler 

Steps:

- 0: worker_preparation ( success )

- 1: set package name ( success )

- 2: git checkout ( success )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/2/logs/stdio

- 3: autoreconf ( success )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/3/logs/stdio

- 4: configure ( success )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/4/logs/stdio

- 5: get version ( success )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/5/logs/stdio
- property changes: 
http://localhost:8010/#builders/30/builds/28/steps/5/logs/property_changes

- 6: make ( warnings )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/6/logs/stdio
- warnings (3): 
http://localhost:8010/#builders/30/builds/28/steps/6/logs/warnings__3_

- 7: make check ( success )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/7/logs/stdio
- test-suite.log: 
http://localhost:8010/#builders/30/builds/28/steps/7/logs/test-suite_log

- 8: make distcheck ( failure )
Logs:
- stdio: http://localhost:8010/#builders/30/builds/28/steps/8/logs/stdio
- test-suite.log: 
http://localhost:8010/#builders/30/builds/28/steps/8/logs/test-suite_log
- warnings (4): 
http://localhost:8010/#builders/30/builds/28/steps/8/logs/warnings__4_



Re: run-debuginfod-webapi-concurrency.sh

2022-04-23 Thread Frank Ch. Eigler via Elfutils-devel
Hi -

> [...]
> I think that might be Frank's local experimentation. I also got email
> about my workers being unavailable. If you run a buildbot locally it
> will not see any workers connect and after an hour it will try to
> notify the owners.

Sorry about that.  After this noisy testing, I pushed to the
sourceware builder a configuration change for elfutils builds that
automatically upload testsuite results (both make check and make
distcheck) into the local bunsen testsuite database for future
analysis.

- FChE



run-debuginfod-webapi-concurrency.sh (Was: ☠ Buildbot (GNU Toolchain): elfutils - failed test (failure)) (master)

2022-04-23 Thread Mark Wielaard
Hi,

On Sat, Apr 23, 2022 at 03:31:04AM +0200, Mark Wielaard wrote:
> On Sat, Apr 23, 2022 at 01:19:53AM +, builder--- via Elfutils-devel wrote:
> > A new failure has been detected on builder elfutils-debian-ppc64 while 
> > building elfutils.
> > 
> > Full details are available at:
> > https://builder.sourceware.org/buildbot/#builders/63/builds/4
> > 
> > Build state: failed test (failure)
> > Revision: 7b046b7c060acc32c00748ee66ac350f77bc6571
> > Worker: debian-ppc64
> > Build Reason: (unknown)
> > Blamelist: наб via Elfutils-devel 
> > 
> > Steps:
> > [...]
> > - 7: make check ( failure )
> > Logs:
> > - stdio: 
> > https://builder.sourceware.org/buildbot/#builders/63/builds/4/steps/7/logs/stdio
> > - test-suite.log: 
> > https://builder.sourceware.org/buildbot/#builders/63/builds/4/steps/7/logs/test-suite_log
> 
> Gah. It is run-debuginfod-webapi-concurrency.sh again with
> error_count{libmicrohttpd="Server reached connection limit.
> Closing inbound connection.\n"} 9
> 
> I guess 100 parallel lookups really is too much. I am going to lower
> it to 64.

And that didn't help. As Frank already explained in
https://sourceware.org/bugzilla/show_bug.cgi?id=28708#c11

The issue isn't the parallel lookups, but the concurrent threadpool.
The total number of connections accepted gets divided by the number of
threads in the daemon threadpool.

So one way to fix this is to lower the max number of -C THREADS::

diff --git a/tests/run-debuginfod-webapi-concurrency.sh 
b/tests/run-debuginfod-webapi-concurrency.sh
index 4928f6d0..12b460a8 100755
--- a/tests/run-debuginfod-webapi-concurrency.sh
+++ b/tests/run-debuginfod-webapi-concurrency.sh
@@ -33,7 +33,7 @@ cp -rvp ${abs_srcdir}/debuginfod-tars Z
 tempfiles Z
 
 
-for Cnum in "" "-C" "-C10" "-C100"
+for Cnum in "" "-C" "-C10" "-C32"
 do
 env LD_LIBRARY_PATH=$ldpath ${abs_builddir}/../debuginfod/debuginfod 
$VERBOSE $Cnum -d :memory: -Z .tar.xz -Z .tar.bz2=bzcat -p $PORT1 -t0 -g0 -v 
--fdcache-fds=0 --fdcache-prefetch-fds=0 Z >> vlog$PORT1 2>&1 &
 PID1=$!

This seem to make the test pass even on a system (s390x 2 vcpus, f36)
where it occasionally FAILs.

But there is another way to prevent the "Server reached connection
limit. Closing inbound connection." Pass the MHD_USE_ITC flag to
MHD_start_daemon:

diff --git a/debuginfod/debuginfod.cxx b/debuginfod/debuginfod.cxx
index 9c0217f6..67124771 100644
--- a/debuginfod/debuginfod.cxx
+++ b/debuginfod/debuginfod.cxx
@@ -3910,6 +3910,7 @@ main (int argc, char *argv[])
  | MHD_USE_EPOLL
 #endif
  | MHD_USE_DUAL_STACK
+ | MHD_USE_ITC
  | MHD_USE_DEBUG, /* report errors to 
stderr */
  http_port,
  NULL, NULL, /* default accept policy */

This has my preference since it will make sure connections are still
accepted (by the OS) instead of being immediately closed once the
connection limit is reached:

If the connection limit is reached, MHD’s behavior depends a bit
on other options. If MHD_USE_ITC was given, MHD will stop
accepting connections on the listen socket. This will cause the
operating system to queue connections (up to the listen() limit)
above the connection limit. Those connections will be held until
MHD is done processing at least one of the active connections. If
MHD_USE_ITC is not set, then MHD will continue to accept() and
immediately close() these connections.

But it has some more consequences which I think are OK, but am not
100% sure of:

MHD_USE_ITC

Force MHD to use a signal inter-thread communication channel to
notify the event loop (of threads) of our shutdown and other
events. This is required if an application uses
MHD_USE_INTERNAL_POLLING_THREAD and then performs
MHD_quiesce_daemon (which eliminates our ability to signal
termination via the listen socket). In these modes,
MHD_quiesce_daemon will fail if this option was not set. Also, use
of this option is automatic (as in, you do not even have to
specify it), if MHD_USE_NO_LISTEN_SOCKET is specified. In
"external" select mode, this option is always simply ignored.

Using this option also guarantees that MHD will not call
shutdown() on the listen socket, which means a parent process can
continue to use the socket.

Opinions on just changing the testcasse to use -C32 as max, or to add
MHD_USE_ITC to the MHD_start_daemon flags?

Cheers,

Mark



Re: run-debuginfod-webapi-concurrency.sh (Was: ☠ Buildbot (GNU Toolchain): elfutils - failed test (failure)) (master)

2022-04-23 Thread Frank Ch. Eigler via Elfutils-devel
Hi -

> But there is another way to prevent the "Server reached connection
> limit. Closing inbound connection." Pass the MHD_USE_ITC flag to
> MHD_start_daemon:

Yeah, that looked promising to me too.  When I was last working on
this, that would have been my next thing to try.  I can't think of
a relevant downside, so let's try it.  (Add a #ifdef guard around
that macro, for older libmicrohttpd, like rhel7 methinks.)

- FChE



[Bug tools/29073] program header entry 2: unknown program header entry type 0x70000003

2022-04-23 Thread mark at klomp dot org via Elfutils-devel
https://sourceware.org/bugzilla/show_bug.cgi?id=29073

Mark Wielaard  changed:

   What|Removed |Added

 CC||mark at klomp dot org
 Status|NEW |ASSIGNED

--- Comment #1 from Mark Wielaard  ---
This seems to be PT_RISCV_ATTRIBUTES and SHT_RISCV_ATTRIBUTES:
https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/71/files

Which is defined in binutils, but not in glibc elf.h

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

Re: run-debuginfod-webapi-concurrency.sh

2022-04-23 Thread Thomas Fitzsimmons
Hi,

"Frank Ch. Eigler"  writes:

>> But there is another way to prevent the "Server reached connection
>> limit. Closing inbound connection." Pass the MHD_USE_ITC flag to
>> MHD_start_daemon:
>
> Yeah, that looked promising to me too.  When I was last working on
> this, that would have been my next thing to try.  I can't think of
> a relevant downside, so let's try it.  (Add a #ifdef guard around
> that macro, for older libmicrohttpd, like rhel7 methinks.)

On debian-ppc64, with and without the MHD_USE_ITC patch, I ran the test
20 times in a shell loop.  With MHD_USE_ITC, I got 20 passes, without
it, 9 passes and 11 failures.

With the patch applied, a full "make check" succeeded.

Thomas