O Apache 2.4 é inábil e não pode ser parado no Windows Server

11

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, ProxyPassReversee 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.exeprocesso 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 pskillda 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 httpdprocesso 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, 2018dia 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 httpdprocesso não pode ser morto, o Apache não pode ser reiniciado, pois a porta 80 já está ligada.

SiZiOUS
fonte
3
O título faz com que pareça um monstro de filme ..
Trotski94 16/07/18
Era procurado, hahaha #
SiZiOUS

Respostas:

10

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!

SiZiOUS
fonte
Vejo que você encontrou sua resposta, mas eu queria saber se uma reinicialização do servidor também teria corrigido o problema. Além disso, se a atualização foi aplicada enquanto o Apache não estava em execução, é possível que não tenha causado os problemas.
MonkeyZeus
Sim, como já expliquei na pergunta original, a única solução para desbloquear a situação é reiniciar todo o servidor ... o que é uma solução alternativa suja!
SiZiOUS
Desculpe, eu perdi esse detalhe, estava um pouco enterrado. Após a reinicialização, o processo permaneceu inalterável? Estou apenas perguntando porque estou executando o Windows 7 x64 com Apache na minha máquina local, mas ainda não recebi o KB4338818, então quero saber o que esperar.
MonkeyZeus
1
Não tem problema, você não precisa justificar seu comentário. :) Após a reinicialização, se você configurou o Apache para iniciar automaticamente, ele funcionará. Mas quando você tenta interromper o serviço (manualmente ou usando scripts), o httpdprocesso congela e se torna imutável.
SiZiOUS
1

O KB4338831 parece corrigir o problema do Windows Server 2012 R2.

Esta atualização não relacionada à segurança inclui aprimoramentos e correções que fazem parte da KB4338815 (lançada em 10 de julho de 2018) e também inclui esses novos aprimoramentos de qualidade como uma prévia da próxima atualização do pacote cumulativo mensal. Fonte: 18 de julho de 2018 - KB4338831 (visualização do pacote cumulativo mensal)

Está disponível como uma atualização recomendada no Windows Update.

Alessandro Brandão
fonte
0

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.

Don Prezioso
fonte
1
OK ... eu retiro ... o truque do IIS parece funcionar algumas vezes. A porta 80 parece ser corrigida com o carregamento do IIS, mas 443 funciona apenas algumas vezes. Além disso, para mim, a atualização incorreta parece ser KB4338815. Pelo menos para o meu servidor de produção, essa é a única coisa em execução nele, para que eu possa reiniciar quase tão facilmente quanto reiniciar o Tomcat.
111118 Don Prezioso