Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:101896 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 93130 invoked from network); 21 Feb 2018 09:46:01 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 21 Feb 2018 09:46:01 -0000 Authentication-Results: pb1.pair.com smtp.mail=mike.php.net@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=mike.php.net@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.128.174 as permitted sender) X-PHP-List-Original-Sender: mike.php.net@gmail.com X-Host-Fingerprint: 209.85.128.174 mail-wr0-f174.google.com Received: from [209.85.128.174] ([209.85.128.174:42706] helo=mail-wr0-f174.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id AB/5B-22623-8DF3D8A5 for ; Wed, 21 Feb 2018 04:46:00 -0500 Received: by mail-wr0-f174.google.com with SMTP id k9so2588897wre.9 for ; Wed, 21 Feb 2018 01:45:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:subject:to:references:from:message-id:date:user-agent :mime-version:in-reply-to; bh=Gcs8WMbhUfRJjWncrvSBb779MKkwXv7m1u24DEMRRE8=; b=ua40o6QkDKxw2VGPzMRyTwLOT26sZp1pHgrPM2ACkx+KfzpnFFAOWa75Lj2XT23DYV 9SMFkZL9ZOWN4WKXEz3Smf6FI/URPKTrlZZpWWI1KvThML2O+G1QbYSNEOMSUBpBJ7t0 P8sF54SZ3K2XCGQI24X7kjOh21SQbYfU2QwVcSNpV4Q5fr3/vZi+Bs1F3vkXmwf9jehZ rmeYyfudIuAq0KaC6DiBjhvhd02cWx3gVlyKnpQVngT0MJjO5PUA6TAwIM2NlA84FD7F f1+74cHB2bv2VZztMPCKN2m/MPakwlYYq4sh2vPDmLxWzSOg1s/Hct7ziFfJHY6FZxoY j1nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:subject:to:references:from:message-id :date:user-agent:mime-version:in-reply-to; bh=Gcs8WMbhUfRJjWncrvSBb779MKkwXv7m1u24DEMRRE8=; b=cUtKRSOR/QIvEOQs0Tj6yOwakvL4qK6MXzDiwKluoUQo8AROf45nXe2RkMy+JmwPbs GfSw845pEQjjeERqPSi5HqsW8Mr/zCzD2PR1fsKDgDgijykjTOC9+g2g+iFCYpR3o20z TzdLiAWQpqJJ+RdQwNecMmWCq2pn0B8XdZPtjit4z3YTNJ+64L44zNDsTeozXaQOGFqe 2twoaSIKZRni6r6akBXZItxFva8Koe/lxvw2y0zaLCqO1P5YlFwOMGVIhfV2f6OgFa02 zGcKeA1gyGGM3yOR1Yak1JfdtbHrEe9q/ec8Wp5mDcRdwZpJDG03S2b/G7ZtA1fR6ZpN lrvA== X-Gm-Message-State: APf1xPCGoUzyvB6ipjlYlZypOdczZjDXt+rZd8weawm05a+/agp3DlhA RaVaoPbqDKGJg0wPZGV4nBAcRyvI X-Google-Smtp-Source: AH8x226r7nIeYD7jbyqK970nGmU9JBo5E/+QxZmRKJ4VxlWNeujNIY1SdJEro1Iz2QirDmCaJXM8XQ== X-Received: by 10.80.227.203 with SMTP id c11mr4037369edm.195.1519206356586; Wed, 21 Feb 2018 01:45:56 -0800 (PST) Received: from [192.168.2.11] (89-104-28-113.customer.bnet.at. [89.104.28.113]) by smtp.googlemail.com with ESMTPSA id g31sm716596edd.44.2018.02.21.01.45.55 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 21 Feb 2018 01:45:55 -0800 (PST) Sender: Michael Wallner To: internals@lists.php.net References: <861e4190-1cb8-eeb6-740a-45485192034a@gmail.com> <812f29bf-ab37-f696-65af-117087d46413@fedoraproject.org> Message-ID: <0009a5e4-eb90-01dc-3d8b-b39edd2f5164@php.net> Date: Wed, 21 Feb 2018 10:45:54 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <812f29bf-ab37-f696-65af-117087d46413@fedoraproject.org> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="WL5DCg9jY5owCJqUomWCiqDKaM4uIwjTj" Subject: Re: [PHP-DEV] FPM maintainership? From: mike@php.net (Michael Wallner) --WL5DCg9jY5owCJqUomWCiqDKaM4uIwjTj Content-Type: multipart/mixed; boundary="Orxg1uHMpHAB8Q3fvoY0lvmJrFoNCaBhd"; protected-headers="v1" From: Michael Wallner To: internals@lists.php.net Message-ID: <0009a5e4-eb90-01dc-3d8b-b39edd2f5164@php.net> Subject: Re: [PHP-DEV] FPM maintainership? References: <861e4190-1cb8-eeb6-740a-45485192034a@gmail.com> <812f29bf-ab37-f696-65af-117087d46413@fedoraproject.org> In-Reply-To: <812f29bf-ab37-f696-65af-117087d46413@fedoraproject.org> --Orxg1uHMpHAB8Q3fvoY0lvmJrFoNCaBhd Content-Type: multipart/mixed; boundary="------------9DDE3343AC53A26699555A54" Content-Language: en-GB This is a multi-part message in MIME format. --------------9DDE3343AC53A26699555A54 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 21/02/18 10:29, Remi Collet wrote: > Hi, >=20 > Le 21/02/2018 =C3=A0 10:21, Michael Wallner a =C3=A9crit=C2=A0: >> I also have a patch I'd like to discuss with the new maintainers, whic= h >> attempts to fix FPM's SIGUSR2 graceful restart behaviour, and which >> we've been running for half a year now IIRC. >=20 > Any link to the patch ? Sure, attached! --=20 Regards, Mike --------------9DDE3343AC53A26699555A54 Content-Type: text/x-patch; name="fpm-graceful.diff" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="fpm-graceful.diff" commit 08754dba5a87128bd7182bb2146ff64036fecaa1 Author: Michael Wallner Date: Wed Mar 15 08:43:04 2017 +0100 php-fpm: graceful restart without losing requests diff --git a/sapi/fpm/fpm/fpm_process_ctl.c b/sapi/fpm/fpm/fpm_process_ct= l.c index ca5a6f2e40..72985699aa 100644 --- a/sapi/fpm/fpm/fpm_process_ctl.c +++ b/sapi/fpm/fpm/fpm_process_ctl.c @@ -80,6 +80,16 @@ static void fpm_pctl_exit() /* {{{ */ static void fpm_pctl_exec() /* {{{ */ { =20 + switch (fork()) { + case 0: + break; + case -1: + zlog(ZLOG_SYSERROR, "failed to reload: fork() failed"); + /* no break */ + default: + fpm_global_config.pid_file =3D NULL; + return; + } zlog(ZLOG_NOTICE, "reloading: execvp(\"%s\", {\"%s\"" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" @@ -108,9 +118,8 @@ static void fpm_pctl_action_last() /* {{{ */ { switch (fpm_state) { case FPM_PCTL_STATE_RELOADING: - fpm_pctl_exec(); - break; - + zlog(ZLOG_NOTICE, "exiting after reload"); + exit(FPM_EXIT_OK); case FPM_PCTL_STATE_FINISHING: case FPM_PCTL_STATE_TERMINATING: fpm_pctl_exit(); @@ -197,6 +206,10 @@ static void fpm_pctl_action_next() /* {{{ */ fpm_pctl_kill_all(sig); fpm_signal_sent =3D sig; fpm_pctl_timeout_set(timeout); + + if (fpm_signal_sent =3D=3D SIGQUIT && fpm_state =3D=3D FPM_PCTL_STATE_R= ELOADING) { + fpm_pctl_exec(); + } } /* }}} */ =20 diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c index d58a8f82b6..5016914395 100644 --- a/sapi/fpm/fpm/fpm_sockets.c +++ b/sapi/fpm/fpm/fpm_sockets.c @@ -60,7 +60,17 @@ static void fpm_sockets_cleanup(int which, void *arg) = /* {{{ */ =20 if (which =3D=3D FPM_CLEANUP_PARENT_EXIT_MAIN) { if (ls->type =3D=3D FPM_AF_UNIX) { - unlink(ls->key); + struct sockaddr_un sa_un; + + memset(&sa_un, 0, sizeof(sa_un)); + strlcpy(sa_un.sun_path, ls->key, sizeof(sa_un.sun_path)); + sa_un.sun_family =3D AF_UNIX; + + if (fpm_socket_unix_test_connect(&sa_un, sizeof(sa_un)) =3D=3D 0) { + zlog(ZLOG_WARNING, "Keeping unix socket, another FPM instance seems= to already listen on %s", ls->key); + } else { + unlink(ls->key); + } } } free(ls->key); --------------9DDE3343AC53A26699555A54-- --Orxg1uHMpHAB8Q3fvoY0lvmJrFoNCaBhd-- --WL5DCg9jY5owCJqUomWCiqDKaM4uIwjTj Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQEzBAEBCgAdFiEEHsPHHd1jWDGjN9aESA4+FLCkx8cFAlqNP9MACgkQSA4+FLCk x8cg3gf9EobvA9CwO9IM4IgGWpzkr5yqHa3+QmNZ6/lR+gVGu/Yy4pUVfk67GuaE z9zVomfuf1z4nna5nuMeQZr2099kOMhEMJ9D8jjmt3+xeHSPKRSAcplhb+xzJq8p bJtBDHXTb5Hyz3o+wuHGgvNg1qENeFNNXgYGCVhSnj4FUmqFDgqXUbjQwAsFTInC M2OZzThLiGFdWTFKK44F5LQMD+u7qs9/Vx9vM+NMOwaqwJ0sDCmn++wblsLVyvXa BnvFouHwL7ISIOIAFeADQV23JS+tvuhaWJIgKKdgbA4/sSnaG3GDX5Y2Z04GXLYP Sta5QedpPW3zE/ZWTPEmzz3VZwh7Xw== =0BYY -----END PGP SIGNATURE----- --WL5DCg9jY5owCJqUomWCiqDKaM4uIwjTj--