Re: problems benchmarking php-fpm/proxy_fcgi with h2load

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jan 19, 2018 at 5:14 PM, Yann Ylavic <ylavic.dev@xxxxxxxxx> wrote:
> On Fri, Jan 19, 2018 at 1:46 PM, Daniel <dferradal@xxxxxxxxx> wrote:
>> I vaguely recall some issue with reuse when using unix socket files so
>> it was deliberately set to off by default, but yes, perhaps someone
>> experienced enough with mod_proxy_fcgi inner workings can shed some
>> light on this and the why yes/not.
>>
>> With socket files I never tried to enable "enablereuse=on" and got
>> much successful results, so perhaps it's safer to keep it off until
>> someone clarifies this issue, after all when dealing with unix sockets
>> the access delays are quite low.
>
> {en,dis}ablereuse has no effect on Unix Domain Sockets in mod_proxy,
> they are never reused.

Well, actually it shouldn't, but while the code clearly doesn't reuse
sockets (creates a new one for each request), nothing seems to tell
the recycler that it should close them unconditionally at the end of
the request.

So there may be a (fd) leak here, which could explain why it does not
work after a while...

I'm thinking of something like this:

Index: modules/proxy/proxy_util.c
===================================================================
--- modules/proxy/proxy_util.c    (revision 1821662)
+++ modules/proxy/proxy_util.c    (working copy)
@@ -2756,6 +2756,8 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const
 #if APR_HAVE_SYS_UN_H
         if (conn->uds_path)
         {
+            conn->close = 1; /* UDS sockets are not recycled */
+
             rv = apr_socket_create(&newsock, AF_UNIX, SOCK_STREAM, 0,
                                    conn->scpool);
             if (rv != APR_SUCCESS) {
@@ -2767,7 +2769,6 @@ PROXY_DECLARE(int) ap_proxy_connect_backend(const
                              worker->s->hostname);
                 break;
             }
-            conn->connection = NULL;

             rv = ap_proxy_connect_uds(newsock, conn->uds_path, conn->scpool);
             if (rv != APR_SUCCESS) {
_


Regards,
Yann.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx




[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux