https://bz.apache.org/bugzilla/show_bug.cgi?id=69168

            Bug ID: 69168
           Summary: In 2.4.60+, balanced fcgi workers stop working
                    (SCRIPT_NAME, PATH_INFO misparse)
           Product: Apache httpd-2
           Version: 2.4.61
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: mod_proxy_fcgi
          Assignee: [email protected]
          Reporter: [email protected]
  Target Milestone: ---

(This is not a duplicate of 69160, which deals with proxy:unix:)

I run multiple FPM backends in a balancer like this (with more, and remote,
BalancerMembers, of course), as per mod_proxy_fcgi docs:

<VirtualHost *:80>
ServerName bugreport

LogLevel proxy_fcgi:trace8 proxy:trace8 rewrite:trace8 proxy_balancer:trace8

<Proxy "balancer://buggy">
    BalancerMember "fcgi://localhost:9083" route=localhost
    ProxySet stickysession=PHPROUTEID
</Proxy>

<FilesMatch ".+\.php$">
    SetHandler  "proxy:balancer://buggy"
</FilesMatch>

DocumentRoot /var/www/html/
<Directory /var/www/html/>
Require all granted
</Directory>

</VirtualHost>

and with the change from 2.4.59 to 2.4.60, the parsing of PATH_INFO seems to
have gone completely: for
http://bugreport/index.php/pathinfo, 
I now (2.4.60/61) get REQUEST_URI=SCRIPT_NAME=/index.php/pathinfo and
PATH_INFO=/var/www/html/index.php(!), 
before (2.4.59) REQUEST_URI=/index.php/pathinfo, SCRIPT_NAME=/index.php,
PATH_INFO=/pathinfo.
This of course breaks everything that looks at PATH_INFO.

High loglevel shows an additional 
"[proxy_balancer:trace1] mod_proxy_balancer.c(85): canonicalising URL
//buggy/var/www/html/index.php", 
and I suspect this is introduced via https://github.com/apache/httpd/pull/457
"Backport: mod_proxy: Fixup 
UDS filename for mod_proxy called through r->handler", but I'm not deep enough
into httpd internals to verify.

Any pointers?

Logs for one request each, with some irrelevant sending env vars removed:

not working (apache2 2.4.61)

[proxy_balancer:trace1] mod_proxy_balancer.c(85): [client X.X.X.X:34886]
canonicalising URL //buggy/var/www/html/index.php
[proxy:debug] proxy_util.c(1392): AH10122: proxy: Entering byrequests for
BALANCER (balancer://buggy)
[proxy:debug] proxy_util.c(1485): AH10123: proxy: byrequests selected worker
"fcgi://localhost:9083" : busy 0 : lbst
atus 100
[proxy_balancer:debug] mod_proxy_balancer.c(667): [client X.X.X.X:34886]
AH01172: balancer://buggy: worker (fcgi://localhost:9083) rewritten to
fcgi://localhost:9083/var/www/html/index.php
[proxy:debug] proxy_util.c(2251): AH00924: worker fcgi://localhost:9083 shared
already initialized
[proxy:debug] proxy_util.c(2327): AH00927: initializing worker
fcgi://localhost:9083 local
[proxy:debug] proxy_util.c(2358): AH00930: initialized pool in child 1041037
for (localhost:9083) min=0 max=61 smax=61
[proxy:debug] mod_proxy.c(1548): [client X.X.X.X:34886] AH01143: Running scheme
balancer handler (attempt 0)
[proxy_fcgi:debug] mod_proxy_fcgi.c(1078): [client X.X.X.X:34886] AH01076: url:
fcgi://localhost:9083/var/www/html/index.php proxyname: (null) proxyport: 0
[proxy_fcgi:debug] mod_proxy_fcgi.c(1087): [client X.X.X.X:34886] AH01078:
serving URL fcgi://localhost:9083/var/www/html/index.php
[proxy:debug] proxy_util.c(2689): AH00942: FCGI: has acquired connection for
(localhost:9083)
[proxy:debug] proxy_util.c(3134): [client X.X.X.X:34886] AH00944: connecting
fcgi://localhost:9083/var/www/html/index.php to localhost:9083
[proxy:debug] proxy_util.c(2797): [client X.X.X.X:34886] AH10479: fcgi:
localhost resolved to 127.0.0.1:9083
[proxy:debug] proxy_util.c(3342): [client X.X.X.X:34886] AH00947: connecting
/var/www/html/index.php to 127.0.0.1:9083 (localhost:9083)
[proxy:trace2] proxy_util.c(3791): FCGI: fam 2 socket created for
127.0.0.1:9083 (localhost:9083)
[proxy:debug] proxy_util.c(3848): AH02824: FCGI: connection established with
127.0.0.1:9083 (localhost:9083)
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'BALANCER_ROUTE_CHANGED' value '1'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'BALANCER_NAME' value 'balancer://buggy'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'BALANCER_WORKER_NAME' value 'fcgi://localhost:9083'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'BALANCER_WORKER_ROUTE' value 'localhost'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'DOCUMENT_ROOT' value '/var/www/html/'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'CONTEXT_PREFIX' value ''
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'CONTEXT_DOCUMENT_ROOT' value '/var/www/html/'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'SCRIPT_FILENAME' value '/var/www/html/index.php'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'REQUEST_URI' value '/index.php/pathinfo'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'SCRIPT_NAME' value '/index.php/pathinfo'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:34886] AH01062:
sending env var 'PATH_INFO' value '/var/www/html/index.php'

working (apache 2.4.59):

[proxy:debug] [pid 1247069:tid 140689922946624] proxy_util.c(1392): AH10122:
proxy: Entering byrequests for BALANCER (balancer://buggy)
[proxy:debug] proxy_util.c(1485): AH10123: proxy: byrequests selected worker
"fcgi://localhost:9083" : busy 0 : lbstatus 100
[proxy_balancer:debug] mod_proxy_balancer.c(667): [client X.X.X.X:53530]
AH01172: balancer://buggy: worker (fcgi://localhost:9083) rewritten to
fcgi://localhost:9083/var/www/html/index.php
[proxy:debug] proxy_util.c(2253): AH00924: worker fcgi://localhost:9083 shared
already initialized
[proxy:debug] proxy_util.c(2321): AH00926: worker fcgi://localhost:9083 local
already initialized
[proxy:debug] mod_proxy.c(1538): [client X.X.X.X:53530] AH01143: Running scheme
balancer handler (attempt 0)
[proxy_fcgi:debug] mod_proxy_fcgi.c(1078): [client X.X.X.X:53530] AH01076: url:
fcgi://localhost:9083/var/www/html/index.php proxyname: (null) proxyport: 0
[proxy_fcgi:debug] mod_proxy_fcgi.c(1087): [client X.X.X.X:53530] AH01078:
serving URL fcgi://localhost:9083/var/www/html/index.php
[proxy:debug] proxy_util.c(2684): AH00942: FCGI: has acquired connection for
(localhost:9083)
[proxy:debug] proxy_util.c(3086): [client X.X.X.X:53530] AH00944: connecting
fcgi://localhost:9083/var/www/html/index.php to localhost:9083
[proxy:debug] proxy_util.c(2792): [client X.X.X.X:53530] AH10479: fcgi:
localhost resolved to 127.0.0.1:9083
[proxy:debug] proxy_util.c(3294): [client X.X.X.X:53530] AH00947: connecting
/var/www/html/index.php to 127.0.0.1:9083 (localhost:9083)
[proxy:trace2] proxy_util.c(3743): FCGI: fam 2 socket created for
127.0.0.1:9083 (localhost:9083)
[proxy:debug] proxy_util.c(3800): AH02824: FCGI: connection established with
127.0.0.1:9083 (localhost:9083)
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'BALANCER_ROUTE_CHANGED' value '1'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'BALANCER_NAME' value 'balancer://buggy'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'BALANCER_WORKER_NAME' value 'fcgi://localhost:9083'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'BALANCER_WORKER_ROUTE' value 'localhost'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'DOCUMENT_ROOT' value '/var/www/html/'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'CONTEXT_PREFIX' value ''
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'CONTEXT_DOCUMENT_ROOT' value '/var/www/html/'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'SCRIPT_FILENAME' value '/var/www/html/index.php'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'REQUEST_URI' value '/index.php/pathinfo'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'SCRIPT_NAME' value '/index.php'
[proxy_fcgi:trace8] mod_proxy_fcgi.c(411): [client X.X.X.X:53530] AH01062:
sending env var 'PATH_INFO' value '/pathinfo'

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to