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

Если вы обнаружили какие либо ошибки, недочеты и неудобства или другие незачеты в программе напишите нам об этом на этом форуме - мы бум исправлять
Ответить
guest001
Сообщения: 7
Зарегистрирован: 27 авг 2020, 11:21

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

Сообщение guest001 » 05 окт 2020, 18:36

Здравствуйте.
Столкнулся с багом. Странным.
Такой скрипт:

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

<?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 для примера, на результат не влияет.

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2639
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

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

Сообщение bigfozzy » 05 окт 2020, 22:12

Тут проблема в пхп, мы не можем это контролировать.

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

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

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

Аватара пользователя
Support
Site Admin
Сообщения: 934
Зарегистрирован: 10 апр 2009, 17:45
Контактная информация:

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

Сообщение Support » 05 окт 2020, 22:18

Код чистый 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
И смотрим зависнет или нет.

guest001
Сообщения: 7
Зарегистрирован: 27 авг 2020, 11:21

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

Сообщение guest001 » 10 окт 2020, 19:15

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

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 2639
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

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

Сообщение bigfozzy » 11 окт 2020, 22:18

Исправили и обновили.
Спасибо.

Ответить