Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
Джентльмены, нужна помощь в борьбе с глюком, имеющим кодовое название "вечный кайф" .
Описываю явление.
Стоит на сервере апач 2/FreeBSD, php 5, кучка скриптов. Характерная картина: запускаем из браузера какой-нибудь php-скрипт, скрипт выдает в страницу браузера какой-нибудь текст, браузер ее выводит и... продолжает пытаться загружать страницу, хотя все что нужно было, на страницу уже выведено. Иконка загрузки крутится, прогресс-бар стопится где-то на 70-75%, и так может продолжаться _вечно_, пока не нажмешь на "стоп". Бывает, если на этом месте обновить страницу, то все нормально отрабатывает и процесс загрузки заканчивается, бывает наоборот: при первом обращении страница выводится нормально, а при повторном запуске того же скрипта - "вечный кайф"
Причем если на хорошем канале все это еще терпимо - можно плюнуть и продолжать работать, функционально вроде бы не мешает, то на дайлапе или, упаси боже, gprs, страница может и вовсе не отобразиться в браузере, а просто повиснуть на этапе загрузки. В общем, разные юзеры на разных каналах, с разными браузерами, жалуются на примерно однотипные вышеописанные явления. А кто платит за трафик - жалуются, что данный процесс еще и трафик у них отъедает.
Сие наблюдается независимо от "тяжести" выводимой страницы - там может быть, например, несколько строк практически неформатированного текста. Если взять исходный текст выводимой страницы, сохранить как html и положить страничку на тот же сервер - вывод будет моментальным и загрузка в браузере завершится сразу после вывода содержимого. Вообще, статические страницы практически любого размера и наполнения выводятся без проблем. Из чего я делаю вывод, что собственно код тут ни при чем, а проблема, видимо, где-то между php и апачем. Буферизацию включал-отключал - никакого эффекта.
Может быть, кто-то сталкивался с такой бякой - пожалуйста, подскажите, где крутить, что копать? И перед юзерами неудобно, и самому на все это смотреть противно . В общем, хелп!!
valenok
Отправлено: 17 Августа, 2007 - 14:28:05
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
А почти всегда проблема в скрипте.
В конце после вывода всего чего должно было быть выведеным по задумке ,
срабатывает бесконечный цикл или чтото на его подобии.
Давайте код одной из страниц которые зависают.
(Может быть порблема совсем не в этом, но чаще всего именно так)
----- Truly yours, Sasha.
giddy
Отправлено: 17 Августа, 2007 - 14:53:35
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
valenok пишет:
А почти всегда проблема в скрипте.
В конце после вывода всего тчо должно было по плану быть выведено, встал себе какойто то бесконечный цикл или чтото в этом роде.
Давайте код однгой из страниц которые зависают.
(Может быть порблема совсем не в этом, но чаще всего именно так)
Скрипт phpMyAdmin знаешь? Можно начать с него...
Ну или вот попроще страничка:
<?php
include "mysqlconfig.php";
include "fun.php";
$sqlqu = "SELECT vol from admin where 1 and k like 'iso_info'";
$sqldata = mysql_query($sqlqu);
$result = mysql_fetch_array($sqldata);
$iso_info = $result["vol"];
//echo "Список файлов iso /".$file."<br>";
$file = base64_decode($code);
exec($iso_info." -f -R -i '".$file."'",$echo);
for ($i=0; $i< count($echo);$i++) :
print $echo[$i]."<br>";
endfor;
exit();
?>
P.S. Код не мой
valenok
Отправлено: 17 Августа, 2007 - 15:13:33
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Хороший код. Давайте его разберём..
(php код стоит заключать в теги [ php][/ php])
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
"Тут" мы ждать не начинаем. Если бы мы "тут" ждали, то не получили бы вывода на страницу, который ниже, в цикле (print). А мы его получаем. Всегда. Прочитайте пожалуйста внимательно начало темы.
valenok
Отправлено: 17 Августа, 2007 - 16:05:28
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Цитата:
хотя все что нужно было, на страницу уже выведено
Всё может выводится в fun.php
и не факт что exec должно в результате чтото возвращать при положительном результате.
Но тем не менее если и phpmyadmin повисает
и вряд ли зависает exit..
А когда началась проблема?
----- Truly yours, Sasha.
giddy
Отправлено: 17 Августа, 2007 - 16:31:10
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
valenok пишет:
и не факт что exec должно в результате чтото возвращать при положительном результате.
Да не суть. Берем конкретный пример, когда заведомо известно, что именно должно быть выведено (в данном случае - содержимое образа iso, или в другой аналогичной функции - содержимое архива, или еще что-нибудь). Скрипт отработал, все содержимое выведено, дальше - см. начало.
valenok пишет:
Но тем не менее если и phpmyadmin повисает
и вряд ли зависает exit..
А когда началась проблема?
Скажем так, она была изначально.
valenok
Отправлено: 17 Августа, 2007 - 17:57:30
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Помог: 3 раз(а)
Тогда обратитесь к хостинг провайдеру.
Возможно он решит проблему переустановкой программ.
----- Truly yours, Sasha.
giddy
Отправлено: 17 Августа, 2007 - 19:43:56
Новичок
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
valenok пишет:
Тогда обратитесь к хостинг провайдеру.
Возможно он решит проблему переустановкой программ.
Сервер на colocation, все конфиги в нашем полном распоряжении. Я задал вопрос в надежде, что здесь найдутся опытные люди, сталкивавшиеся с данной конкретной проблемой и сумевшие ее побороть, и посему способные дать конкретный совет, в какую сторону копать и что именно крутить. А универсальные советы типа "глючит комп - переустанови винды" я сам умею давать ;)
evgenijj
Отправлено: 17 Августа, 2007 - 21:07:08
Участник
Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006 Откуда: Москва
Помог: 10 раз(а)
Из книги Колисниченко "Linux. Полное руководство"
Цитата:
Иногда попадаются веб-страницы, которым требуется целая вечность, чтобы загрузиться. Если с одной и той же страницей это повторяется изо дня в день, то причина, скорее всего в следующем: код загружаемой страницы содержит ссылку на какой-то объект (картинку или баннер), расположенный на другом сервере, причем имя этого сервера невероятно трудно разрешить в IP-адрес. Вы думаете, что браузер "виснет", а на самом деле он ждет ответа от модуля распознавания имен (резолвера), который в свою очередь ждет ответа от сервера DNS.
Может быть, у тебя на страницах сайта какие-нибудь информеры или кнопочки типа SpyLOG?
Покинул форум
Сообщений всего: 6
Дата рег-ции: Авг. 2007
Помог: 0 раз(а)
evgenijj пишет:
Может быть, у тебя на страницах сайта какие-нибудь информеры или кнопочки типа SpyLOG?
Ты невнимательно прочитал мой вопрос. Вот этот абзац:
===
Сие наблюдается независимо от "тяжести" выводимой страницы - там может быть, например, несколько строк практически неформатированного текста. Если взять исходный текст выводимой страницы, сохранить как html и положить страничку на тот же сервер - вывод будет моментальным и загрузка в браузере завершится сразу после вывода содержимого. Вообще, статические страницы практически любого размера и наполнения выводятся без проблем.
===
Нет там никаких информеров К примеру, код, который я приводил выше, выводит текст на новую чистую страницу.
Впрочем, пока я тут излагал свою проблему, появились идеи по постановке некоторых экспериментов. Если что-нибудь удастся выявить - расскажу.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.