Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 651484

Summary: www-servers/apache-2.4.33 : * http2 does not work with prefork MPM.
Product: Gentoo Linux Reporter: Toralf Förster <toralf>
Component: Current packagesAssignee: Apache Team - Bugzilla Reports <apache-bugs>
Status: CONFIRMED ---    
Severity: normal CC: hydrapolic
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Attachments: emerge-info.txt
die.env
emerge-history.txt
etc.portage.tbz2
logs.tbz2
www-servers:apache-2.4.33:20180325-122523.log

Description Toralf Förster gentoo-dev 2018-03-25 15:32:58 UTC
 * ERROR: www-servers/apache-2.4.33::gentoo failed (setup phase):
 *   http2 does not work with prefork MPM.
 * 

  -------------------------------------------------------------------

  This is an unstable amd64 chroot image at a tinderbox (==build bot)
  name: 17.0-desktop-plasma-systemd_test_20180323-181400

  -------------------------------------------------------------------

gcc-config -l:
 [1] x86_64-pc-linux-gnu-7.3.0 *

Available Python interpreters, in order of preference:
  [1]   python3.5
  [2]   python2.7 (fallback)

java-config:
The following VMs are available for generation-2:
*)	IcedTea JDK 3.7.0 [icedtea-bin-8]
Available Java Virtual Machines:
  [1]   icedtea-bin-8  system-vm

emerge -qpv www-servers/apache
[ebuild  N    ] www-servers/apache-2.4.33  USE="ldap ssl -debug -doc -libressl (-selinux) -static -suexec -threads" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_core authn_dbm authn_file authz_core authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers http2 include info log_config logio mime mime_magic negotiation rewrite setenvif socache_shmcb speling status unique_id unixd userdir usertrack vhost_alias -access_compat -asis -auth_digest -authn_dbd -authz_dbd -brotli -cache_disk -cache_socache -cern_meta -charset_lite -dbd -dumpio -ident -imagemap -lbmethod_bybusyness -lbmethod_byrequests -lbmethod_bytraffic -lbmethod_heartbeat -log_forensic -macro -proxy -proxy_ajp -proxy_balancer -proxy_connect -proxy_fcgi -proxy_ftp -proxy_html -proxy_http -proxy_scgi -proxy_wstunnel -ratelimit -remoteip -reqtimeout -slotmem_shm -substitute -version -watchdog -xml2enc" APACHE2_MPMS="-event -prefork -worker"
Comment 1 Toralf Förster gentoo-dev 2018-03-25 15:33:01 UTC
Created attachment 525398 [details]
emerge-info.txt
Comment 2 Toralf Förster gentoo-dev 2018-03-25 15:33:04 UTC
Created attachment 525400 [details]
die.env
Comment 3 Toralf Förster gentoo-dev 2018-03-25 15:33:07 UTC
Created attachment 525402 [details]
emerge-history.txt
Comment 4 Toralf Förster gentoo-dev 2018-03-25 15:33:10 UTC
Created attachment 525404 [details]
etc.portage.tbz2
Comment 5 Toralf Förster gentoo-dev 2018-03-25 15:33:13 UTC
Created attachment 525406 [details]
logs.tbz2
Comment 6 Toralf Förster gentoo-dev 2018-03-25 15:33:16 UTC
Created attachment 525408 [details]
www-servers:apache-2.4.33:20180325-122523.log
Comment 7 Toralf Förster gentoo-dev 2018-03-25 15:34:10 UTC
/me wonders if this could be catched by emerge by appropriate USE flags ?
Comment 8 Tomáš Mózes 2018-03-25 20:22:06 UTC
This was introduced in Apache 2.4.27 (http://www.apache.org/dist/httpd/CHANGES_2.4):

  *) COMPATIBILITY: mod_http2: Disable and give warning when using Prefork.
     The server will continue to run, but HTTP/2 will no longer be negotiated.
     [Stefan Eissing]
Comment 9 Oleh 2018-11-15 18:17:40 UTC
any progress on this one?
Comment 10 Tomáš Mózes 2018-11-15 19:41:13 UTC
(In reply to Oleg from comment #9)
> any progress on this one?

Please read comment #8. It's an upstream issue.
Comment 11 Oleh 2018-11-16 07:27:36 UTC
that's correct.
known upstream issue, however it is allowed to set
APACHE2_MODULES="http2" APACHE_MPMS="prefork" and emerge apache just fine.
It dies then, because its set to die due to this combination. It's very awkward and against user's experience. User shouldn't be allowed to configure their ebuilds to die. That's very simple logic.
Comment 12 Oleh 2018-11-16 08:10:32 UTC
setting ?? ( apache2_modules_http2 apache2_mpms_prefork ) in REQUIRED_USE can be sufficient for users to see those two USE's are not possible to enable simultaneously at the moment.
Comment 13 Tomáš Mózes 2018-11-16 09:47:23 UTC
https://github.com/gentoo/gentoo/blob/master/eclass/apache-2.eclass#L124

if [[ "$(ver_cut 1-2)" != 2.2 ]] ; then
  REQUIRED_USE+=" apache2_mpms_prefork? ( !apache2_modules_http2 )"
fi

After setting:
APACHE2_MODULES="... http2"
APACHE2_MPMS="prefork"

This error is printed:
 # emerge apache

!!! Problem resolving dependencies for www-servers/apache                                                                                                                                               ... done!

...

  The following REQUIRED_USE flag constraints are unsatisfied:
    apache2_mpms_prefork? ( !apache2_modules_http2 )
...

However, if you don't set APACHE2_MPMS, then nothing is printed.