We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 17815
    • 50 Posts
    Ребята нужна помощь, долго ковырялся, наконец со всем разобрался, вроде как все работает как и надо и модх вроде тоже не плох, вот только пару дней назад сайт перестал открываться sad при этом в админку получается нормально зайти, перепробывал кучу всего и менял шаблоны и убирал плагины и сниппеты и еще кучу других разностей.
    Что самое интересное в EventsLog табличке оказалось около 400тыс сообщений не содержащих абсолютно никакой полезной информации...

    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource: 
    « Too many forward attempts. » 
          SQL: The request could not be completed due to too many unsuccessful forward attempts. 
          [Copy SQL to ClipBoard] 
      
    Parser timing 
      MySQL:  [^qt^] ([^q^] Requests) 
      PHP:  [^p^]   
      Total:  [^t^]   


    вот такие вот пироги, может кто сталкивался с подобным и подскажет чтонибуть полезное, ато уже и не знаю с какого боку подойти к проблеме...
      • 30354
      • 227 Posts
      Срабатывают ограницения хостинга на скрипты/базу. Почистите табличку с логами и отключите эту функцию! smiley
        http://www.avizion.ru/ — строим стартап!
        http://tonatos.ru/ — Заходите в гости...
        • 17815
        • 50 Posts
        проблема была решена (огромное спасибо Алексею)

        решение очень смешное, после того как в админке разлогиниться - все становится на свои места - проблема скорее всего в quickedit’e - который мне сразу не понравился smiley
          • 25447
          • 10 Posts
          Приветствую! У меня проблема того же плана, только функция учета пользователей отключена. База разростается до нескольких сот мегабайт буквально за неделю. Почему эта настройка игнорируется?

          UPD: оказывается весь лог забит ошибкой парсера:
          « MODx Parse Error »
          MODx encountered the following error while attempting to parse the requested resource:
          « Too many forward attempts. »
          SQL: The request could not be completed due to too many unsuccessful forward attempts.
            • 31213
            • 153 Posts
            А сделать простой "TRUNC event_log" как-нибудь на автомате - это разве не выход?
              • 25447
              • 10 Posts
              Выход, но какой-то кривой .. smiley

              Проблема решилась исправлением ошибок в конфигурации: установкой прав на файл конфига, и еще какой-то подобной. База заполнялась именно этими ошибками.
                • 31022
                • 328 Posts
                Возникла такая же проблема, 9+ тысяч записей в EventsLog, 502 ошибка на фронтенде, и незагружающиеся css. Причем, по этим самым логам таблица выросла до таких размеров за 3 минуты. Подозреваю, что это из-за EditArea.

                Quote from: TonatosSN at Feb 14, 2007, 01:52 PM

                Срабатывают ограницения хостинга на скрипты/базу. Почистите табличку с логами и отключите эту функцию! smiley
                Quote from: Vadya at Mar 11, 2007, 05:06 PM

                А сделать простой "TRUNC event_log" как-нибудь на автомате - это разве не выход?
                Вопрос, наверное, не в тему (если он про написание скриптов), но как отключить ведение этих логов? Нигде не нашел.
                  • 31213
                  • 153 Posts
                  Мож конечно и опаздал, но все же некоторые пути: 1) Сделать плагин, в котором просто при каждом выводе документа делает запрос вида "TRUNC `event_log`" - отчистит полностью event_log от всех записей, которые генерировались в процессе создания документа. Идиотский способ конечно, но на безрыбье и рак рыба. 2) файл /manager/includes/document.parser.class.inc.php функция logEvent, собственно, в ней убиваем sql запрос, либо полностью убираем содержимое функции
                    • 31022
                    • 328 Posts
                    Vadya corp.

                    Нет, не опоздал, спасибо. Просто я в php/MySql не очень разбираюсь. Теперь оценю какой способ лучше и безболезненней (все-таки надо и полезную информацию из ошибки выудить, просто надо избежать переполнения), гляну книги и напишу чего-нибудь.
                      • 31213
                      • 153 Posts
                      Тогда лучше саму функцию подрезать - файл /manager/includes/document.parser.class.inc.php , строка 1280 (это в MODx версии 0.9.6) или 1286 (версия MODx 0.9.5).
                      Было примерно так:
                          function logEvent($evtid, $type, $msg, $source= 'Parser') {
                              $msg= mysql_escape_string($msg);
                              $source= mysql_escape_string($source);
                              $evtid= intval($evtid);
                              if ($type < 1) {
                                  $type= 1;
                              } 
                              elseif ($type > 3) {
                                  $type= 3; // Types: 1 = information, 2 = warning, 3 = error
                              }
                              $sql= "INSERT INTO " . $this->getFullTableName("event_log") . " (eventid,type,createdon,source,description,user) " .
                              "VALUES($evtid,$type," . time() . ",'$source','$msg','" . $this->getLoginUserID() . "')";
                              $ds= @mysql_query($sql);
                              if (!$ds) {
                                  echo "Error while inserting event log into database.";
                                  exit();
                              }
                          }
                      


                      Должны получить такое:

                          function logEvent($evtid, $type, $msg, $source= 'Parser') {
                              $msg= mysql_escape_string($msg);
                              $source= mysql_escape_string($source);
                              $evtid= intval($evtid);
                              if ($type < 1) {
                                  $type= 1;
                              } 
                              elseif ($type > 3) {
                                  $type= 3; // Types: 1 = information, 2 = warning, 3 = error
                              }
                              /*$sql= "INSERT INTO " . $this->getFullTableName("event_log") . " (eventid,type,createdon,source,description,user) " .
                              "VALUES($evtid,$type," . time() . ",'$source','$msg','" . $this->getLoginUserID() . "')";
                              $ds= @mysql_query($sql);
                              if (!$ds) {
                                  echo "Error while inserting event log into database.";
                                  exit();
                              }*/
                          }
                      


                      Т.е. тупо закомментировали блок, отвечающий за обращение к БД, если он снова понадобится, то раскомментируем и снова работаем.