URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 2560
[ Назад ]

Исходное сообщение
"cgi скрипт жрёт память бочками"

Отправлено Legolas , 12-Фев-04 23:06 
Всем привет! Мой cgi скрипт на Perl'e при определенных условиях (пока я не выяснил) начинает активно (бесконечно, пока не убить) жрать память. Проверил скрипт: зацикливаний нет. Задача скрипта: обработать данные из формы и залезть на указанный URL для проверки.
Может кто встречался с подобным?

Из библиотек использую только LWP::UserAgent,IO::Socket и Fcntl. Если файл залочен, выдаю сообщение об ошибке и прерываю программу - все равно не помогло.
Может ли эта запись:
  while (<$connect>) {
    push(@result,$_);
  }
быть причиной утечки памяти?

Не пойму в чем дело.


Содержание

Сообщения в этом обсуждении
"cgi скрипт жрёт память бочками"
Отправлено Michael , 14-Фев-04 00:30 
>Всем привет! Мой cgi скрипт на Perl'e при определенных условиях (пока я
>не выяснил) начинает активно (бесконечно, пока не убить) жрать память. Проверил
>скрипт: зацикливаний нет. Задача скрипта: обработать данные из формы и залезть
>на указанный URL для проверки.
>Может кто встречался с подобным?
я совсем недавно боролся с таким же явлением...
у меня причиной было некорректное обращение со сложными структурами данных (хэш массивов).
так как я не особо спец по перлу и найти навскидку прблему не удалось, то пришлось мделенно и мучитально искать ошибки перенасыщая программу проверками на difined каждой используемой переменной или ячейки массива...
в одном из случаев память жрал sort с некорректно написанным условием.

"cgi скрипт жрёт память бочками"
Отправлено Legolas , 14-Фев-04 01:02 
Спасибо! Разобрался в чем дело, все-таки у меня происходило зацикливание while в одной процедуре, причём оно зависело от типа данных, и проявляло себя в редких случаях... В общем, лажанулся я малость... :)

"cgi скрипт жрёт память бочками"
Отправлено ACCA , 29-Апр-04 00:42 
>так как я не особо спец по перлу и найти навскидку прблему
>не удалось, то пришлось мделенно и мучитально искать ошибки перенасыщая программу
>проверками на difined каждой используемой переменной или ячейки массива...


#!/usr/bin/perl -w
use strict;

в начале исполняемого файла сделают это за тебя.