[17152] in Kerberos_V5_Development

home help back first fref pref prev next nref lref last post

Re: [RFC][PATCH] krb5 => libverto main loop

daemon@ATHENA.MIT.EDU (Nathaniel McCallum)
Fri Sep 9 23:35:31 2011

Date: Fri, 9 Sep 2011 16:57:47 -0400 (EDT)
From: Nathaniel McCallum <nmccallu@redhat.com>
To: krbdev@mit.edu
Message-ID: <743336146.1631631.1315601867611.JavaMail.root@zmail02.collab.prod.int.phx2.redhat.com>
In-Reply-To: <201109080518.p885IhsT005061@outgoing.mit.edu>
MIME-Version: 1.0
Content-Type: multipart/mixed; 
	boundary="----=_Part_1631630_692319256.1315601867609"
Errors-To: krbdev-bounces@mit.edu

------=_Part_1631630_692319256.1315601867609
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit

Attached is a series of patches to deal with these issues. They will require verto from git (where I added verto_reinitialize() and the VERTO_EV_FLAG_REINITIABLE flag). Basically this makes verto handle the fork well. Only the UDP, TCP Listener and RPC Lisener sockets are carried through the fork. Lastly, if the server is going to spawn worker processes, the setup of signal handlers is delayed until post-fork. We then are able to move the forwarder signal handlers to exist before the fork. I believe that this should solve all the issues listed below.

Nathaniel

----- Original Message -----
From: ghudson@MIT.EDU
To: krbdev@MIT.EDU
Sent: Thursday, September 8, 2011 1:18:43 AM
Subject: Re: [RFC][PATCH] krb5 => libverto main loop

I found two more issues with this patch, unfortunately only after it
was committed to the trunk and put through our nightly build system.
Both issues pertain to the KDC worker process feature.

1. The KDC sets up the main loop state (inside libev or whatever) at
the same time as it binds listener sockets.  Then it forks multiple
child processes, each of which execute the main loop.  This assumes
that event libraries are fork-safe, which is a very dangerous
assumption.  For instance, libev is not fork-safe unless you tell it
to be.  Otherwise, signal delivery becomes unreliable because signals
result in a write to a duplicated pipe, and the read can occur in a
different child from the one the signal was sent to.  There are
basically two options to address this:

* Make fork safety a verto reqtype.  Inventory the event libraries for
  which ones support fork safety, and make sure to ask for it when
  requested if the back end needs to be asked.

* Major additional surgery on net-server.c.  Listener sockets have to
  be created in one step and remembered in a list, and then the main
  loop needs to be set up independently after child processes are
  forked.

2. There is a race condition where the monitor process isn't ready to
handle termination signals when the workers report "starting...".
This is mostly an issue for the test suite (t_workers.py), not a
practical issue, but we do need the test suite to work.  If the major
surgery for (1) is done, we can set the internal signal handler before
forking, and then replace it with the event loop signal handler when
the child process sets up its event loop.
------=_Part_1631630_692319256.1315601867609
Content-Type: text/x-patch;
	name=0001-reinitialize-verto-after-the-fork-make-the-proper-so.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=0001-reinitialize-verto-after-the-fork-make-the-proper-so.patch

RnJvbSA4MzU3NDQyOTY4NzBmOGVkNThkMGM0MDFjODE2MWIzOTRhYmJjYThjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW5pZWwgTWNDYWxsdW0gPG5wbWNjYWxsdW1AcmVkaGF0
LmNvbT4KRGF0ZTogRnJpLCA5IFNlcCAyMDExIDE2OjI2OjU2IC0wNDAwClN1YmplY3Q6IFtQQVRD
SCAxLzNdIHJlaW5pdGlhbGl6ZSB2ZXJ0byBhZnRlciB0aGUgZm9yazsgbWFrZSB0aGUgcHJvcGVy
CiBzb2NrZXRzIHN1cnZpdmUgdGhlIHJlaW5pdAoKLS0tCiBzcmMva2RjL21haW4uYyAgICAgICAg
ICAgICAgICB8ICAgIDIgKysKIHNyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jIHwgICAxMiAr
KysrKysrKystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMva2RjL21haW4uYyBiL3NyYy9rZGMvbWFpbi5jCmluZGV4
IDk3OWMyMTcuLmM5NzhhNzcgMTAwNjQ0Ci0tLSBhL3NyYy9rZGMvbWFpbi5jCisrKyBiL3NyYy9r
ZGMvbWFpbi5jCkBAIC01NTAsNiArNTUwLDggQEAgY3JlYXRlX3dvcmtlcnModmVydG9fY3R4ICpj
dHgsIGludCBudW0pCiAgICAgZm9yIChpID0gMDsgaSA8IG51bTsgaSsrKSB7CiAgICAgICAgIHBp
ZCA9IGZvcmsoKTsKICAgICAgICAgaWYgKHBpZCA9PSAwKSB7CisgICAgICAgICAgICB2ZXJ0b19y
ZWluaXRpYWxpemUoY3R4KTsKKwogICAgICAgICAgICAgLyogUmV0dXJuIGNvbnRyb2wgdG8gbWFp
bigpIGluIHRoZSBuZXcgd29ya2VyIHByb2Nlc3MuICovCiAgICAgICAgICAgICBmcmVlKHBpZHMp
OwogICAgICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9zcmMvbGliL2FwcHV0aWxzL25l
dC1zZXJ2ZXIuYyBiL3NyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jCmluZGV4IGZjNmQ2ZTcu
LjU0NmVkNzYgMTAwNjQ0Ci0tLSBhL3NyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jCisrKyBi
L3NyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jCkBAIC01ODAsNyArNTgwLDkgQEAgc3RhdGlj
IHZlcnRvX2V2ICoKIGFkZF91ZHBfZmQoc3RydWN0IHNvY2tzZXR1cCAqZGF0YSwgaW50IHNvY2ss
IGludCBwa3RpbmZvKQogewogICAgIHJldHVybiBhZGRfZmQoZGF0YSwgc29jaywgcGt0aW5mbyA/
IENPTk5fVURQX1BLVElORk8gOiBDT05OX1VEUCwKLSAgICAgICAgICAgICAgICAgIFZFUlRPX0VW
X0ZMQUdfSU9fUkVBRCB8IFZFUlRPX0VWX0ZMQUdfUEVSU0lTVCwKKyAgICAgICAgICAgICAgICAg
IFZFUlRPX0VWX0ZMQUdfSU9fUkVBRCB8CisgICAgICAgICAgICAgICAgICBWRVJUT19FVl9GTEFH
X1BFUlNJU1QgfAorICAgICAgICAgICAgICAgICAgVkVSVE9fRVZfRkxBR19SRUlOSVRJQUJMRSwK
ICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfcGFja2V0LCAxKTsKIH0KIApAQCAtNTg4LDcgKzU5
MCw5IEBAIHN0YXRpYyB2ZXJ0b19ldiAqCiBhZGRfdGNwX2xpc3RlbmVyX2ZkKHN0cnVjdCBzb2Nr
c2V0dXAgKmRhdGEsIGludCBzb2NrKQogewogICAgIHJldHVybiBhZGRfZmQoZGF0YSwgc29jaywg
Q09OTl9UQ1BfTElTVEVORVIsCi0gICAgICAgICAgICAgICAgICBWRVJUT19FVl9GTEFHX0lPX1JF
QUQgfCBWRVJUT19FVl9GTEFHX1BFUlNJU1QsCisgICAgICAgICAgICAgICAgICBWRVJUT19FVl9G
TEFHX0lPX1JFQUQgfAorICAgICAgICAgICAgICAgICAgVkVSVE9fRVZfRkxBR19QRVJTSVNUIHwK
KyAgICAgICAgICAgICAgICAgIFZFUlRPX0VWX0ZMQUdfUkVJTklUSUFCTEUsCiAgICAgICAgICAg
ICAgICAgICBhY2NlcHRfdGNwX2Nvbm5lY3Rpb24sIDEpOwogfQogCkBAIC02NjYsNyArNjcwLDkg
QEAgYWRkX3JwY19saXN0ZW5lcl9mZChzdHJ1Y3Qgc29ja3NldHVwICpkYXRhLCBzdHJ1Y3QgcnBj
X3N2Y19kYXRhICpzdmMsIGludCBzb2NrKQogICAgIHZlcnRvX2V2ICpldjsKIAogICAgIGV2ID0g
YWRkX2ZkKGRhdGEsIHNvY2ssIENPTk5fUlBDX0xJU1RFTkVSLAotICAgICAgICAgICAgICAgIFZF
UlRPX0VWX0ZMQUdfSU9fUkVBRCB8IFZFUlRPX0VWX0ZMQUdfUEVSU0lTVCwKKyAgICAgICAgICAg
ICAgICBWRVJUT19FVl9GTEFHX0lPX1JFQUQgfAorICAgICAgICAgICAgICAgIFZFUlRPX0VWX0ZM
QUdfUEVSU0lTVCB8CisgICAgICAgICAgICAgICAgVkVSVE9fRVZfRkxBR19SRUlOSVRJQUJMRSwK
ICAgICAgICAgICAgICAgICBhY2NlcHRfcnBjX2Nvbm5lY3Rpb24sIDEpOwogICAgIGlmIChldiA9
PSBOVUxMKQogICAgICAgICByZXR1cm4gTlVMTDsKLS0gCjEuNy42LjIKCg==
------=_Part_1631630_692319256.1315601867609
Content-Type: text/x-patch;
	name=0002-split-out-signal-event-setup-from-loop_init-into-loo.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=0002-split-out-signal-event-setup-from-loop_init-into-loo.patch

RnJvbSBjMzIzOTkwY2E0YjFhMDMxMjI3YzY3NzkxOWE2YmIxYzcxZTdjODY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW5pZWwgTWNDYWxsdW0gPG5wbWNjYWxsdW1AcmVkaGF0
LmNvbT4KRGF0ZTogRnJpLCA5IFNlcCAyMDExIDE2OjQ5OjM1IC0wNDAwClN1YmplY3Q6IFtQQVRD
SCAyLzNdIHNwbGl0IG91dCBzaWduYWwgZXZlbnQgc2V0dXAgZnJvbSBsb29wX2luaXQoKSBpbnRv
CiBsb29wX3NldHVwX3NpZ25hbHMoKQoKLS0tCiBzcmMvaW5jbHVkZS9uZXQtc2VydmVyLmggICAg
ICAgIHwgICAgNCArKystCiBzcmMva2FkbWluL3NlcnZlci9vdnNlY19rYWRtZC5jIHwgICAxNCAr
KysrKysrKysrKysrLQogc3JjL2tkYy9tYWluLmMgICAgICAgICAgICAgICAgICB8ICAgMTQgKysr
KysrKysrKysrKy0KIHNyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jICAgfCAgIDM3ICsrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0KIDQgZmlsZXMgY2hhbmdlZCwgNDkgaW5z
ZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbmV0
LXNlcnZlci5oIGIvc3JjL2luY2x1ZGUvbmV0LXNlcnZlci5oCmluZGV4IGI4NDE0YTEuLjY2YmVk
ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25ldC1zZXJ2ZXIuaAorKysgYi9zcmMvaW5jbHVk
ZS9uZXQtc2VydmVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX2tyYjVfZnVs
bGFkZHIgewogdm9pZCBpbml0X2FkZHIoa3JiNV9mdWxsYWRkciAqLCBzdHJ1Y3Qgc29ja2FkZHIg
Kik7CiAKIC8qIGV4cG9ydGVkIGZyb20gbmV0LXNlcnZlci5jICovCi12ZXJ0b19jdHggKmxvb3Bf
aW5pdCh2ZXJ0b19ldl90eXBlIHR5cGVzLCB2b2lkICpoYW5kbGUsIHZvaWQgKCpyZXNldCkoKSk7
Cit2ZXJ0b19jdHggKmxvb3BfaW5pdCh2ZXJ0b19ldl90eXBlIHR5cGVzKTsKIGtyYjVfZXJyb3Jf
Y29kZSBsb29wX2FkZF91ZHBfcG9ydChpbnQgcG9ydCk7CiBrcmI1X2Vycm9yX2NvZGUgbG9vcF9h
ZGRfdGNwX3BvcnQoaW50IHBvcnQpOwoga3JiNV9lcnJvcl9jb2RlIGxvb3BfYWRkX3JwY19zZXJ2
aWNlKGludCBwb3J0LCB1X2xvbmcgcHJvZ251bSwgdV9sb25nIHZlcnNudW0sCkBAIC00OSw2ICs0
OSw4IEBAIGtyYjVfZXJyb3JfY29kZSBsb29wX3NldHVwX3JvdXRpbmdfc29ja2V0KHZlcnRvX2N0
eCAqY3R4LCB2b2lkICpoYW5kbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBjaGFyICpwcm9nbmFtZSk7CiBrcmI1X2Vycm9yX2NvZGUgbG9vcF9zZXR1
cF9uZXR3b3JrKHZlcnRvX2N0eCAqY3R4LCB2b2lkICpoYW5kbGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKnByb2duYW1lKTsKK2tyYjVfZXJyb3JfY29k
ZSBsb29wX3NldHVwX3NpZ25hbHModmVydG9fY3R4ICpjdHgsIHZvaWQgKmhhbmRsZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCAoKnJlc2V0KSgpKTsKIHZvaWQgbG9v
cF9mcmVlKHZlcnRvX2N0eCAqY3R4KTsKIAogLyogdG8gYmUgc3VwcGxpZWQgYnkgdGhlIHNlcnZl
ciBhcHBsaWNhdGlvbiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2thZG1pbi9zZXJ2ZXIvb3ZzZWNfa2Fk
bWQuYyBiL3NyYy9rYWRtaW4vc2VydmVyL292c2VjX2thZG1kLmMKaW5kZXggZmFjNWNjZC4uNjNk
MTc4NyAxMDA2NDQKLS0tIGEvc3JjL2thZG1pbi9zZXJ2ZXIvb3ZzZWNfa2FkbWQuYworKysgYi9z
cmMva2FkbWluL3NlcnZlci9vdnNlY19rYWRtZC5jCkBAIC0zNTcsNyArMzU3LDcgQEAgaW50IG1h
aW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKICAgICAgICAgZXhpdCgxKTsKICAgICB9CiAKLSAg
ICBjdHggPSBsb29wX2luaXQoVkVSVE9fRVZfVFlQRV9TSUdOQUwsIGdsb2JhbF9zZXJ2ZXJfaGFu
ZGxlLCBOVUxMKTsKKyAgICBjdHggPSBsb29wX2luaXQoVkVSVE9fRVZfVFlQRV9TSUdOQUwpOwog
ICAgIGlmICghY3R4KSB7CiAgICAgICAgIGtyYjVfa2xvZ19zeXNsb2coTE9HX0VSUiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBfKCIlczogY291bGQgbm90IGluaXRpYWxpemUgbG9vcCwgYWJv
cnRpbmciKSwKQEAgLTM2OSw2ICszNjksMTggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy
Z3ZbXSkKICAgICAgICAgZXhpdCgxKTsKICAgICB9CiAKKyAgICBpZiAoKHJldCA9IGxvb3Bfc2V0
dXBfc2lnbmFscyhjdHgsIGdsb2JhbF9zZXJ2ZXJfaGFuZGxlLCBOVUxMKSkpIHsKKyAgICAgICAg
Y29uc3QgY2hhciAqZV90eHQgPSBrcmI1X2dldF9lcnJvcl9tZXNzYWdlIChjb250ZXh0LCByZXQp
OworICAgICAgICBrcmI1X2tsb2dfc3lzbG9nKExPR19FUlIsIF8oIiVzOiAlcyB3aGlsZSBpbml0
aWFsaXppbmcgc2lnbmFsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJo
YW5kbGVycywgYWJvcnRpbmciKSwgd2hvYW1pLCBlX3R4dCk7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCBfKCIlczogJXMgd2hpbGUgaW5pdGlhbGl6aW5nIHNpZ25hbCAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICJoYW5kbGVycywgYWJvcnRpbmdcbiIpLCB3aG9hbWksIGVfdHh0KTsKKyAg
ICAgICAgbG9vcF9mcmVlKGN0eCk7CisgICAgICAgIGthZG01X2Rlc3Ryb3koZ2xvYmFsX3NlcnZl
cl9oYW5kbGUpOworICAgICAgICBrcmI1X2tsb2dfY2xvc2UoY29udGV4dCk7CisgICAgICAgIGV4
aXQoMSk7CisgICAgfQorCiAjZGVmaW5lIHNlcnZlcl9oYW5kbGUgKChrYWRtNV9zZXJ2ZXJfaGFu
ZGxlX3QpZ2xvYmFsX3NlcnZlcl9oYW5kbGUpCiAgICAgaWYgKChyZXQgPSBsb29wX2FkZF91ZHBf
cG9ydChzZXJ2ZXJfaGFuZGxlLT5wYXJhbXMua3Bhc3N3ZF9wb3J0KSkKICAgICAgICAgfHwgKHJl
dCA9IGxvb3BfYWRkX3RjcF9wb3J0KHNlcnZlcl9oYW5kbGUtPnBhcmFtcy5rcGFzc3dkX3BvcnQp
KQpkaWZmIC0tZ2l0IGEvc3JjL2tkYy9tYWluLmMgYi9zcmMva2RjL21haW4uYwppbmRleCBjOTc4
YTc3Li4wODc4ZmU2IDEwMDY0NAotLS0gYS9zcmMva2RjL21haW4uYworKysgYi9zcmMva2RjL21h
aW4uYwpAQCAtNTUxLDYgKzU1MSwxMiBAQCBjcmVhdGVfd29ya2Vycyh2ZXJ0b19jdHggKmN0eCwg
aW50IG51bSkKICAgICAgICAgcGlkID0gZm9yaygpOwogICAgICAgICBpZiAocGlkID09IDApIHsK
ICAgICAgICAgICAgIHZlcnRvX3JlaW5pdGlhbGl6ZShjdHgpOworICAgICAgICAgICAgcmV0dmFs
ID0gbG9vcF9zZXR1cF9zaWduYWxzKGN0eCwgTlVMTCwgcmVzZXRfZm9yX2hhbmd1cCk7CisgICAg
ICAgICAgICBpZiAocmV0dmFsKSB7CisgICAgICAgICAgICAgICAga3JiNV9rbG9nX3N5c2xvZyhM
T0dfRVJSLCBfKCJVbmFibGUgdG8gaW5pdGlhbGl6ZSBzaWduYWwgIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaGFuZGxlcnMgaW4gcGlkICVkIiksIHBpZCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHJldHZhbDsKKyAgICAgICAgICAgIH0KIAogICAgICAg
ICAgICAgLyogUmV0dXJuIGNvbnRyb2wgdG8gbWFpbigpIGluIHRoZSBuZXcgd29ya2VyIHByb2Nl
c3MuICovCiAgICAgICAgICAgICBmcmVlKHBpZHMpOwpAQCAtOTg0LDcgKzk5MCw3IEBAIGludCBt
YWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICAgKi8KICAgICBpbml0aWFsaXplX3JlYWxt
cyhrY29udGV4dCwgYXJnYywgYXJndik7CiAKLSAgICBjdHggPSBsb29wX2luaXQoVkVSVE9fRVZf
VFlQRV9OT05FLCBOVUxMLCByZXNldF9mb3JfaGFuZ3VwKTsKKyAgICBjdHggPSBsb29wX2luaXQo
VkVSVE9fRVZfVFlQRV9OT05FKTsKICAgICBpZiAoIWN0eCkgewogICAgICAgICBrZGNfZXJyKGtj
b250ZXh0LCBFTk9NRU0sIF8oIndoaWxlIGNyZWF0aW5nIG1haW4gbG9vcCIpKTsKICAgICAgICAg
ZmluaXNoX3JlYWxtcygpOwpAQCAtMTA0Niw2ICsxMDUyLDEyIEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyICoqYXJndikKICAgICAgICAgICAgIGZpbmlzaF9yZWFsbXMoKTsKICAgICAgICAgICAg
IHJldHVybiAxOwogICAgICAgICB9CisgICAgICAgIHJldHZhbCA9IGxvb3Bfc2V0dXBfc2lnbmFs
cyhjdHgsIE5VTEwsIHJlc2V0X2Zvcl9oYW5ndXApOworICAgICAgICBpZiAocmV0dmFsKSB7Cisg
ICAgICAgICAgICBrZGNfZXJyKGtjb250ZXh0LCByZXR2YWwsIF8oIndoaWxlIGluaXRpYWxpemlu
ZyBzaWduYWwgaGFuZGxlcnMiKSk7CisgICAgICAgICAgICBmaW5pc2hfcmVhbG1zKCk7CisgICAg
ICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgfQogICAgIH0KICAgICBpZiAoKHJldHZhbCA9IGxv
b3Bfc2V0dXBfbmV0d29yayhjdHgsIE5VTEwsIGtkY19wcm9nbmFtZSkpKSB7CiAgICAgbmV0X2lu
aXRfZXJyb3I6CmRpZmYgLS1naXQgYS9zcmMvbGliL2FwcHV0aWxzL25ldC1zZXJ2ZXIuYyBiL3Ny
Yy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jCmluZGV4IDU0NmVkNzYuLmExNzFmYmQgMTAwNjQ0
Ci0tLSBhL3NyYy9saWIvYXBwdXRpbHMvbmV0LXNlcnZlci5jCisrKyBiL3NyYy9saWIvYXBwdXRp
bHMvbmV0LXNlcnZlci5jCkBAIC0yNzAsNiArMjcwLDIwIEBAIHN0YXRpYyBTRVQodW5zaWduZWQg
c2hvcnQpIHVkcF9wb3J0X2RhdGEsIHRjcF9wb3J0X2RhdGE7CiBzdGF0aWMgU0VUKHN0cnVjdCBy
cGNfc3ZjX2RhdGEpIHJwY19zdmNfZGF0YTsKIHN0YXRpYyBTRVQodmVydG9fZXYgKikgZXZlbnRz
OwogCit2ZXJ0b19jdHggKgorbG9vcF9pbml0KHZlcnRvX2V2X3R5cGUgdHlwZXMpCit7CisgICAg
dHlwZXMgfD0gVkVSVE9fRVZfVFlQRV9JTzsKKyAgICB0eXBlcyB8PSBWRVJUT19FVl9UWVBFX1NJ
R05BTDsKKyAgICB0eXBlcyB8PSBWRVJUT19FVl9UWVBFX1RJTUVPVVQ7CisKKyNpZmRlZiBJTlRF
Uk5BTF9WRVJUTworICAgIHJldHVybiB2ZXJ0b19kZWZhdWx0X2s1ZXYoKTsKKyNlbHNlCisgICAg
cmV0dXJuIHZlcnRvX2RlZmF1bHQoTlVMTCwgdHlwZXMpOworI2VuZGlmCit9CisKIHN0YXRpYyB2
b2lkCiBkb19icmVhayh2ZXJ0b19jdHggKmN0eCwgdmVydG9fZXYgKmV2KQogewpAQCAtMjk5LDIx
ICszMTMsMTIgQEAgZnJlZV9zaWdodXBfY29udGV4dCh2ZXJ0b19jdHggKmN0eCwgdmVydG9fZXYg
KmV2KQogICAgIGZyZWUodmVydG9fZ2V0X3ByaXZhdGUoZXYpKTsKIH0KIAotdmVydG9fY3R4ICoK
LWxvb3BfaW5pdCh2ZXJ0b19ldl90eXBlIHR5cGVzLCB2b2lkICpoYW5kbGUsIHZvaWQgKCpyZXNl
dCkoKSkKK2tyYjVfZXJyb3JfY29kZQorbG9vcF9zZXR1cF9zaWduYWxzKHZlcnRvX2N0eCAqY3R4
LCB2b2lkICpoYW5kbGUsIHZvaWQgKCpyZXNldCkoKSkKIHsKICAgICBzdHJ1Y3Qgc2lnaHVwX2Nv
bnRleHQgKnNjOwotICAgIHZlcnRvX2N0eCAqY3R4OwotICAgIHZlcnRvX2V2ICAqZXY7CisgICAg
dmVydG9fZXYgKmV2OwogCi0gICAgdHlwZXMgfD0gVkVSVE9fRVZfVFlQRV9JTzsKLSAgICB0eXBl
cyB8PSBWRVJUT19FVl9UWVBFX1NJR05BTDsKLSAgICB0eXBlcyB8PSBWRVJUT19FVl9UWVBFX1RJ
TUVPVVQ7Ci0jaWZkZWYgSU5URVJOQUxfVkVSVE8KLSAgICBjdHggPSB2ZXJ0b19kZWZhdWx0X2s1
ZXYoKTsKLSNlbHNlCi0gICAgY3R4ID0gdmVydG9fZGVmYXVsdChOVUxMLCB0eXBlcyk7Ci0jZW5k
aWYKICAgICBpZiAoIXZlcnRvX2FkZF9zaWduYWwoY3R4LCBWRVJUT19FVl9GTEFHX1BFUlNJU1Qs
IGRvX2JyZWFrLCBTSUdJTlQpICB8fAogICAgICAgICAhdmVydG9fYWRkX3NpZ25hbChjdHgsIFZF
UlRPX0VWX0ZMQUdfUEVSU0lTVCwgZG9fYnJlYWssIFNJR1RFUk0pIHx8CiAgICAgICAgICF2ZXJ0
b19hZGRfc2lnbmFsKGN0eCwgVkVSVE9fRVZfRkxBR19QRVJTSVNULCBkb19icmVhaywgU0lHUVVJ
VCkgfHwKQEAgLTMzMSwxMSArMzM2LDkgQEAgbG9vcF9pbml0KHZlcnRvX2V2X3R5cGUgdHlwZXMs
IHZvaWQgKmhhbmRsZSwgdm9pZCAoKnJlc2V0KSgpKQogICAgIHNjLT5yZXNldCA9IHJlc2V0Owog
CiAgICAgdmVydG9fc2V0X3ByaXZhdGUoZXYsIHNjLCBmcmVlX3NpZ2h1cF9jb250ZXh0KTsKLSAg
ICByZXR1cm4gY3R4OwotCi1lcnJvcjoKLSAgICB2ZXJ0b19mcmVlKGN0eCk7Ci0gICAgcmV0dXJu
IE5VTEw7CisgICAgZXJyb3I6CisgICAgICAgIHZlcnRvX2ZyZWUoY3R4KTsKKyAgICAgICAgcmV0
dXJuIEVOT01FTTsKIH0KIAoga3JiNV9lcnJvcl9jb2RlCi0tIAoxLjcuNi4yCgo=
------=_Part_1631630_692319256.1315601867609
Content-Type: text/x-patch;
	name=0003-move-the-child-signal-handlers-to-before-the-fork-to.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename=0003-move-the-child-signal-handlers-to-before-the-fork-to.patch

RnJvbSBkYzA5Y2RkOWIxNDczNDdiOTJlMjc0MzE3YTEwNjk2MTI2YmNiNjljIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBOYXRoYW5pZWwgTWNDYWxsdW0gPG5wbWNjYWxsdW1AcmVkaGF0
LmNvbT4KRGF0ZTogRnJpLCA5IFNlcCAyMDExIDE2OjU1OjEzIC0wNDAwClN1YmplY3Q6IFtQQVRD
SCAzLzNdIG1vdmUgdGhlIGNoaWxkIHNpZ25hbCBoYW5kbGVycyB0byBiZWZvcmUgdGhlIGZvcmsg
dG8KIHJlbW92ZSBhIHJhY2UgY29uZGl0aW9uCgotLS0KIHNyYy9rZGMvbWFpbi5jIHwgICAzNyAr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGVzIGNoYW5nZWQsIDIw
IGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9rZGMvbWFp
bi5jIGIvc3JjL2tkYy9tYWluLmMKaW5kZXggMDg3OGZlNi4uMzQ3NWFlNSAxMDA2NDQKLS0tIGEv
c3JjL2tkYy9tYWluLmMKKysrIGIvc3JjL2tkYy9tYWluLmMKQEAgLTU0Miw2ICs1NDIsMjYgQEAg
Y3JlYXRlX3dvcmtlcnModmVydG9fY3R4ICpjdHgsIGludCBudW0pCiAgICAgc3RydWN0IHNpZ2Fj
dGlvbiBzX2FjdGlvbjsKICNlbmRpZiAvKiBQT1NJWF9TSUdOQUxTICovCiAKKyAgICAvKgorICAg
ICAqIFNldHVwIG91ciBzaWduYWwgaGFuZGxlcnMgd2hpY2ggd2lsbCBmb3J3YXJkIHRvIHRoZSBj
aGlsZHJlbi4KKyAgICAgKiBUaGVzZSBoYW5kbGVycyB3aWxsIGJlIG92ZXJyaWRlbiBpbiB0aGUg
Y2hpbGQgcHJvY2Vzc2VzLgorICAgICAqLworI2lmZGVmIFBPU0lYX1NJR05BTFMKKyAgICAodm9p
ZCkgc2lnZW1wdHlzZXQoJnNfYWN0aW9uLnNhX21hc2spOworICAgIHNfYWN0aW9uLnNhX2ZsYWdz
ID0gMDsKKyAgICBzX2FjdGlvbi5zYV9oYW5kbGVyID0gb25fbW9uaXRvcl9zaWduYWw7CisgICAg
KHZvaWQpIHNpZ2FjdGlvbihTSUdJTlQsICZzX2FjdGlvbiwgKHN0cnVjdCBzaWdhY3Rpb24gKikg
TlVMTCk7CisgICAgKHZvaWQpIHNpZ2FjdGlvbihTSUdURVJNLCAmc19hY3Rpb24sIChzdHJ1Y3Qg
c2lnYWN0aW9uICopIE5VTEwpOworICAgICh2b2lkKSBzaWdhY3Rpb24oU0lHUVVJVCwgJnNfYWN0
aW9uLCAoc3RydWN0IHNpZ2FjdGlvbiAqKSBOVUxMKTsKKyAgICBzX2FjdGlvbi5zYV9oYW5kbGVy
ID0gb25fbW9uaXRvcl9zaWdodXA7CisgICAgKHZvaWQpIHNpZ2FjdGlvbihTSUdIVVAsICZzX2Fj
dGlvbiwgKHN0cnVjdCBzaWdhY3Rpb24gKikgTlVMTCk7CisjZWxzZSAgLyogUE9TSVhfU0lHTkFM
UyAqLworICAgIHNpZ25hbChTSUdJTlQsIG9uX21vbml0b3Jfc2lnbmFsKTsKKyAgICBzaWduYWwo
U0lHVEVSTSwgb25fbW9uaXRvcl9zaWduYWwpOworICAgIHNpZ25hbChTSUdRVUlULCBvbl9tb25p
dG9yX3NpZ25hbCk7CisgICAgc2lnbmFsKFNJR0hVUCwgb25fbW9uaXRvcl9zaWdodXApOworI2Vu
ZGlmIC8qIFBPU0lYX1NJR05BTFMgKi8KKwogICAgIC8qIENyZWF0ZSBjaGlsZCB3b3JrZXIgcHJv
Y2Vzc2VzOyByZXR1cm4gaW4gZWFjaCBjaGlsZC4gKi8KICAgICBrcmI1X2tsb2dfc3lzbG9nKExP
R19JTkZPLCBfKCJjcmVhdGluZyAlZCB3b3JrZXIgcHJvY2Vzc2VzIiksIG51bSk7CiAgICAgcGlk
cyA9IGNhbGxvYyhudW0sIHNpemVvZihwaWRfdCkpOwpAQCAtNTc1LDIzICs1OTUsNiBAQCBjcmVh
dGVfd29ya2Vycyh2ZXJ0b19jdHggKmN0eCwgaW50IG51bSkKICAgICAvKiBXZSdyZSBnb2luZyB0
byB1c2Ugb3VyIG93biBtYWluIGxvb3AgaGVyZS4gKi8KICAgICBsb29wX2ZyZWUoY3R4KTsKIAot
ICAgIC8qIFNldHVwIG91ciBzaWduYWwgaGFuZGxlcnMgd2hpY2ggd2lsbCBmb3J3YXJkIHRvIHRo
ZSBjaGlsZHJlbi4gKi8KLSNpZmRlZiBQT1NJWF9TSUdOQUxTCi0gICAgKHZvaWQpIHNpZ2VtcHR5
c2V0KCZzX2FjdGlvbi5zYV9tYXNrKTsKLSAgICBzX2FjdGlvbi5zYV9mbGFncyA9IDA7Ci0gICAg
c19hY3Rpb24uc2FfaGFuZGxlciA9IG9uX21vbml0b3Jfc2lnbmFsOwotICAgICh2b2lkKSBzaWdh
Y3Rpb24oU0lHSU5ULCAmc19hY3Rpb24sIChzdHJ1Y3Qgc2lnYWN0aW9uICopIE5VTEwpOwotICAg
ICh2b2lkKSBzaWdhY3Rpb24oU0lHVEVSTSwgJnNfYWN0aW9uLCAoc3RydWN0IHNpZ2FjdGlvbiAq
KSBOVUxMKTsKLSAgICAodm9pZCkgc2lnYWN0aW9uKFNJR1FVSVQsICZzX2FjdGlvbiwgKHN0cnVj
dCBzaWdhY3Rpb24gKikgTlVMTCk7Ci0gICAgc19hY3Rpb24uc2FfaGFuZGxlciA9IG9uX21vbml0
b3Jfc2lnaHVwOwotICAgICh2b2lkKSBzaWdhY3Rpb24oU0lHSFVQLCAmc19hY3Rpb24sIChzdHJ1
Y3Qgc2lnYWN0aW9uICopIE5VTEwpOwotI2Vsc2UgIC8qIFBPU0lYX1NJR05BTFMgKi8KLSAgICBz
aWduYWwoU0lHSU5ULCBvbl9tb25pdG9yX3NpZ25hbCk7Ci0gICAgc2lnbmFsKFNJR1RFUk0sIG9u
X21vbml0b3Jfc2lnbmFsKTsKLSAgICBzaWduYWwoU0lHUVVJVCwgb25fbW9uaXRvcl9zaWduYWwp
OwotICAgIHNpZ25hbChTSUdIVVAsIG9uX21vbml0b3Jfc2lnaHVwKTsKLSNlbmRpZiAvKiBQT1NJ
WF9TSUdOQUxTICovCi0KICAgICAvKiBTdXBlcnZpc2UgdGhlIHdvcmtlciBwcm9jZXNzZXMuICov
CiAgICAgbnVtbGVmdCA9IG51bTsKICAgICB3aGlsZSAoIXNpZ25hbF9yZWNlaXZlZCkgewotLSAK
MS43LjYuMgoK
------=_Part_1631630_692319256.1315601867609
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
krbdev mailing list             krbdev@mit.edu
https://mailman.mit.edu/mailman/listinfo/krbdev

------=_Part_1631630_692319256.1315601867609--

home help back first fref pref prev next nref lref last post