Temos dois Windows Server , um em 2012 R2 e outro em 2008 R2 que usa Apache HTTP Server ( httpd
) 2.4 no proxy / modo reverso-proxy (uso de ProxyPass
, ProxyPassReverse
e Hosts virtuais configuração). Ambos os servidores usam a construção binária Apache 2.4.27 x64 da Apache Haus.
Temos alguns scripts de backup em execução nos dois servidores. Eles param todos os serviços (incluindo o Apache), fazem o backup e reiniciam todos os serviços novamente.
Esses scripts estão funcionando bem há vários anos (quase 4 anos). Mas a partir de agora July 12, 2018
, o comportamento agora é estranho. Os scripts de backup estão realizando seus trabalhos, interrompendo todos os serviços, fazendo o backup, mas agora todos os serviços são reiniciados, exceto o Apache.
Após investigar, descobri que o serviço Apache 2.4.27 não pode ser parado. Ao usar o console de Serviços e tentar parar manualmente o serviço, o console mostra "Parando" e nada acontece.
Então, verifiquei os processos em execução e vi que um httpd.exe
processo está em execução. Eu tentei matar esse processo, mas sem sorte.
Então, eu tentei:
taskkill /im "httpd.exe" /f /t
E a saída é:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Então eu testei para matar o processo pskill
da Sysinternals:
pskill -t 560
E a saída é:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Mas isso é falso, pois o httpd
processo está sempre em execução!
Atualizei o Apache de 2.4.27 para 2.4.34, mas o problema permanece. A única coisa a fazer para desbloquear a situação é reiniciar o servidor inteiro.
Eu verifiquei as atualizações instaladas e algumas delas foram instaladas no July 11, 2018
dia anterior:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Portanto, presumo que o problema seja de uma dessas atualizações. Portanto, antes de desinstalar todos eles, existe alguém que tenha o mesmo problema que eu, quero dizer que o Apache 2.4 se torna impenetrável e não pode ser parado no Windows Server?
O grande problema é que, se esse httpd
processo não pode ser morto, o Apache não pode ser reiniciado, pois a porta 80 já está ligada.
Respostas:
OK, então eu acho que estava no caminho certo.
Após pesquisar na Web as atualizações instaladas recentemente, o KB4338818 é o que está causando problemas.
Isso está acontecendo para outros softwares, como o FileZilla Server, conforme detalhado aqui .
Acabei de desinstalar esta atualização de segurança e agora o Apache pode ser iniciado / interrompido normalmente!
Espero que a Microsoft corrija isso em uma atualização posterior!
fonte
httpd
processo congela e se torna imutável.A Microsoft está lançando o KB4345459 para corrigir os problemas no Windows 7 e no Windows 2008 Server.
https://support.microsoft.com/en-us/help/4345459/stop-error-0xd1-after-a-race-condition-ocdition-occurs-in-windows-7-service-pac
fonte
Parece que a Microsoft está começando a corrigir o problema, até agora apenas no Server 2016 e Windows 10: https://support.microsoft.com/de-de/help/4345421/windows-10-update-kb4345421
fonte
O KB4338831 parece corrigir o problema do Windows Server 2012 R2.
Está disponível como uma atualização recomendada no Windows Update.
fonte
Eu acho que você está definitivamente no caminho certo. Eu estava tendo um problema semelhante com o Tomcat em um servidor Windows. No entanto, eu tinha outro servidor com Tomcat que não estava enfrentando o problema, e a única grande diferença que pude encontrar foi que o servidor em funcionamento também tinha o IIS instalado e em execução em outras portas. Como solução alternativa, tentei carregar o IIS no servidor com problemas para configurar o site padrão, para que ele usasse portas não padrão e o problema parece ter desaparecido sem a necessidade de desinstalar a atualização.
fonte