Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Выжирает память и умирает

0 views
Skip to first unread message

Sergey Anohin

unread,
Jan 29, 2019, 5:04:59 AM1/29/19
to
Hello!

https://pastebin.com/1WnNG0MC

этот скриптик запускается с консоли и делает перелинковку тредов (есть такой
режим отображения сообщений в веб морде),
однако на при обработке одной эхи, оно делает сабж. Вывод такой:

# php ./relink.php CLASSIC_COMPUTER

PHP Notice: Undefined index: REMOTE_ADDR in
/usr/local/www/wfido/bin/relink.php on line 4
CLASSIC_COMPUTER
PHP Notice: Undefined index: recieved in /usr/local/www/wfido/bin/relink.php
on line 145
[далее все повторяется поскипано]

Где подвох и как найти? Подозреваю в базе косяк какой-то?


С наилучшими пожеланиями, Sergey Anohin.

Sergey Anohin

unread,
Jan 29, 2019, 5:29:59 AM1/29/19
to
Hello, Sergey!

SA> https://pastebin.com/1WnNG0MC
SA> этот скриптик запускается с консоли и делает перелинковку тредов (есть
SA> такой режим отображения сообщений в веб морде),
SA> однако на при обработке одной эхи, оно делает сабж. Вывод такой:
SA> # php ./relink.php CLASSIC_COMPUTER
SA> PHP Notice: Undefined index: REMOTE_ADDR in
SA> /usr/local/www/wfido/bin/relink.php on line 4
SA> CLASSIC_COMPUTER
SA> PHP Notice: Undefined index: recieved in
SA> /usr/local/www/wfido/bin/relink.php on line 145
SA> [далее все повторяется поскипано]
SA> Где подвох и как найти? Подозреваю в базе косяк какой-то?

на линии 145 вижу что по смыслу опечатка и наверно должно быть
if ($row->recieved > $thread_info['lastupdate']){
но сабж это не устраняет :(
что в таких случаях гуру делают?

Oleg Redut

unread,
Jan 29, 2019, 9:24:58 PM1/29/19
to
Доброе (current) время суток, Sergey!

SA>> Где подвох и как найти? Подозреваю в базе косяк какой-то?

SA> на линии 145 вижу что по смыслу опечатка и наверно должно быть
SA> if ($row->recieved > $thread_info['lastupdate']){
SA> но сабж это не устраняет :(
SA> что в таких случаях гуру делают?

Я делаю так, скажем строка 82:

$query="SELECT msgid,reply,subject,fromname,fromaddr,date,recieved,hash
FROM `tmp` ORDER BY `recieved` LIMIT 1;";
$result2=mysqli_query($link, $query);
echo $query;


Потом копирую выведенную строку запроса и вбиваю в мускул. Смотрю, на что он
будет ругаться. Это если подозрение на косяк базы.

Про выжирание памяти - поставить в цикл счётчик с выводом и смотреть на какой
строке падает. Опять же не могу сказать, но кажется mysqli_fetch_object будет
больше памяти съедать, чем mysqli_feth_row. Хотя же переменная постоянно
обновляется,а не добавляются новые.

P.S.
PHP Notice: Undefined index: REMOTE_ADDR in

if ( isset($_SERVER["REMOTE_ADDR"])) {

Что я могу еще сказать?..
Oleg

... AKA oleg(&)redut.info AKA ICQ 28852595

Sergey Anohin

unread,
Jan 30, 2019, 2:44:58 AM1/30/19
to
Hello, Oleg!

SA>>> Где подвох и как найти? Подозреваю в базе косяк какой-то?
SA>> на линии 145 вижу что по смыслу опечатка и наверно должно быть
SA>> if ($row->recieved > $thread_info['lastupdate']){
SA>> но сабж это не устраняет :(
SA>> что в таких случаях гуру делают?
OR> Я делаю так, скажем строка 82:
OR> $query="SELECT msgid,reply,subject,fromname,fromaddr,date,recieved,hash
OR> FROM `tmp` ORDER BY `recieved` LIMIT 1;";
OR> $result2=mysqli_query($link, $query);
OR> echo $query;
OR> Потом копирую выведенную строку запроса и вбиваю в мускул. Смотрю, на что
OR> он будет ругаться. Это если подозрение на косяк базы.
OR> Про выжирание памяти - поставить в цикл счётчик с выводом и смотреть на
OR> какой строке падает. Опять же не могу сказать, но кажется
OR> mysqli_fetch_object будет больше памяти съедать, чем mysqli_feth_row. Хотя
OR> же переменная постоянно обновляется,а не добавляются новые.

Дебаг SQL запроса помог, спасибо! Там два поля были некорректные в базе и был
луп из-за этого.

OR> P.S.
OR> PHP Notice: Undefined index: REMOTE_ADDR in
OR> if ( isset($_SERVER["REMOTE_ADDR"])) {

Про isset уже вычитал вчера, много таких мелочей, буду фиксить потихоньку.
0 new messages