За последние 24 часа нас посетили 17313 программистов и 1196 роботов. Сейчас ищут 1443 программиста ...

PHP делает паузу вместо завершения работы

Тема в разделе "MySQL", создана пользователем Lexx918, 27 апр 2007.

  1. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    Сколько лет работаю с php+mysql никогда такого не видел.
    Если в скрипте приходится работать с БД, то сам скрипт не завершает работу, а как будто подвисает на несколько секунд (15-20).
    • WinXP SP2
      PHP 5.2.1
      mySQL 4.0.21
      mysql.allow_persistent = Off
    Для тестов создал такой скрипт:
    PHP:
    1. <?php
    2. echo "start\r\n";
    3.  
    4. $dbcon=mysql_connect("localhost", "root", "password");
    5. if (!$dbcon) {exit("<p>Ошибка! Сервер БД не доступен</p>".mysql_error());}
    6. if (!mysql_select_db("db_name", $dbcon)) {exit("<p>Ошибка! БД не доступна</p>");}
    7.  
    8. echo "process\r\n";
    9.  
    10. mysql_close($dbcon);
    11.  
    12. echo "finish";
    13. ?>
    запускаю его из консоли
    Код (Text):
    1. C:\php5\php D:\www\mysql.php
    На выходе тут же появляется результат:
    Код (Text):
    1. start
    2. process
    3. finish
    Процессор не занят, ничего не тормозит, но сам скрипт не завершается, а висит дальше ешё некоторе время.
    Если запустить страницу в броузере, то это выглядит так: страница грузится мгновенно и видно результат работы, но броузер продолжает работать, как будто догружает страницу. Естественно ничего не догружается, а просто завершается загрузка, но с сильным опозданием.
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  3. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    Это не выход. Вчера работало, сегодня перестало. Что ж мне теперь всё переустановить ?!
    Ну или хотя бы ссылку дай на багРапорт, где описано, что именно в этом кроется ошибка и что именно так надо поступить.
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    тогда в чем разница-то? это именно с базой проблемы? без базы скрипты завершаются нормально?
     
  5. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    Ага. Косяк только в том случае, если в скрипте идёт работа с БД. Сами по себе скрипты пашут отлично, БД работает ещё лучше. Апач вместе с ПХП тоже нареканий не вызывают. Я в этой связке (программ и версий) работаю уже не первый день. Но проблему обнаружил буквально на днях.
    Сначала думал что ошибка в функциях работы с БД. Поставил миллисекундную троссировку всего скрипта. Всё нормально: от "<?php" и коннекта до "?>" проходит 10-30 мс. ПХП даже возвращает результат, но вот работу не завершает и как следствие идёт мнимая загрузка страницы сайта.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    два дня назад был такой же косяк. на unix. оказалось кончилось место в разделе.

    вообще-то задачки интересная. поковырять бы ее...

    1. на разных базах такой глюк проявляется?
    2. если базу сдампить и потом востановить?
    3. типы хранения базы какие? MySQL INNODB?
    4. командная тулза так же выходит? mysql типа из cmd ??
     
  7. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    1. не зависимо от БД. сам коннект/дисконнект к серверу БД порождает трабл
    2. не пробовал. а смысл? у меня и так там пусто почти!
    3. MyISAM
    4. нет. в консоли всё нормально
    Проблема врядли в БД. Похоже это всё таки косяк в ПХП. Может не корректно что-то завершает?
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    так я и говорю. обнови версию mysql - и посмотришь есть ли глюк.
     
  9. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    Ты не понял! БД работает нормально. ПХП от коннекта до дисконнекта работает на УРА! Тратит несколько мс. Косяк возникает где-то в ПХП уже после выполнения mysql_close(). Контент страницы возвращается мгновенно, а вот соединение с интерпретатором остётся открытым.
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    понял, но практика показывает, что проблемы могут быть там, где их совсем не ждешь.
    так я тебе ничего не посоветую ибо надо на тачке эксперементировать.
     
  11. Lexx918

    Lexx918 Активный пользователь

    С нами с:
    27 апр 2007
    Сообщения:
    6
    Симпатии:
    0
    Установил ПХП 4. Всё сразу стало нормально работать!