Windows Server – Fix Unkillable Apache 2.4 Service

apache-2.4httpdservicewindows-server-2008-r2windows-server-2012-r2

We have two Windows Server, one in 2012 R2 and the other in 2008 R2 which uses Apache HTTP Server (httpd) 2.4 in proxy/reverse-proxy mode (usage of ProxyPass, ProxyPassReverse and Virtual Hosts configuration). Both servers uses Apache 2.4.27 x64 binary build from Apache Haus.

We have some backup scripts running on both servers. They stop all the services (including Apache) then do the backup and restart all services again.

These scripts are working fine since several years (almost 4 years). But starting from July 12, 2018, the behaviour is now strange. The backup scripts are doing their jobs, stopping all services, making the backup but now, all services are restarted except Apache.

After investigating, I found that Apache 2.4.27 service can't be stopped. When using the Services console and trying to manually stop the service, the console shows "Stopping" and nothing happens.

So I checked the running processes and seen that a httpd.exe process is running. I tried to kill that process but with no luck.

So, I tried:

taskkill /im "httpd.exe" /f /t

And the output is:

ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.

So I tested to kill the process with pskill from Sysinternals:

pskill -t 560

And the output is:

Copyright (C) 1999-2016  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 5956 killed.

But this is false, as the httpd process is always running!

So I've updated Apache from 2.4.27 to 2.4.34, but the problem remains. The only thing to do to unblock the situation is to reboot the whole server.

I checked the installed updates, and some of them were installed the July 11, 2018 so one day before:

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

So I presume the problem is from one of these updates. So before uninstalling all of them, is there someone which have the same problem as I, I mean Apache 2.4 becomes unkillable and can't be stopped on Windows Server?

The big issue is, if that httpd process can't be killed, Apache can't be restarted as the port 80 is already bound.

Best Answer

OK, so I think I was on the right track.

After searching on the Web about the recently installed updates, the KB4338818 is the one causing problems.

This is happening for other softwares, like FileZilla Server, as detailed here.

I've just uninstalled this Security Update and now Apache can be started/stopped as normal!

So I hope Microsoft will fix this in a later update!

Related Topic