Страница 1 из 1

Странное зависание PHP

Добавлено: 05 окт 2020, 18:36
guest001
Здравствуйте.
Столкнулся с багом. Странным.
Такой скрипт:

Код: Выделить всё

<?php
$xhe_host = "127.0.0.1:7010";
// The following code is required to properly run XWeb Human Emulator
require("../Templates/xweb_human_emulator.php");
$bUTF8Ver=true;

$counter = 1;
while(true){
	echo("Get content {$counter}");
	$content = file_get_contents("https://87.250.250.242/");
	if ($content === false){
		echo " bad<br>";
		$counter++;
	        sleep(1);
		continue;
	}
	break;	
}
echo 'next';

// Quit
$app->quit();
?>
При запуске в Хумане Сингл, на машине БЕЗ ДОСТУПА В ИНТЕРНЕТ зависает на 15 итерации. Всегда на пятнадцатой.
Мой скрипт в таком цикле забирает с сервера некоторые данные. Но вот если Интернет пропадает, PHP зависает наглухо. Даже по окончанию таймаута, указанного в set_time_limit его не отпускает. Только в ручную нажатие на стоп спасает. Видно что file_get_contents на 15 раз перестает отдавать результат выполнения и зависает. При использовании curl проблема исчезает. Мистика :)
зы. Наблюдал в версиях 7.0.51 и 7.0.53
ззы. Запрашиваемый URL для примера, на результат не влияет.

Re: Странное зависание PHP

Добавлено: 05 окт 2020, 22:12
bigfozzy
Тут проблема в пхп, мы не можем это контролировать.

Возможно это cвязано с этим:

"При использовании SSL, Microsoft IIS нарушает протокол, закрывая соединение без отправки индикатора close_notify. PHP сообщит об этом как "SSL: Fatal Protocol Error" в тот момент, когда вы достигнете конца данных. Чтобы обойти это, вы должны установить error_reporting на уровень, исключающий E_WARNING"

https://www.php.net/manual/ru/function. ... ntents.php

Re: Странное зависание PHP

Добавлено: 05 окт 2020, 22:18
Support
Код чистый PHP, можно проверить влияет на это программа или нет. Помещаем ваш код в script.php файл таким образом:
<?php

$counter = 1;
while(true){
	echo("Get content {$counter}");
	$content = file_get_contents("https://87.250.250.242/");
	if ($content === false){
		echo " bad<br>";
		$counter++;
	        sleep(1);
		continue;
	}
	break;	
}
echo 'next';
?>
И запускаем его с командной строки таким вот образом:
C:\XWeb\Human Emulator Studio Single\PHP\php.exe C:\XWeb\Human Emulator Studio Single\My Scripts\script.php
И смотрим зависнет или нет.

Re: Странное зависание PHP

Добавлено: 10 окт 2020, 19:15
guest001
При запуске из консоли, не зависает.
Получается дело в Хуман Эмуляторе? :shock:
Заменил https на http исключив SSL - Зависает точно так же.

Re: Странное зависание PHP

Добавлено: 11 окт 2020, 22:18
bigfozzy
Исправили и обновили.
Спасибо.