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]