diff options
Diffstat (limited to 'meta/recipes-connectivity/dhcp/dhcp/0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch')
-rw-r--r-- | meta/recipes-connectivity/dhcp/dhcp/0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/meta/recipes-connectivity/dhcp/dhcp/0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch b/meta/recipes-connectivity/dhcp/dhcp/0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch new file mode 100644 index 0000000000..67bb4631ae --- /dev/null +++ b/meta/recipes-connectivity/dhcp/dhcp/0011-Moved-the-call-to-isc_app_ctxstart-to-not-get-signal.patch | |||
@@ -0,0 +1,81 @@ | |||
1 | From 37725f3e22edb50e0ca2d1fff971321a5a4d5112 Mon Sep 17 00:00:00 2001 | ||
2 | From: Hongxu Jia <hongxu.jia@windriver.com> | ||
3 | Date: Wed, 12 Jul 2017 03:05:13 -0400 | ||
4 | Subject: [PATCH 11/11] Moved the call to isc_app_ctxstart() to not get signal | ||
5 | block by all threads | ||
6 | |||
7 | Signed-off-by: Francis Dupont <fdupont@isc.org> | ||
8 | |||
9 | In https://source.isc.org/git/bind9.git, since the following | ||
10 | commit applied: | ||
11 | ... | ||
12 | commit b99bfa184bc9375421b5df915eea7dfac6a68a99 | ||
13 | Author: Evan Hunt <each@isc.org> | ||
14 | Date: Wed Apr 10 13:49:57 2013 -0700 | ||
15 | |||
16 | [master] unify internal and export libraries | ||
17 | |||
18 | 3550. [func] Unified the internal and export versions of the | ||
19 | BIND libraries, allowing external clients to use | ||
20 | the same libraries as BIND. [RT #33131] | ||
21 | ... | ||
22 | (git show b99bfa184bc9375421b5df915eea7dfac6a68a99 -- ./lib/isc/unix/app.c) | ||
23 | |||
24 | In this commit, if bind9 enable threads(ISC_PLATFORM_USETHREADS), | ||
25 | it blocks signal SIGHUP, SIGINT and SIGTERM in isc__app_ctxstart. | ||
26 | Which caused dhclient/dhcpd could not be stopped by SIGTERM. | ||
27 | |||
28 | It caused systemd's reboot hung which send SIGTERM by default. | ||
29 | |||
30 | Upstream-Status: Backport [https://source.isc.org/git/dhcp.git] | ||
31 | Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> | ||
32 | --- | ||
33 | omapip/isclib.c | 25 +++++++++++++++---------- | ||
34 | 1 file changed, 15 insertions(+), 10 deletions(-) | ||
35 | |||
36 | diff --git a/omapip/isclib.c b/omapip/isclib.c | ||
37 | index ce86490..6a04345 100644 | ||
38 | --- a/omapip/isclib.c | ||
39 | +++ b/omapip/isclib.c | ||
40 | @@ -185,16 +185,6 @@ dhcp_context_create(int flags, | ||
41 | if (result != ISC_R_SUCCESS) | ||
42 | goto cleanup; | ||
43 | |||
44 | - result = isc_app_ctxstart(dhcp_gbl_ctx.actx); | ||
45 | - if (result != ISC_R_SUCCESS) | ||
46 | - return (result); | ||
47 | - dhcp_gbl_ctx.actx_started = ISC_TRUE; | ||
48 | - | ||
49 | - /* Not all OSs support suppressing SIGPIPE through socket | ||
50 | - * options, so set the sigal action to be ignore. This allows | ||
51 | - * broken connections to fail gracefully with EPIPE on writes */ | ||
52 | - handle_signal(SIGPIPE, SIG_IGN); | ||
53 | - | ||
54 | result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx, | ||
55 | dhcp_gbl_ctx.actx, | ||
56 | 1, 0, | ||
57 | @@ -217,6 +207,21 @@ dhcp_context_create(int flags, | ||
58 | result = isc_task_create(dhcp_gbl_ctx.taskmgr, 0, &dhcp_gbl_ctx.task); | ||
59 | if (result != ISC_R_SUCCESS) | ||
60 | goto cleanup; | ||
61 | + | ||
62 | + result = isc_app_ctxstart(dhcp_gbl_ctx.actx); | ||
63 | + if (result != ISC_R_SUCCESS) | ||
64 | + return (result); | ||
65 | + dhcp_gbl_ctx.actx_started = ISC_TRUE; | ||
66 | + | ||
67 | + /* Not all OSs support suppressing SIGPIPE through socket | ||
68 | + * options, so set the sigal action to be ignore. This allows | ||
69 | + * broken connections to fail gracefully with EPIPE on writes */ | ||
70 | + handle_signal(SIGPIPE, SIG_IGN); | ||
71 | + | ||
72 | + /* Reset handlers installed by isc_app_ctxstart() | ||
73 | + * to default for control-c and kill */ | ||
74 | + handle_signal(SIGINT, SIG_DFL); | ||
75 | + handle_signal(SIGTERM, SIG_DFL); | ||
76 | } | ||
77 | |||
78 | #if defined (NSUPDATE) | ||
79 | -- | ||
80 | 1.8.3.1 | ||
81 | |||