Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-53632

RFE: httpd, add IP_FREEBIND support for Listen

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • rhel-10.0.beta
    • rhel-10.0.beta
    • httpd
    • None
    • httpd-2.4.62-3.el10
    • No
    • None
    • rhel-sst-cs-stacks
    • ssg_core_services
    • 26
    • None
    • False
    • None
    • None
    • Undefined
    • Unspecified
    • Unspecified
    • None

      Needs to be ported to rhel-10. Not present in httpd-2.4.62-2.el10

      +++ This bug was initially created as a clone of Bug #1493510 +++

      Description of problem:
      Currently the user behaviour for httpd enabled at boot is sub-optimal; if enabled, httpd may start before dependent network interfaces.

      Version-Release number of selected component (if applicable):
      httpd-2.4.27

      How reproducible:
      always

      Steps to Reproduce:
      1. add Listen 10.23.4.5:80 to httpd.conf
      2. systemctl enable httpd
      3. reboot

      Actual results:
      httpd will fail to start if 10.23.4.5 is not up

      Expected results:
      We need one of:

      1. an option for the Listen directive which uses IP_FREEBIND (APR_SO_FREEBIND in apr)
      2. a new config option which enables IP_FREEBIND always when binding
      3. a new directorive ListenFree or similar
      4... something else

      — Additional comment from Luboš Uhliarik ✈ on 2018-03-07 14:23:22 UTC —

      Fix pushed to GIT -> moving to MODIFIED.

      GIT: http://pkgs.devel.redhat.com/cgit/rpms/httpd/commit/?h=rhel-8.0&id=e38ec32896653967a34f78b3dec05d8bbc5466e7

      — Additional comment from Joe Orton on 2018-03-21 15:54:13 UTC —

      Test.

      — Additional comment from Branislav Náter on 2018-09-25 09:14:27 UTC —

      Hi Lubos,

      can you provide me with some documentation/man regarding ip free bind. I'm not able to find anything. Thanks

      B.

      — Additional comment from Branislav Náter on 2018-10-17 09:22:02 UTC —

      freebind enhancement is working but what about documentation here? Where can user find something about ListenFree or that this directive even exists? Thanks

      — Additional comment from Luboš Uhliarik ✈ on 2018-10-18 09:17:49 UTC —

      Documentation provided in following commit:

      http://pkgs.devel.redhat.com/cgit/rpms/httpd/commit/?h=stream-2.4&id=dae525d66ecdce607fb8ff2833b07b10bd6cf5bd

      BUILD: https://mbsweb.engineering.redhat.com/module/2120

      — Additional comment from Branislav Náter on 2018-10-18 13:16:21 UTC —

      Thanks.

      "Description: IP addresses and ports that the server listens to. Doesn't require IP address to be up"

      • IMO "network interface" will sound better then "IP address" (to be up) in that sentence.

      — Additional comment from Branislav Náter on 2018-10-26 07:20:40 UTC —

      Verified on httpd-2.4.35-6.el8+2089+57a79027 in Beta-1.1 compose (RHEL-8.0-20181024.1) on all supported architectures.

      :: [ 12:51:52 ] :: [ PASS ] :: Command 'sed -i 's/^Listen 80/Listen 1.2.3.4:80/' /etc/httpd/conf/httpd.conf' (Expected 0, got 0)
      <snip>
      :: [ 12:51:53 ] :: [ LOG ] :: Oct 25 12:51:52 ibm-p9z-16-lp1.pnr.lab.eng.bos.redhat.com httpd[13195]: (99)Cannot assign requested address: AH00072: make_sock: could not bind to address 1.2.3.4:80
      <snip>
      :: [ 12:51:53 ] :: [ PASS ] :: Start httpd should fail (Expected 1, got 1)

      :: [ 12:51:53 ] :: [ PASS ] :: Command 'sed -i 's/^Listen 1.2.3.4:80/ListenFree 1.2.3.4:80/' /etc/httpd/conf/httpd.conf' (Expected 0, got 0)
      :: [ 12:51:53 ] :: [ PASS ] :: Start httpd (Expected 0, got 0)

      :: [ 12:51:54 ] :: [ PASS ] :: Command 'curl -s --connect-timeout 1 http://1.2.3.4 | grep '<h1>Red Hat Enterprise Linux'' (Expected 1, got 1)
      :: [ 12:51:54 ] :: [ PASS ] :: Add 1.2.3.4 to loopback device (Expected 0, got 0)
      :: [ 12:51:54 ] :: [ PASS ] :: Command 'curl -s --connect-timeout 1 http://1.2.3.4 | grep '<h1>Red Hat Enterprise Linux'' (Expected 0, got 0)

      Beta build doesn't have documentation which has been added in httpd-2.4.35-10.el8+2120+5e836124. Setting PreBeta verified for now.

      — Additional comment from Branislav Náter on 2019-01-09 13:13:26 UTC —

      Verified on httpd-2.4.37-7.module+el8+2443+605475b7

      TCMS test case run: https://tcms.engineering.redhat.com/run/350678/#caserun_19837354

      Documentation is present in httpd-manual rpm, reachable on http://<hostname>/manual/mod/mpm_common.html#listenfree

              luhliari@redhat.com Lubos Uhliarik
              bnater@redhat.com Branislav Náter
              RH Bugzilla Integration
              Lubos Uhliarik Lubos Uhliarik
              Branislav Náter Branislav Náter
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: