From 964749dfdbb51b4f1626edf1eb97df33600c10ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20K=C4=99pie=C5=84?= Date: Fri, 19 Apr 2019 09:37:51 +0200 Subject: [PATCH] win32: fix service state reported during shutdown When a Windows service receives a request to stop, it should not set its state to SERVICE_STOPPED until it is completely shut down as doing that allows the operating system to kill that service prematurely, which in the case of named may e.g. prevent the PID file and/or the lock file from being cleaned up. Set service state to SERVICE_STOP_PENDING when named begins its shutdown and only report the SERVICE_STOPPED state immediately before exiting. --- bin/named/win32/ntservice.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/named/win32/ntservice.c b/bin/named/win32/ntservice.c index dbb19c9bea..986993f4f1 100644 --- a/bin/named/win32/ntservice.c +++ b/bin/named/win32/ntservice.c @@ -81,7 +81,7 @@ ServiceControl(DWORD dwCtrlCode) { case SERVICE_CONTROL_STOP: named_server_flushonshutdown(named_g_server, true); isc_app_shutdown(); - UpdateSCM(SERVICE_STOPPED); + UpdateSCM(SERVICE_STOP_PENDING); break; default: break;