Exit when there's error on select() 65/276465/1 submit/tizen_6.5/20220617.051848
authorjiung-yu <jiung.yu@samsung.com>
Fri, 17 Jun 2022 04:54:38 +0000 (13:54 +0900)
committerJiung Yu <jiung.yu@samsung.com>
Fri, 17 Jun 2022 05:17:50 +0000 (05:17 +0000)
Description: Sometimes there's an issue that dhcpd isn't killed
by SigTerm and it consumes all CPU usage.
 We can't reproduce the issue but I think we can terminate
dhcpd when select returns an error and errno is not EINTR.

Change-Id: I16759a7a5eb35e594eac175496e6f5d87d7d4d25
Signed-off-by: Yu jiung <jiung.yu@samsung.com>
(cherry picked from commit 346911646d7804ee00db6a495c22fc61d188a808)

packaging/toybox.spec
toys/pending/dhcpd.c

index 07d23e8..4a67ea7 100644 (file)
@@ -1,6 +1,6 @@
 Name: toybox
 Version: 0.6.0
-Release: 1%{?dist}
+Release: 2%{?dist}
 Summary: Single binary providing simplified versions of system commands
 Group: Base/Utilities
 License: BSD-2.0
index 1fc2e87..6a436e5 100644 (file)
@@ -1713,8 +1713,8 @@ void dhcpd_main(void)
         waited += (unsigned) time(NULL) - timestmp;
         continue;
       }
-      dbg("Error in select wait again...\n");
-      continue;
+      dbg("Don't wait on Error in select\n");
+      exit(0);
     }
     if (!retval) { // Timed out
       dbg("select wait Timed Out...\n");