Автор Тема: ошибка в строке 2907130832  (Прочитано 6664 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« : 24 Сентября 2003, 22:19:08 »
Возникла очень странная проблема. На основе выбранных из БД значений генерится страница. Но иногда скрипт прекращает свое выполнение с ошибкой о превышении максимального времени выполнения, указывая на строку типа 2907130832. При этом система уходит в непродолжительный нокдаун, и что самое интересное, файл подкачки моментально увеличивается в 3-4 раза. На лицо бесконечный цикл, но где? И почему такая ужасная строка? СУБД думаю тут ни причем, как в принципе и apache тоже. Используются сессии, может в них косяк?

Скрипт работает не стабильно и такие "фокусы" все же происходят, но не всегда. Кто-нибудь встречался с такой проблемой?

заюзано:
   php 4.3.0
   apache 1.3.27
   MySQL 3.23.47
      в общем все из денвера

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
ошибка в строке 2907130832
« Ответ #1 : 25 Сентября 2003, 00:28:05 »
Candy
Да видел, тока в 4.3.1 и больше в 4.3.2
Могу посоветовать выкинуть денвер и поставить все самому руками...
Несколько дней промучаешься, зато будешь знать откуда ноги растут.
к тому же документации на русском о том как это сделать - много
AS IS...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #2 : 25 Сентября 2003, 16:51:05 »
Цитировать
ThE0ReTiC:
Могу посоветовать выкинуть денвер и поставить все самому руками...
К сожелению глюк это не вылечит :(
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #3 : 25 Сентября 2003, 23:58:46 »
Tronyx
Похоже дело не в денвере, а в скрипте. Вопрос в каком месте может быть зацикливание, может какой-нибудь дебаггер есть?

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #4 : 26 Сентября 2003, 00:12:40 »
Candy
в пхп можно и без дебагера обойтись. print_r и echo меня всегда спасали.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #5 : 26 Сентября 2003, 08:04:50 »
Макс
Конечно можно, только у меня либо страница загружается целиком без ошибок, либо ничего не загружается и выводится сообщение об ошибке - эхо с принтом тут не помогут.

Вообще такое впечатление, что зацикливает весь скрипт, а не какой-то отдельный кусок. Это видно из того, что ошибка происходит каждый раз в разных инклюдах (кстати их порядка 10-12). Пошатался по форумам, нашел пару похожих тем с этой проблемой, но никто пока не нашел причину возникновения странного бага.

Цитировать
ThE0ReTiC
Да видел, тока в 4.3.1 и больше в 4.3.2

Думаешь баг в конкретной версии php?

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
ошибка в строке 2907130832
« Ответ #6 : 26 Сентября 2003, 13:22:32 »
Цитировать
Candy:
Думаешь баг в конкретной версии php?

ИМХО да.
в 4.3.0 и 4.3.3 я такого вообще ни разу не наблюдал.
а 4.3.2 вообще вызывала срыв стека Апача при рекурсивном вызове функции
AS IS...

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #7 : 26 Сентября 2003, 13:55:30 »
Цитировать
Candy:
Похоже дело не в денвере

Я это и имел ввиду.

Кстати у меня дома кажется 4.3.0 стоит, такой же глюк, не всегда, но бывает
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #8 : 26 Сентября 2003, 14:38:49 »
Цитировать
ThE0ReTiC
в 4.3.0 и 4.3.3 я такого вообще ни разу не наблюдал.
а 4.3.2 вообще вызывала срыв стека Апача при рекурсивном вызове функции


похоже на это...
Цитировать

http://site-make.narod.ru/mysql.html

Функции в PHP применяются так же, как и в аналогичных алгоритмических языках, хотя в большинстве конкретных областей применения PHP можно обойтись без функций. Их объявление и использование оказываются оправданными только в очень сложных случаях. PHP поддерживает рекурсивный вызов функций, но, поскольку эта система все-таки интерпретирующая, чрезмерная вложенность вызовов приведет к исчерпанию памяти и аварийному завершению скрипта (в окне Web-броузера появятся соответствующие сообщения об ошибке). Примеры рекурсивных функций, которые могут использоваться на сайте, мы рассмотрим, когда речь пойдет о форумах — вывод записей форума проще всего запрограммировать при помощи небольшой рекурсивной процедуры.


судя по всему проблема именно в этом, может стоит обратиться к разработчикам? :-)

Оффлайн Yukko

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1586
  • +0/-0
  • 0
    • Просмотр профиля
    • http://estrabota.com.ua
ошибка в строке 2907130832
« Ответ #9 : 26 Сентября 2003, 14:48:03 »
Цитировать
Да видел, тока в 4.3.1 и больше в 4.3.2

на phpclub\'e видел жалобу на эту версию, симптомы те же...
работа в Украине

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #10 : 26 Сентября 2003, 14:51:13 »
Вот кстати про рекурсии:
http://comp-science.hut.ru/Progr/Rekursia.html

Цитировать
Обращение к рекурсивной подпрограмме ничем не отличается от вызова любой другой подпрограммы. При этом при каждом новом рекурсивном обращении в памяти создаётся новая копия подпрограммы со всеми локальными переменными. Такие копии будут порождаться до выхода на граничное условие. Очевидно, в случае отсутствия граничного условия, неограниченный рост числа таких копий приведёт к аварийному завершению программы за счёт переполнения стека.

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #11 : 26 Сентября 2003, 15:18:42 »
Нефига. Рекурсия тут не причем, у меня этот глюк был в шаблонизаторе, а там во всём движке нет ни одной рекурсии. Глюк был вообще на довольно простых ошибках.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн ThE0ReTiC

  • Главный по тарелочкам
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 4041
  • +2/-0
  • 2
    • Просмотр профиля
    • http://
ошибка в строке 2907130832
« Ответ #12 : 26 Сентября 2003, 21:10:16 »
Цитировать
Candy:
может стоит обратиться к разработчикам? :-)

не стоит. в 4.3.3 и 4.3.0 таже функция отрабатывала нормально.
Цитировать
Candy:
Очевидно, в случае отсутствия граничного условия, неограниченный рост числа таких копий приведёт к аварийному завершению программы за счёт переполнения стека.

Это не тот вариант...
если бы рекурсивная функция была составлена неправильно, то это было бы на всех версиях.
И потом в случае с РНР это утверждение неверно, ибо сервер автоматически прерывает выполнение скрипта при достижении max_execution_time, естественно если оно не переопределено в скрипте...
AS IS...

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #13 : 27 Сентября 2003, 18:07:23 »
проблема вроде разрешилась включением в php.ini безопасного режима:
safe_mode = On
только вот что этот безопасный режим обеспечивает, что урезает и в чем ограничивает?

Оффлайн Candy

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 7
  • +0/-0
  • 0
    • Просмотр профиля
ошибка в строке 2907130832
« Ответ #14 : 28 Сентября 2003, 22:11:10 »
Tronyx
Цитировать
.... Глюк был вообще на довольно простых ошибках.

Интересно каких?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28