Вылетает curl под виндой

KlimChugunkin

Новичок
Вылетает curl под виндой

PHP 5.2 (пробовал разные сборки, включая последние снэпшоты)
Windows XP
CLI
Памяти на сервере 3 гига, работает только скрипт.
Скрипт — консольный парсер.
Используется curl_multi. Пробовал однопоточный курл — эффект тот же.
Спустя некоторое время php вылетает с ошибкой CLI has encountered a problem and need to close.
Судя по статистике память до конца не используется. Т.е. на момент вылета остаётся ещё до гига оперативки.
Под линуксом работет отлично в многопоточном режиме.
 

KlimChugunkin

Новичок
Автор оригинала: tony2001
дай короткий скрипт, на котором воспроизводится.
Да нет там ничего военнного.
Это однопоточный вариант. В многопоточном для каждого элемента $ids создаётся отдельный поток.
Вылетает не всегда. Такое впечатление, что последний снэпшот из ветки 5.3 наиболее стабильный.
PHP:
function parseAdMulti_single($ids, $cat_id)
{
	global $url,$dom, $proxies, $proxy;
	
	for($i=0; $i<count($ids); $i++)
	{
		$ch = curl_init();
		$ad_url=$url."/recordId,".$ids[$i]."/show.htm";
		curl_setopt($ch, CURLOPT_URL, $ad_url);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
		curl_setopt($ch, CURLOPT_PROXY, $proxies[$proxy]["host"]);
		curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxies[$proxy]["user"].':'.$proxies[$proxy]["pass"]); 
		$file=curl_exec($ch);	
		if(strlen($file)==0)
		{
			echo "ad page is empty\n";
		}
		$dom->load($file); 
		$div= $dom->find('div[id=detail-container]' ,0);
		if($div)
		{
				//Html parsing 
		}
		
		$dom->clear(); 
		curl_close($ch);	
	}	

}
 

tony2001

TeaM PHPClub
еще раз:
дай короткий скрипт, на котором воспроизводится.
не часть, не вырванный из контекста кусок, а полный (но короткий) скрипт, который я мог бы выполнить и увидеть проблему.
 

KlimChugunkin

Новичок
Воспроизводится будет на полном скрипте. Он не намного больше этой функции.
Могу его вставть.
Выборка id из базы -> моя функция которая курлит урлы и парсит.
Всё. Больше ничего нет. После 2-3х часов работы CLI слетает с ошибкой в курле.
 

tony2001

TeaM PHPClub
выборка из базы и XML мне не нужны, нужен только код, который необходим для воспроизведения проблемы.
 
Сверху