Yes, before the upgrade: mod_proxy_http2 worked correctly.
After upgrade to ESM version 2.4.41-4ubuntu3.23+esm6 : mod_proxy_http2 files to 
load.
I have to disable mod_proxy_http2 in order to boot apache2.

I ran the following strace command after re enabling proxy_http2:
~# strace -fy apache2ctl configtest 2>&1 | tee /tmp/strace-output.txt

Here is the relevant log output.
~# grep -A10 -B10 "mod_proxy_http2\|ap_proxy_should_override" 
/tmp/strace-output.txt
[pid 2610018] close(5</usr/lib/apache2/modules/mod_proxy_http.so>) = 0
[pid 2610018] mprotect(0x7f23d3538000, 4096, PROT_READ) = 0
[pid 2610018] read(4</etc/apache2/mods-available/proxy_http.load>, "", 4096) = 0
[pid 2610018] close(4</etc/apache2/mods-available/proxy_http.load>) = 0
[pid 2610018] stat("/etc/apache2/mods-enabled/proxy_http2.load", 
{st_mode=S_IFREG|0644, st_size=97, ...}) = 0
[pid 2610018] stat("/etc/apache2/mods-enabled/proxy_http2.load", 
{st_mode=S_IFREG|0644, st_size=97, ...}) = 0
[pid 2610018] openat(AT_FDCWD, "/etc/apache2/mods-enabled/proxy_http2.load", 
O_RDONLY|O_CLOEXEC) = 4</etc/apache2/mods-available/proxy_http2.load>
[pid 2610018] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 
-1, 0) = 0x7f23d352b000
[pid 2610018] fstat(4</etc/apache2/mods-available/proxy_http2.load>, 
{st_mode=S_IFREG|0644, st_size=97, ...}) = 0
[pid 2610018] read(4</etc/apache2/mods-available/proxy_http2.load>, "# Depends: 
proxy http2\nLoadModul"..., 4096) = 97
[pid 2610018] openat(AT_FDCWD, "/usr/lib/apache2/modules/mod_proxy_http2.so", 
O_RDONLY|O_CLOEXEC) = 5</usr/lib/apache2/modules/mod_proxy_http2.so>
[pid 2610018] read(5</usr/lib/apache2/modules/mod_proxy_http2.so>, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0@\0\0\0\0\0\0"..., 832) = 832
[pid 2610018] fstat(5</usr/lib/apache2/modules/mod_proxy_http2.so>, 
{st_mode=S_IFREG|0644, st_size=72032, ...}) = 0
[pid 2610018] mmap(NULL, 74032, PROT_READ, MAP_PRIVATE|MAP_DENYWRITE, 
5</usr/lib/apache2/modules/mod_proxy_http2.so>, 0) = 0x7f23d3518000
[pid 2610018] mprotect(0x7f23d351b000, 57344, PROT_NONE) = 0
[pid 2610018] mmap(0x7f23d351b000, 40960, PROT_READ|PROT_EXEC, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 
5</usr/lib/apache2/modules/mod_proxy_http2.so>, 0x3000) = 0x7f23d351b000
[pid 2610018] mmap(0x7f23d3525000, 12288, PROT_READ, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 
5</usr/lib/apache2/modules/mod_proxy_http2.so>, 0xd000) = 0x7f23d3525000
[pid 2610018] mmap(0x7f23d3529000, 8192, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 
5</usr/lib/apache2/modules/mod_proxy_http2.so>, 0x10000) = 0x7f23d3529000
[pid 2610018] close(5</usr/lib/apache2/modules/mod_proxy_http2.so>) = 0
[pid 2610018] munmap(0x7f23d3518000, 74032) = 0
[pid 2610018] close(4</etc/apache2/mods-available/proxy_http2.load>) = 0
[pid 2610018] close(3</etc/apache2/apache2.conf>) = 0
[pid 2610018] write(2<pipe:[158749473]>, "apache2: Syntax error on line 14"..., 
291apache2: Syntax error on line 148 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
) = 291
[pid 2610018] select(0, NULL, NULL, NULL, {tv_sec=0, tv_usec=10000}) = 0 
(Timeout)
[pid 2610018] munmap(0x7f23d352d000, 49320) = 0
[pid 2610018] munmap(0x7f23d3816000, 136048) = 0
[pid 2610018] munmap(0x7f23d383c000, 41112) = 0
[pid 2610018] munmap(0x7f23d3849000, 70128) = 0
[pid 2610018] munmap(0x7f23d385b000, 28832) = 0
[pid 2610018] munmap(0x7f23d3863000, 280688) = 0
[pid 2610018] munmap(0x7f23d38cb000, 168208) = 0
[pid 2610018] munmap(0x7f23d38f7000, 32936) = 0

NOTE, I used AI to help me with this.   Here is AI conclusion:
-----------------
Root Cause:

The ESM build of mod_proxy_http2.so appears to have been compiled
against Apache 2.4.47+ headers/source code (which includes
ap_proxy_should_override), while the rest of the package correctly uses
2.4.41 sources.

This creates an ABI mismatch where:

ESM mod_proxy_http2.so expects a symbol from Apache 2.4.47+
ESM mod_proxy.so only provides symbols from Apache 2.4.41
focal-security version is correctly built entirely against 2.4.41
Currently loaded modules:

proxy_module, proxy_http_module, proxy_uwsgi_module, proxy_wstunnel_module
(proxy_http2_module disabled due to this issue)

Request:

Could you please rebuild the ESM apache2-bin package ensuring
mod_proxy_http2.so is compiled against the correct Apache 2.4.41 source
tree, matching the focal-security build process?

-- 
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