Am 22.04.2021 um 11:25 schrieb Christophe JAILLET:
Hi, all;
   Please find below the proposed release tarball and signatures:
https://dist.apache.org/repos/dist/dev/httpd/

I would like to call a VOTE over the next few days to release this candidate tarball as 2.4.47:
[ ] +1: It's not just good, it's good enough!
[ ] +0: Let's have a talk.
[ ] -1: There's trouble in paradise. Here's what's wrong.

The computed digests of the tarball up for vote are:
sha1: f4281be0bf08489a51d818b596a92bfcfbb2c708 *httpd-2.4.47.tar.gz
sha256: 567d5ac72ea643e3828e8e54f32e06f1fad10095d33ae4071eeaec3c78b70a34 *httpd-2.4.47.tar.gz sha512: de4c80e1ddebe3286c234179fd01d4917f479f75a7fe958032c19a8f22546e95f31e3b50073844d09f20f54894e7d511bcd9fd2f1cd2b2c71b3a182d6e62bab3 *httpd-2.4.47.tar.gz

The SVN tag is '2.4.47' at r1889091.

--
Christophe JAILLET


+1 to release and thanks a bunch for stepping in as RM!

I think I wasn't able to import your key from a pgp key server, but maybe I wasn't using the right ones. Your key is in the KEYS file, probably just not in the network of key servers.

Summary: all OK except for

- one single crash on SLES 11 using prefork.

Detailed report:

- Sigs and hashes OK
- contents of tarballs identical
- contents of tag and tarballs identical
  except for expected deltas

Built on

- Solaris 10 Sparc as 32 Bit Binaries
- SLES 11+12+15 (64 Bits)
- RHEL 6+7+8 (64 Bits)

For all platforms built

- with default (shared) and static modules
- with module set reallyall
- using --enable-load-all-modules
- against
  - bundled APR/APU from deps tarball
  - external APR/APU 1.7.0/1.6.1 (expat)
  - APR/APU 1.6.5/1.6.1 (expat)
  - APR/APU 1.7.x r1889104/1.7.x r1884108 (expat)
  - APR/APU 1.7.x r1889104/1.7.x r1884108 (libxml2)
  - APR/APU 1.6.x r1876940/1.6.x r1876943 (expat)
  - APR/APU 1.6.x r1876940/1.6.x r1876943 (libxml2)

- using external libraries
  - expat 2.3.0
  - pcre 8.44
  - lua 5.4.3 (compiled with LUA_COMPAT_MODULE)
  - libxml2 2.9.10
  - libnghttp2 1.43.0
  - brotli 1.0.9
  - curl 7.76.1
  - jansson 2.13.1
  - libldap 2.4.58
and
  - openssl 0.9.8zh, 1.0.2, 1.0.2u, 1.1.1, 1.1.1k, 3.0.0alpha15

- Tool chain:
    - platform gcc except on Solaris
      (gcc 9.3.0 Solaris 10)
    - CFLAGS: -O2 -g -Wall -fno-strict-aliasing
      - on Solaris additionally -mpcu=v9, -D_XOPEN_SOURCE,
        -D_XOPEN_SOURCE_EXTENDED=1, -D__EXTENSIONS__
        and -D_XPG6

All of the 852 builds done until now succeeded, 32 builds on Solaris yet to come.

- compiler warnings:

  - only on Solaris 10 Sparc (GCC 9.3.0): APR 1.7.x
srclib/apr/locks/unix/proc_mutex.c:979:49: warning: 'mutex_proc_pthread_cond_methods' defined but not used [-Wunused-const-variable=] => the declaration checks for APR_USE_PROC_PTHREAD_MUTEX_COND, which is defined on Solaris, the use in line 1437 also checks HAVE_PTHREAD_MUTEX_ROBUST, which is not defined on Solaris.

- deprecation warnings when building against OpenSSL 3.0.0, see other mail


Tested for

- SLES 11+12+15, RHEL 6+7+8
  - Tests for Solaris 10 Sparc still to come, when builds finish there
- MPMs prefork, worker, event
- default and static module builds
- log level trace8
- module set reallyall (129 modules plus 3 MPMs)
- Perl client bundle build against OpenSSL 1.1.1g plus patches, 1.1.0l, 1.0.2u and 0.9.8zh
- OpenSSL once linked statically and once as a shared library

Every OpenSSL version in the client is tested with every OpenSSL version in the server.

The total number of test suite runs until now is ~3800 (many more still to come, especially those with statically linked OpenSSL and most of the Solaris ones).

Some local adjustments to tests were used:

- t/modules/buffer.t: removing huge buffer tests
  -    my $bigsize = 100000;
  +    my $bigsize = 10000;

- fixing limitrequestline overwrite which does not yet really work in Apache-Test/lib/Apache/TestConfig.pm
87d86
<    limitrequestline => 'global LimitRequestLine setting (default is 128)',
96a96
> # limitrequestline => 'global LimitRequestLine setting (default is 128)',
372,373c372,373
<     $vars->{limitrequestline} ||= 128;
<     $vars->{limitrequestlinex2} = 2 * $vars->{limitrequestline};
---
> #    $vars->{limitrequestline} ||= 128;
> #    $vars->{limitrequestlinex2} = 2 * $vars->{limitrequestline};

- temporary workaround for a OpenSSL 3 when using "openssl crl -hash" with STDIN in Apache-Test/lib/Apache/TestSSLCA.pm
39a40
> my $openssl_workaround = $ENV{APACHE_TEST_OPENSSL_CMD_WORKAROUND} || $openssl;
426c427
<         chomp(my $hash = `$openssl $type -noout -hash < $file`);
---
> chomp(my $hash = `$openssl_workaround $type -noout -hash < $file`);

This enables to use OpenSSL 3 everywhere in test suite configuration and setup and override it only in the CRL hash command line, for which it is currently buggy.

The following test failures were seen:

a All https tests fail between OpenSSL 0.9.8zh and 3.0.0alpha15
  Not a regression.
  Probably need to figure out how to load the legacy provider
  during the tests

b Tests 48, 51, 54 in t/modules/cgi.t line 232:
  Not a regression
  Only on Solaris
  3 failed test runs out of 11 until now
  Test checks log contents. Could be false positive due to
  logs not being flushed.

c A single crash in SLES 11 APU 1.6.1 APR 1.6.5 Openssl_3.0.0alpha15 build statically using prefork. Crash during apr_pool_destroy for pool "proxy_worker_cp" triggered via just_die and clean_child_exit due to a signal received while being in accept_mutex_on. gdb data see below.

d Hangs on Solaris when using prefork and mod_ext_filter.
  Not a regression.

Regards,

Rainer

GDB info single crash on SLES 11:

Program terminated with signal 11, Segmentation fault.
#0 allocator_free (node=<value optimized out>, allocator=<value optimized out>) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:455
455             index = node->index;
(gdb) bt full
#0 allocator_free (node=<value optimized out>, allocator=<value optimized out>) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:455
        max_index = 0
        max_free_index = 1
        current_free_index = 0
#1 apr_pool_destroy (node=<value optimized out>, allocator=<value optimized out>) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:1043
        active = 0xd340d0
        allocator = 0xd3b700
#2 0x00007fa2dc52dd25 in apr_pool_destroy (pool=0xdada18) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:997
        active = <value optimized out>
        allocator = <value optimized out>
#3 0x00007fa2db51c783 in clean_child_exit (code=0) at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:227
No locals.
#4 0x00007fa2db51cf3b in just_die (sig=<value optimized out>) at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:355
No locals.
#5  <signal handler called>
No symbol table info available.
#6  0x00007fa2dba21107 in semop () from /lib64/libc.so.6
No symbol table info available.
#7 0x00007fa2dc52c4cc in proc_mutex_sysv_acquire (mutex=0x9ff048) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/locks/unix/proc_mutex.c:279
        rc = <value optimized out>
#8 0x00007fa2db51cb7f in accept_mutex_on () at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:241
No locals.
#9 child_main () at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:521
        current_conn = 0xdafc90
        csd = 0xdafaa0
        thd = 0xdada90
        osthd = 140337511352064
        ptrans = 0xdafa28
        allocator = 0xd3b700
        status = 14351504
        i = <value optimized out>
        lr = 0xdafc90
        pollset = 0xe1a458
        sbh = 0xe1a450
        bucket_alloc = 0xe50eb8
        last_poll_idx = 1
        lockfile = <value optimized out>
#10 0x00007fa2db51d080 in make_child (s=<value optimized out>, slot=10)
at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:717
        bucket = <value optimized out>
#11 0x00007fa2db51dab2 in perform_idle_server_maintenance (p=<value optimized out>)
---Type <return> to continue, or q <return> to quit---
at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:821
        i = 2
        idle_count = 10
        free_length = 8
free_slots = {9, 10, 11, 12, 13, 14, 15, 16, 9689576, 0, 9392440, 0, 6738880, 0, 4556880, 0, 14327760, 0, -598550223, 32674, 9727688, 0, 0, 0, 9727688, 0,
          9392440, 0, 9678040, 0, 9392440, 0}
        last_non_dead = 1
        total_non_dead = 514
        bucket_kill_child_record = 0
#12 prefork_run (p=<value optimized out>) at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm/prefork/prefork.c:1014
        status = 0
        pid = {pid = -1, in = 0x5634c0, out = 0x458850, err = 0x93d9e8}
        child_slot = <value optimized out>
        exitwhy = APR_PROC_EXIT
        processed_status = <value optimized out>
        index = <value optimized out>
        remaining_children_to_start = 0
        i = <value optimized out>
#13 0x00000000004631c8 in ap_run_mpm (pconf=0x8f5138, plog=0x94efe8, s=0x93acd8) at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/mpm_common.c:96
        n = 0
        rv = <value optimized out>
#14 0x000000000045bf6a in main (argc=11, argv=0x7fffaa236ab8) at /path/to/sources/httpd/2.4.x/2.4.47/httpd-2.4.47/server/main.c:819
        c = 68 'D'
        showcompile = 0
        showdirectives = 0
confname = 0x7fffaa238daf "/path/to/sles11.x86_64-1.6.5-dso_enable-1.6.1-modular_enable-apr_1.6.5-dso_enable-expat_2.3.0-1-ldap_2.4.58-300-1-openssl_3.0.0alpha15-1-shared-sqlite_3.35.5-1-bdb_6.1.19-1-3.0.0alpha15-1-share"... def_server_root = 0x7fffaa238cb7 "/path/to/sles11.x86_64-1.6.5-dso_enable-1.6.1-modular_enable-apr_1.6.5-dso_enable-expat_2.3.0-1-ldap_2.4.58-300-1-openssl_3.0.0alpha15-1-shared-sqlite_3.35.5-1-bdb_6.1.19-1-3.0.0alpha15-1-share"...
        temp_error_log = 0x0
        error = <value optimized out>
        process = 0x8f3218
        pconf = 0x8f5138
        plog = 0x94efe8
        ptemp = 0x93d9e8
        pcommands = 0x917248
        opt = 0x917338
        rv = <value optimized out>
        mod = 0x8df2b0
        opt_arg = 0x7fffaa238ecf "PERL_USEITHREADS"
        rc = 9302704
(gdb) up
#1 apr_pool_destroy (node=<value optimized out>, allocator=<value optimized out>) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:1043
1043        allocator_free(allocator, active);
(gdb) up
#2 0x00007fa2dc52dd25 in apr_pool_destroy (pool=0xdada18) at /path/to/sources/apr/1.6.x/1.6.5/apr-1.6.5/memory/unix/apr_pools.c:997
997             apr_pool_destroy(pool->child);
(gdb) print *pool
$1 = {parent = 0x8f5138, child = 0xe2fe28, sibling = 0xdaba08, ref = 0x8f5140, cleanups = 0xe1af38, free_cleanups = 0x0, allocator = 0xd3b700, subprocesses = 0x0, abort_fn = 0x45c1e0 <abort_on_oom>, user_data = 0xe1af60, tag = 0x7fa2db51e583 "pchild", active = 0xe19d50, self = 0xdad9f0, self_first_avail = 0xdada90 "\030\332", <incomplete sequence \332>, pre_cleanups = 0x0}

(gdb) print *pool->child
$2 = {parent = 0xdada18, child = 0x0, sibling = 0xe2be08, ref = 0xdada20, cleanups = 0x0, free_cleanups = 0xe2ffa0, allocator = 0xd3b700, subprocesses = 0x0, abort_fn = 0x45c1e0 <abort_on_oom>, user_data = 0x0, tag = 0x662f7b "proxy_worker_cp", active = 0xe2fe00, self = 0xe2fe00, self_first_avail = 0xe2fea0 "(\376", <incomplete sequence \342>, pre_cleanups = 0x0}

Reply via email to