Public bug reported:

## Environment

Ubuntu Focal (20.04)

Installed packages:

```text
apache2      2.4.41-4ubuntu3.23+esm6
apache2-bin  2.4.41-4ubuntu3.23+esm6
apache2-data 2.4.41-4ubuntu3.23+esm6
```

The package is provided by the Ubuntu Focal ESM repository:

```text
https://esm.ubuntu.com/infra/ubuntu
```

## Problem

When `proxy_http2` is enabled, Apache fails to start with:

```text
apache2: Syntax error on line 146 of /etc/apache2/apache2.conf:
Syntax error on line 2 of /etc/apache2/mods-enabled/proxy_http2.load:
Cannot load /usr/lib/apache2/modules/mod_proxy_http2.so into server:
/usr/lib/apache2/modules/mod_proxy_http2.so:
undefined symbol: ap_proxy_should_override
```

## Reproduction / Investigation

`mod_proxy_http2.so` has an unresolved reference to
`ap_proxy_should_override`:

```text
$ nm -D /usr/lib/apache2/modules/mod_proxy_http2.so | grep 
ap_proxy_should_override
                 U ap_proxy_should_override
```

However, `mod_proxy.so` does not export this symbol:

```text
$ nm -D /usr/lib/apache2/modules/mod_proxy.so | grep ap_proxy_should_override
```

(no output)

The Apache executable does not export it either:

```text
$ nm -D /usr/sbin/apache2 | grep ap_proxy_should_override
```

(no output)

The only dynamic dependencies of `mod_proxy_http2.so` are:

```text
$ readelf -d /usr/lib/apache2/modules/mod_proxy_http2.so | grep NEEDED
 0x0000000000000001 (NEEDED) Shared library: [libnghttp2.so.14]
 0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
```

Therefore there is no apparent provider for the required
`ap_proxy_should_override` symbol.

## Package verification

I downloaded a fresh copy of the exact installed package:

```text
apache2-bin_2.4.41-4ubuntu3.23+esm6_amd64.deb
```

using:

```text
apt-get download apache2-bin=2.4.41-4ubuntu3.23+esm6
```

I extracted the package without installing it and repeated the symbol
checks. The freshly downloaded package has the same behavior:

```text
/tmp/apache-test/usr/lib/apache2/modules/mod_proxy.so
    does not export ap_proxy_should_override

/tmp/apache-test/usr/lib/apache2/modules/mod_proxy_http2.so
    references ap_proxy_should_override
```

The installed and freshly downloaded files are byte-for-byte identical:

```text
mod_proxy.so
4694ae26b63c0e57b8b6f2fff646b909

mod_proxy_http2.so
8341d81828b3460ac42e55ac3e603473
```

`dpkg -V apache2-bin` also reports no modified files.

This therefore does not appear to be local filesystem corruption or a
locally modified Apache installation. The published `apache2-bin
2.4.41-4ubuntu3.23+esm6` package itself appears to contain an ABI-
incompatible `mod_proxy.so` / `mod_proxy_http2.so` combination.

## Impact

Any Apache configuration that enables `proxy_http2` cannot start with
this package because the module fails to load.

Disabling the module with:

```text
a2dismod proxy_http2
```

allows Apache to start, but HTTP/2 proxy functionality is then
unavailable.

Please investigate whether `apache2-bin 2.4.41-4ubuntu3.23+esm6`
contains an incorrectly built or mismatched `mod_proxy_http2.so`, and
whether a corrected ESM package should be published.

** Affects: apache2 (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2163447

Title:
  apache2-bin 2.4.41-4ubuntu3.23+esm6 ships an incompatible
  mod_proxy_http2.so that references the undefined symbol
  ap_proxy_should_override.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apache2/+bug/2163447/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to