Edit report at https://bugs.php.net/bug.php?id=60891&edit=1
ID: 60891
Comment by: jasper at nerdsweide dot nl
Reported by: erno dot kovacs at freemail dot hu
Summary: FPM status serving should be moved to the master
process
Status: Feedback
Type: Bug
Package: FPM related
Operating System: Any
PHP Version: 5.3.9
Assigned To: fat
Block user comment: N
Private report: N
New Comment:
Sounds good! I'm looking forward to these features.
> ... and there should be some missing free()
This means there is a memory-leak right?
Previous Comments:
------------------------------------------------------------------------
[2012-05-28 23:27:47] [email protected]
Here is the first revision of the patch (it needs some verifications and there
should be some missing free(), but it works
on my side). It can be applied on the last 5.3 snapshot (not sure it will
applies correctly on older version/revision).
Here's what's new:
- new FPM configuration item for pool: pm.status_allow which is unset by
default. Add the names of the other pool you want
to access from this pool (use a comma (,) as a separator). If one of the
element is the char '*', then all pool are
available from this pool status page
- call the status page of this pool adding a pool=xxx in the query string and
there it's supposed to work
Exemple: for having a dedicated pool which only respond to the /status page and
permit to see all pools status : add the
following pool to your php-fpm.conf
[status]
listen=/tmp/status.sock
user = nobody ;use a low privilege user, nothing is needed here
group = nogroup
pm = ondemand
pm.max_children = 1 ;set a higher value if you need parallal requesting to the
status page
pm.status_path = /status
pm.status_allow = * ; allow to see all pool status
chroot = /var/empty ; chroot to un empty directory for security reason
security.limit_extensions = .nonexistantextesionxxxxx ; limit to only one
neverused extension
it'll only respond to the /status page (because of the pseudo random
security.limit_extensions) and it's possible to see all
pool status page:
http://xxx/status?pool=pool1
http://xxx/status?pool=pool2&full
http://xxx/status?pool=pool3&json&full
Waiting to here from you on this.
++ fat
------------------------------------------------------------------------
[2012-05-28 23:08:16] [email protected]
The following patch has been added/updated:
Patch Name: bug60891-v1.patch
Revision: 1338246496
URL:
https://bugs.php.net/patch-display.php?bug=60891&patch=bug60891-v1.patch&revision=1338246496
------------------------------------------------------------------------
[2012-01-26 14:57:22] ml at fatbsd dot com
for security reason and by design it's not possible to make the master process
to
listen to those requests.
The only possibility is to fork another process only to handle this. And this
is
quite a a big change. It's on my todo list but no ETA yet.
++ fat
------------------------------------------------------------------------
[2012-01-26 13:08:01] erno dot kovacs at freemail dot hu
Description:
------------
When the server is overloaded, you cant query the FPM status page, however it
should be its primary goal: being able to check whats going on. This way this
cool feature is pointless.
Test script:
---------------
fpm conf:
pm = dynamic
pm.max_children = 1
pm.start_servers = 1
pm.min_spare_servers = 1
pm.max_spare_servers = 1
test script:
<?
sleep(60);
?>
And while the only worker process is sleeping, send a query to the status page.
It wont be served.
Expected result:
----------------
Status page.
Actual result:
--------------
Hanging
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=60891&edit=1