на модерации PHP Stack trace: Ошибка

Darkterror

Пользователь
#1
Здравствуйте уважаемые знатоки. У меня на трекере в логах пишутся какие то странное ошибки. С поиск юзал но подходящий ответы на нашел. Дайте пожалуйста свой советы.

Ошибки в логи php_err.log
Код:
[05-Oct-2016 07:40:12 Europe/Moscow] PHP Stack trace:
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   1. {main}() E:\Openserver\domains\сайт\cron.php:0
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   2. require() E:\Openserver\domains\сайт\cron.php:6
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   3. require() E:\Openserver\domains\сайт\common.php:481
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   4. require() E:\Openserver\domains\сайт\library\includes\init_bb.php:517
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   5. require() E:\Openserver\domains\сайт\library\includes\cron\cron_init.php:59
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   6. require() E:\Openserver\domains\сайт\library\includes\cron\cron_check.php:30
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   7. require() E:\Openserver\domains\сайт\library\includes\cron\cron_run.php:64
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   8. sql_db->query() E:\Openserver\domains\сайт\library\includes\cron\jobs\flash_topic_view.php:20
[05-Oct-2016 07:40:12 Europe/Moscow] PHP   9. sql_db->trigger_error() E:\Openserver\domains\сайт\library\includes\core\mysql.php:174
[05-Oct-2016 07:40:12 Europe/Moscow] PHP  10. trigger_error() E:\Openserver\domains\сайт\library\includes\core\mysql.php:804
на sql_error_bb.log
Код:
#001032 Can't find record in 'buf_topic_view'

UPDATE bb_topics t, buf_topic_view buf SET t.topic_views = t.topic_views + buf.topic_views WHERE t.topic_id = buf.topic_id

Source  : library\includes\cron\jobs\flash_topic_view.php(20) :: db1.pier
IP      : 127.0.0.1
Date    : 2016-10-05 07:40:12
Agent   :
Req_URI :
Referer :
Method  :
PID     : 04220
Request : Array
(
)______________________________________________________________________________
2. require() E:\Openserver\domains\сайт\cron.php:6

Код:
<?php

define('START_CRON', true);
define('BB_ROOT', dirname ( __FILE__ ) . '/');

require(BB_ROOT. 'common.php'); // <-------6 строка
3. require() E:\Openserver\domains\сайт\common.php:481
Код:
// Board init
if (defined('IN_FORUM'))
{
    require(INC_DIR .'init_bb.php'); // <-------481 строка 
}
4. require() E:\Openserver\domains\сайт\library\includes\init_bb.php:517
Код:
// Cron
if ((empty($_POST) && !defined('IN_ADMIN') && !defined('IN_AJAX') && !file_exists(CRON_RUNNING) && ($bb_cfg['cron_enabled'] || defined('START_CRON'))) || defined('FORCE_CRON'))
{
    if (TIMENOW - $bb_cfg['cron_last_check'] > $bb_cfg['cron_check_interval'])
    {
        // Update cron_last_check
        bb_update_config(array('cron_last_check' => (TIMENOW + 10)));

        define('CRON_LOG_ENABLED', true);  // global ON/OFF
        define('CRON_FORCE_LOG',   false); // always log regardless of job settings

        define('CRON_DIR',      INC_DIR  .'cron/');
        define('CRON_JOB_DIR',  CRON_DIR .'jobs/');
        define('CRON_LOG_DIR',  'cron/'); // inside LOG_DIR
        define('CRON_LOG_FILE', 'cron');  // without ext

        bb_log(date('H:i:s - ') . getmypid() .' -x-- DB-LOCK try'. LOG_LF, CRON_LOG_DIR .'cron_check');

        if (DB()->get_lock('cron', 1))
        {
            bb_log(date('H:i:s - ') . getmypid() .' --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!'. LOG_LF, CRON_LOG_DIR .'cron_check');

            sleep(2);
            require(CRON_DIR .'cron_init.php');  <-------517 строка 

            DB()->release_lock('cron');
        }
    }
}
5. require() E:\Openserver\domains\сайт\library\includes\cron\cron_init.php:59
Код:
//
// Run cron
//
if (cron_get_file_lock())
{
    ignore_user_abort(true);
    register_shutdown_function('cron_release_file_lock');
    register_shutdown_function('cron_enable_board');

#    bb_log(date('H:i:s - ') . getmypid() .' --x- FILE-LOCK OBTAINED ###############'. LOG_LF, CRON_LOG_DIR .'cron_check');

    cron_track_running('start');

    require(CRON_DIR .'cron_check.php'); <-------59 строка

    cron_track_running('end');
}
6. require() E:\Openserver\domains\сайт\library\includes\cron\cron_check.php:30
Код:
// Run cron jobs
if ($cron_jobs)
{
    bb_log(date('H:i:s - ') . getmypid() .' --x- RUN jobs'. LOG_LF, CRON_LOG_DIR .'cron_check');

    foreach ($cron_jobs as $job)
    {
        if ($job['disable_board'])
        {
            cron_disable_board();
            sleep(10);
            break;
        }
    }

    require(CRON_DIR .'cron_run.php'); <-------30 строка
7. require() E:\Openserver\domains\сайт\library\includes\cron\cron_run.php:64
Код:
// $cron_jobs obtained in cron_check.php
foreach ($cron_jobs as $job)
{
    $job_script = CRON_JOB_DIR . basename($job['cron_script']);

    if (file_exists($job_script))
    {
        $cron_start_time   = utime();
        $cron_runtime_log  = '';
        $cron_write_log    = (CRON_LOG_ENABLED && (CRON_FORCE_LOG || $job['log_enabled'] >= 1));
        $cron_sql_log_file = CRON_LOG_DIR .'SQL-'. basename($job['cron_script']);

        if ($cron_write_log)
        {
            $msg = array();
            $msg[] = 'start';
            $msg[] = date('m-d');
            $msg[] = date('H:i:s');
            $msg[] = sprintf('%-4s', round(sys('la'), 1));
            $msg[] = sprintf('%05d', getmypid());
            $msg[] = $job['cron_title'];
            $msg = join(LOG_SEPR, $msg);
            bb_log($msg . LOG_LF, CRON_LOG_DIR . CRON_LOG_FILE);
        }

        if ($job['log_sql_queries'])
        {
            DB()->log_next_query(100000, $cron_sql_log_file);
        }

        set_time_limit(600);
        require($job_script); <-------64 строка
8. sql_db->query() E:\Openserver\domains\сайт\library\includes\cron\jobs\flash_topic_view.php:20
Код:
// Flash buffered records
DB()->query("
    UPDATE
        ". BB_TOPICS         ." t,
        ". BUF_TOPIC_VIEW ." buf
    SET
        t.topic_views = t.topic_views + buf.topic_views
    WHERE
        t.topic_id = buf.topic_id
");  <-------20 строка
9. sql_db->trigger_error() E:\Openserver\domains\сайт\library\includes\core\mysql.php:174
Код:
    function query ($query)
    {
        if (!$result = $this->sql_query($query))
        {
            $this->trigger_error();
        }

        return $result; <-------174 строка
    }
10. trigger_error() E:\Openserver\domains\сайт\library\includes\core\mysql.php:804
Код:
function trigger_error ($msg = 'DB Error')
    {
        if (error_reporting())
        {
            if (DBG_LOG === true)
            {
                $err = $this->sql_error();
                $msg .= "\n". trim(sprintf('#%06d %s', $err['code'], $err['message']));
            }
            else
            {
                $msg .= " [". $this->debug_find_source() ."]";
            }

            trigger_error($msg, E_USER_ERROR); <-------804 строка
        }
    }
Вот крон задача. Что сделал не так? Помогите решать проблему. Заранее спасибо.
cron.png
 

Darkterror

Пользователь
#2
на cron_check.log
Код:
11:35:00 - 4404 -x-- DB-LOCK try
11:35:00 - 4404 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
11:35:02 - 4404 --x- SELECT jobs
11:35:02 - 4404 --x- RUN jobs
11:35:14 - 4404 --x- ALL jobs FINISHED *************************************************
11:40:01 - 416 -x-- DB-LOCK try
11:40:01 - 416 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
11:40:03 - 416 --x- SELECT jobs
11:40:03 - 416 --x- RUN jobs
11:40:15 - 416 --x- ALL jobs FINISHED *************************************************
11:45:00 - 1392 -x-- DB-LOCK try
11:45:00 - 1392 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
11:45:02 - 1392 --x- SELECT jobs
11:45:02 - 1392 --x- RUN jobs
11:45:16 - 1392 --x- ALL jobs FINISHED *************************************************
11:50:00 - 808 -x-- DB-LOCK try
11:50:00 - 808 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
11:50:02 - 808 --x- SELECT jobs
11:50:02 - 808 --x- RUN jobs
11:50:15 - 808 --x- ALL jobs FINISHED *************************************************
11:55:00 - 1064 -x-- DB-LOCK try
11:55:00 - 1064 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
11:55:02 - 1064 --x- SELECT jobs
11:55:02 - 1064 --x- RUN jobs
11:55:15 - 1064 --x- ALL jobs FINISHED *************************************************
12:00:00 - 3124 -x-- DB-LOCK try
12:00:00 - 3124 --x- DB-LOCK OBTAINED !!!!!!!!!!!!!!!!!
12:00:02 - 3124 --x- SELECT jobs
12:00:02 - 3124 --x- RUN jobs
12:00:16 - 3124 --x- ALL jobs FINISHED *************************************************
 

Exile

Администратор
#3
Ну полностью выкладывать листинги файлов и не стоило, все по sql-логу понятно.
Код:
#001032 Can't find record in 'buf_topic_view'

UPDATE bb_topics t, buf_topic_view buf SET t.topic_views = t.topic_views + buf.topic_views WHERE t.topic_id = buf.topic_id
Судя по ошибке, у вас в таблице тем есть тема, которая удалена, но которой почему-то пытаются засчитаться просмотры. Видимо тема удалялась, но удалилась не до конца.

Решения два:
  1. В админке запустите перестроение тем на главной странице
  2. Выполните запрос в базу: TRUNCATE TABLE buf_topic_view;
 
Сверху