Ошибка smf_log_online / Subs.php

Автор FoxNotes, 31 мая 2026, 11:20:51

« назад - далее »

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

FoxNotes

Добрый день

SMF 2.0.15 

Регулярно появляется ошибка БД с сообщением:

Table './paulfn_smf1/smf_log_online' is marked as crashed and last (automatic?) repair failed
Файл: /var/www/f12174/data/www/forum.fox-notes.ru/Sources/Subs.php
Строка: 2683


smf_log_online 
восстановить таблицу не удается, 
помогает очистка таблицы



Subs.php

Строка 2683
'log_time' => time() - $modSettings['lastActive'] * 60,


Фрагмент кода
// Otherwise, we have to delete and insert.
if (empty($_SESSION['log_time']))
{
if ($do_delete || !empty($user_info['id']))
$smcFunc['db_query']('', '
DELETE FROM {db_prefix}log_online
WHERE ' . ($do_delete ? 'log_time < {int:log_time}' : '') . ($do_delete && !empty($user_info['id']) ? ' OR ' : '') . (empty($user_info['id']) ? '' : 'id_member = {int:current_member}'),
array(
'current_member' => $user_info['id'],
'log_time' => time() - $modSettings['lastActive'] * 60,
)
);

$smcFunc['db_insert']($do_delete ? 'ignore' : 'replace',
'{db_prefix}log_online',
array('session' => 'string', 'id_member' => 'int', 'id_spider' => 'int', 'log_time' => 'int', 'ip' => 'raw', 'url' => 'string'),
array($session_id, $user_info['id'], empty($_SESSION['id_robot']) ? 0 : $_SESSION['id_robot'], time(), 'IFNULL(INET_ATON(\'' . $user_info['ip'] . '\'), 0)', $serialized),
array('session')
);
}




digger®

Цитата: FoxNotes от 31 мая 2026, 11:20:51Добрый день

SMF 2.0.15

Регулярно появляется ошибка БД с сообщением:

Table './paulfn_smf1/smf_log_online' is marked as crashed and last (automatic?) repair failed
Файл: /var/www/f12174/data/www/forum.fox-notes.ru/Sources/Subs.php
Строка: 2683


smf_log_online
восстановить таблицу не удается,
помогает очистка таблицы



Subs.php

Строка 2683
'log_time' => time() - $modSettings['lastActive'] * 60,


Фрагмент кода
// Otherwise, we have to delete and insert.
if (empty($_SESSION['log_time']))
{
if ($do_delete || !empty($user_info['id']))
$smcFunc['db_query']('', '
DELETE FROM {db_prefix}log_online
WHERE ' . ($do_delete ? 'log_time < {int:log_time}' : '') . ($do_delete && !empty($user_info['id']) ? ' OR ' : '') . (empty($user_info['id']) ? '' : 'id_member = {int:current_member}'),
array(
'current_member' => $user_info['id'],
'log_time' => time() - $modSettings['lastActive'] * 60,
)
);

$smcFunc['db_insert']($do_delete ? 'ignore' : 'replace',
'{db_prefix}log_online',
array('session' => 'string', 'id_member' => 'int', 'id_spider' => 'int', 'log_time' => 'int', 'ip' => 'raw', 'url' => 'string'),
array($session_id, $user_info['id'], empty($_SESSION['id_robot']) ? 0 : $_SESSION['id_robot'], time(), 'IFNULL(INET_ATON(\'' . $user_info['ip'] . '\'), 0)', $serialized),
array('session')
);
}




Свободное место на хостинге/сервере случайно не закончилось?

FoxNotes



FoxNotes

А это может быть связано с наплывом ботов? 

digger®

Цитата: FoxNotes от 02 июня 2026, 18:24:33А это может быть связано с наплывом ботов?
Таблицы в базе не должны биться, это ненормальная ситуация независимо от того с чем она связана.
Основные причины, это нехватка места на диске, аварийная перезагрузка или падение mysql.

FoxNotes

Спасибо, буду разбираться.