BUG com CGI/FASTCGI e Apache

Boa tarde pessoal,

Preciso de uma ajuda para mapear um bug: tenho uma situação na minha aplicação que o sistema parece entrar em looping e depois aparece o error 404, porém o sistema não responde mais e só volta a responder se a pessoa fechar o navegador e entrar novamente.

Curiosamente eu resolvi testar a mesma condição no ambiente de desenvolvimento para saber se poderia ser algo com o servidor e pra minha surpresa ocorre o mesmo com o cliente e o scriptcase também para de responder. Pensei que poderia ser o apache, mas simplesmente fechando e reabrindo o navegador, o scriptcase volta a funcionar normal.

O que pode ser esse bug?

Desde já agradeço pela ajuda.

Ah, complementando, acho que o erro está mais com o php CGI/fastCGI…

Alguém poderia me explicar o que é isso?

PS: resolvi adequar melhor o título do post.

Seria interessante você postar mais detalhes, tipo: O erro acontece em algum código que está em algum evento? Se sim, que código seria esse?

Quando o erro ocorrer novamente:
Acessa:
NetMake\v9\components\apache\logs
Edita o arquivo error.log

E posta aqui o conteúdo lá do final do arquivo.

Bom dia.

Já tivemos tal problema com php-cgi.exe e o caso era igual ao tópico abaixo:
http://www.scriptcase.com.br/forum/index.php?topic=11086.0

Opa Ronyan,

Tentei simular o erro novamente agora e consta isso:
[Thu Oct 05 14:21:02.807957 2017] [fcgid:warn] [pid 3836:tid 948] (OS 109)O pipe foi finalizado. : [client 127.0.0.1:63434] mod_fcgid: get overlap result error, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Thu Oct 05 14:21:02.807957 2017] [core:error] [pid 3836:tid 948] [client 127.0.0.1:63434] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/

Ontem deve esses registros:
[Wed Oct 04 17:44:40.724762 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 13564 graceful kill fail, sending SIGKILL
[Wed Oct 04 17:44:40.740388 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 13796 graceful kill fail, sending SIGKILL
[Wed Oct 04 17:44:40.740388 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 10740 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:14:12.669639 2017] [fcgid:warn] [pid 3836:tid 1012] [client 127.0.0.1:58551] mod_fcgid: read timeout from pipe, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:14:12.669639 2017] [core:error] [pid 3836:tid 1012] [client 127.0.0.1:58551] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:14:21.574676 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 11592 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:15:21.987281 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 4812 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:15:21.987281 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 7380 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:15:21.987281 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 10736 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:15:21.987281 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 15304 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:22:35.376207 2017] [fcgid:warn] [pid 3836:tid 1032] [client 127.0.0.1:58625] mod_fcgid: read timeout from pipe, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:22:35.376207 2017] [core:error] [pid 3836:tid 1032] [client 127.0.0.1:58625] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:22:43.165353 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 6608 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:23:25.495551 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 9388 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:23:25.495551 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 8256 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:24:45.802557 2017] [fcgid:warn] [pid 3836:tid 988] [client 127.0.0.1:58715] mod_fcgid: read timeout from pipe, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:24:45.802557 2017] [core:error] [pid 3836:tid 988] [client 127.0.0.1:58715] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:24:56.209316 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 7712 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:25:26.367045 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 3488 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:25:26.367045 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 5820 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:25:26.367045 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 5756 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:25:26.367045 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 11012 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:28:05.862250 2017] [fcgid:warn] [pid 3836:tid 924] [client 127.0.0.1:58760] mod_fcgid: read timeout from pipe, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:28:05.862250 2017] [core:error] [pid 3836:tid 924] [client 127.0.0.1:58760] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:28:15.010423 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 9740 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 12584 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 724 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 6996 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 10892 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 5856 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:29:27.312582 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 13188 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:43:45.446073 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 2448 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:43:45.446073 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 10664 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:43:45.446073 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 8292 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:43:45.446073 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: process 14364 graceful kill fail, sending SIGKILL
[Wed Oct 04 18:47:46.204520 2017] [fcgid:warn] [pid 3836:tid 916] (OS 109)O pipe foi finalizado. : [client 127.0.0.1:59795] mod_fcgid: get overlap result error, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:47:46.204520 2017] [core:error] [pid 3836:tid 916] [client 127.0.0.1:59795] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:47:48.751520 2017] [fcgid:warn] [pid 3836:tid 1012] (OS 109)O pipe foi finalizado. : [client 127.0.0.1:59502] mod_fcgid: get overlap result error, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:47:48.751520 2017] [core:error] [pid 3836:tid 1012] [client 127.0.0.1:59502] End of script output before headers: index.php, referer: http://127.0.0.1:8090/scriptcase/app/Sistema_Lotus/control_tipo_alteracao/
[Wed Oct 04 18:52:48.638414 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: cleanup zombie process 12924
[Wed Oct 04 18:52:54.716836 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: cleanup zombie process 13380
[Wed Oct 04 18:52:54.716836 2017] [fcgid:warn] [pid 3836:tid 536] mod_fcgid: cleanup zombie process 14212

Desde já obrigado pela ajuda…

Kleyber,

O erro ocorre com o seguinte script (com a condição $_SESSION[‘update_delete’] == “update” e {escolha_update} == ‘2’):

O engraçado é que isso só ocorre pra determinada modificação (quando vou retirar a recorrência), pras demais atualizações funciona tranquilo.

//Definição dos campos com as variáveis de sessão
{id} = $_SESSION['id'];
{id_colaborador} = $_SESSION['id_colaborador'];
{id_servico} = $_SESSION['id_servico'];
{id_subtipo_servico} = $_SESSION['id_subtipo_servico'];
{id_cliente} = $_SESSION['id_cliente'];
{id_grupo} = $_SESSION['id_grupo'];
{id_sala} = $_SESSION['id_sala'];
{data_inicio} = $_SESSION['data_inicio'];
{hora_inicio} = $_SESSION['hora_inicio'];
{data_fim} = $_SESSION['data_fim'];
{hora_fim} = $_SESSION['hora_fim'];
{nota} = $_SESSION['nota'];
{id_repetir} = $_SESSION['id_repetir'];
{tipo_repetir} = $_SESSION['tipo_repetir'];
{freq_repetir} = $_SESSION['freq_repetir'];
{data_fim_repetir} = $_SESSION['data_fim_repetir'];

//Botão delete
if ($_SESSION['update_delete'] == "delete") {
	if ({escolha_delete} == '1') {
		sc_exec_sql("DELETE FROM eventos WHERE id = '" . {id} . "'");
	}
	elseif ({escolha_delete} == '2') {
		sc_exec_sql("DELETE FROM eventos WHERE id_repetir = '" . {id_repetir} . "' and data_inicio >= '" . {data_inicio} . "'");
	}
	elseif ({escolha_delete} == '3') {
		sc_exec_sql("DELETE FROM eventos WHERE id_repetir = '" . {id_repetir} . "'");
	}
}//Fim: Botão delete

//Botão update
elseif ($_SESSION['update_delete'] == "update") {
	if ({escolha_update} == '1') {
		//Variáveis iniciais
		$data_1 = {data_inicio};
		$data_hora_1 = $data_1 . " " . {hora_inicio};
		$data_2 = {data_fim};
		$data_hora_2 = $data_2 . " " . {hora_fim};
		$data_3 = {data_fim_repetir};

		//Verificação disponibilidade
		if ({id_sala} != 'evento externo') {
			$check_sql = "SELECT id, id_repetir, id_sala, timestamp(data_inicio, hora_inicio) as inicio, timestamp(data_fim, hora_fim) as fim FROM eventos_agenda where id_sala = '" . {id_sala} . "' and not id = '" . {id} . "' and ((timestamp(data_inicio, hora_inicio) <= '" . $data_hora_1 . "' and timestamp(data_fim, hora_fim) > '" . $data_hora_1 . "') or (timestamp(data_inicio, hora_inicio) < '" . $data_hora_2 . "' and timestamp(data_fim, hora_fim) >= '" . $data_hora_2 . "') or (timestamp(data_inicio, hora_inicio) >= '" . $data_hora_1 . "' and timestamp(data_fim, hora_fim) <= '" . $data_hora_2 . "'))";
			sc_select(dataset, $check_sql);
			if (!{dataset}->EOF) {
				[retorno] = true;
				sc_error_message("Já existe agendamento para a sala e horário");
			}
		}
		if (![retorno]) {
			//Delete do registro antigo
			sc_exec_sql("DELETE FROM eventos WHERE id = '" . {id} . "'");

			//Insert do novo registro
			if ({id_cliente} == ''){
				$cliente = '0';
			}
			else{
				$cliente = "'" . {id_cliente} . "'";
			}

			if ({id_grupo} == ''){
				$grupo = '0';
			}
			else{
				$grupo = "'" . {id_grupo} .  "'";
			}
			sc_exec_sql("INSERT INTO eventos (id_colaborador, id_servico, id_subtipo_servico, id_cliente, id_grupo, id_sala, nota, data_inicio, hora_inicio, data_fim, hora_fim) VALUES ('" . {id_colaborador} . "', '" . {id_servico} . "', '" . {id_subtipo_servico} . "', " . $cliente . ", " . $grupo . ", '" . {id_sala} . "', '" . {nota} . "', '" . $data_1 . "', '" . {hora_inicio} . "', '" . $data_2 . "', '" . {hora_fim} . "')");
		}
	}
	elseif ({escolha_update} == '2') {
		//Variáveis iniciais
		$data_1 = {data_inicio};
		$data_hora_1 = $data_1 . " " . {hora_inicio};
		$data_2 = {data_fim};
		$data_hora_2 = $data_2 . " " . {hora_fim};
		$data_3 = {data_fim_repetir};

		//Verificação disponibilidade
		if ({id_sala} != 'evento externo') {

			sc_select(rs, "SELECT id FROM eventos_agenda where id_repetir = '" . {id_repetir} . "';");

			while($data_2 <= $data_3) {
				$id = $rs->fields[0];
				$check_sql = "SELECT id, id_repetir, id_sala, timestamp(data_inicio, hora_inicio) as inicio, timestamp(data_fim, hora_fim) as fim FROM eventos_agenda where id_sala = '" . {id_sala} . "' and not id = '" . $id . "' and ((timestamp(data_inicio, hora_inicio) <= '" . $data_hora_1 . "' and timestamp(data_fim, hora_fim) > '" . $data_hora_1 . "') or (timestamp(data_inicio, hora_inicio) < '" . $data_hora_2 . "' and timestamp(data_fim, hora_fim) >= '" . $data_hora_2 . "') or (timestamp(data_inicio, hora_inicio) >= '" . $data_hora_1 . "' and timestamp(data_fim, hora_fim) <= '" . $data_hora_2 . "'))";
				sc_select(dataset, $check_sql);

				$rs->MoveNext();

				if (!{dataset}->EOF) {
					[retorno] = true;
					sc_error_message("Já existe agendamento para a sala e horário");
				}

				if ({tipo_repetir} == '1') {
					$dias = 1 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_hora_1 = $data_1 . " " . {hora_inicio};
					$data_hora_2 = $data_2 . " " . {hora_fim};
				}
				elseif ({tipo_repetir} == '2') {
					$dias = 7 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_hora_1 = $data_1 . " " . {hora_inicio};
					$data_hora_2 = $data_2 . " " . {hora_fim};
				}
				elseif ({tipo_repetir} == '3') {
					$meses = 1 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', 0, $meses, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', 0, $meses, 0);
					$data_hora_1 = $data_1 . " " . {hora_inicio};
					$data_hora_2 = $data_2 . " " . {hora_fim};
				}
			}
			$rs->Close();
		}

		if (![retorno]) {
			//Delete dos registros antigos
			sc_exec_sql("DELETE FROM eventos WHERE id_repetir = '" . {id_repetir} . "' and data_inicio >= '" . {data_inicio} . "'");

			//Insert do primeiro novo registro
			//Variáveis iniciais
			$data_1 = {data_inicio};
			$data_2 = {data_fim};
			$data_3 = {data_fim_repetir};

			//Insert dos novos registro
			if ({id_cliente} == ''){
				$cliente = '0';
			}
			else{
				$cliente = "'" . {id_cliente} . "'";
			}

			if ({id_grupo} == ''){
				$grupo = '0';
			}
			else{
				$grupo = "'" . {id_grupo} .  "'";
			}
			sc_exec_sql("INSERT INTO eventos (id_colaborador, id_servico, id_subtipo_servico, id_cliente, id_grupo, id_sala, nota, data_inicio, hora_inicio, data_fim, hora_fim, tipo_repetir, freq_repetir, data_fim_repetir) VALUES ('" . {id_colaborador} . "', '" . {id_servico} . "', '" . {id_subtipo_servico} . "', " . $cliente . ", " . $grupo . ", '" . {id_sala} . "', '" . {nota} . "', '" . $data_1 . "', '" . {hora_inicio} . "', '" . $data_2 . "', '" . {hora_fim} . "', '" . {tipo_repetir} . "', '" . {freq_repetir} . "', '" . {data_fim_repetir} . "')");

			//Ultimo ID inserido na sessão
			sc_lookup(rs, "SELECT LAST_INSERT_ID()");
			$ult_id = {rs[0][0]};

			//Registro do id_repetir
			sc_exec_sql("UPDATE eventos SET id_repetir = '" . $ult_id . "' WHERE id= '" . $ult_id . "'");

			while($data_2 <= $data_3) {

				if ({tipo_repetir} == 1) {
					$dias = 1 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', $dias, 0, 0);
				}
				elseif ({tipo_repetir} == 2) {
					$dias = 7 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', $dias, 0, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', $dias, 0, 0);
				}
				elseif ({tipo_repetir} == 3) {
					$meses = 1 * {freq_repetir};
					$data_1 = sc_date($data_1, 'yyyy-mm-dd', '+', 0, $meses, 0);
					$data_2 = sc_date($data_2, 'yyyy-mm-dd', '+', 0, $meses, 0);
				}

				if ($data_2 <= $data_3) {
					sc_exec_sql("INSERT INTO eventos (id_colaborador, id_servico, id_subtipo_servico, id_cliente, id_grupo, id_sala, data_inicio, hora_inicio, data_fim, hora_fim, id_repetir, tipo_repetir, freq_repetir, data_fim_repetir) VALUES ('" . {id_colaborador} . "', '" . {id_servico} . "', '" . {id_subtipo_servico} . "', " . $cliente . ", " . $grupo . ", '" . {id_sala} . "', '" . $data_1 . "', '" . {hora_inicio} . "', '" . $data_2 . "', '" . {hora_fim} . "', '" . $ult_id . "', '" . {tipo_repetir} . "', '" . {freq_repetir} . "', '" . {data_fim_repetir} . "')");
				}
			}
		}
	}
}//Fim: Botão update

Acredito que este tópico pode ajudar:

http://www.scriptcase.com.br/forum/index.php/topic,15838.msg83478.html#new

Iniciou com o assunto de sessions mas acabou no php-cgi.exe.

Boa noite Eduardo,

Tentei as sugestões que postou, mas não obtive sucesso…

Ainda não está claro para mim o que está ocorrendo…

Boa tarde.
Poderia colocar no final do arquivo httpd.conf:

AcceptFilter http none
AcceptFilter https none
EnableMMAP off

Isto melhora a performance do Apache em ambiente Windows.