На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Отладка процесса через gdb. Подскажите, куда двигаться дальше? , Apache2/php-fpm
    Всем доброго времени суток!
    Краткая предыстория. Есть свой маленький сервер.
    Скрытый текст

    OS: Ubuntu 6.5.0-14-generic #14~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Nov 20 18:15:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
    Apache: Apache/2.4.52
    PHP: 8.3.1 as FPM/FastCGI

    На нём есть сайты. Практически все отрабатывают нормально, один в некоторых случаях падает.
    ExpandedWrap disabled
      # cat /var/log/apache2/error.log

    выдал:
    ExpandedWrap disabled
      [Mon Jan 15 20:21:27.137606 2024] [proxy_fcgi:error] [pid 3616] [client 192.168.35.215:59150] AH01067: Failed to read FastCGI header, referer: http://myproject/
      [Mon Jan 15 20:21:27.137730 2024] [proxy_fcgi:error] [pid 3616] (104)Connection reset by peer: [client 192.168.35.215:59150] AH01075: Error dispatching request to : , referer: http://myproject/

    Начал смотреть через gdb <apache2_pid> backtrace:
    Скрытый текст

    ExpandedWrap disabled
      0x00007f74f871b59d in __GI___select (nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x7ffe9464c1d0) at ../sysdeps/unix/sysv/linux/select.c:69
      69      ../sysdeps/unix/sysv/linux/select.c: Нет такого файла или каталога.
      (gdb) backtrace full
      #0  0x00007f74f871b59d in __GI___select (nfds=0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x7ffe9464c1d0)
          at ../sysdeps/unix/sysv/linux/select.c:69
              sc_ret = -514
              sc_ret = <optimized out>
              s = <optimized out>
              us = <optimized out>
              ns = <optimized out>
              ts64 = {tv_sec = 0, tv_nsec = 417375183}
              pts64 = 0x7ffe9464c170
              r = <optimized out>
      #1  0x00007f74f898af39 in apr_sleep () from target:/lib/x86_64-linux-gnu/libapr-1.so.0
      No symbol table info available.
      #2  0x00005623f94970a5 in ap_wait_or_timeout ()
      No symbol table info available.
      #3  0x00007f74f883e754 in ?? () from target:/usr/lib/apache2/modules/mod_mpm_prefork.so
      No symbol table info available.
      #4  0x00005623f94900e8 in ap_run_mpm ()
      No symbol table info available.
      #5  0x00005623f948f609 in main ()
      No symbol table info available.


    При выполнении
    ExpandedWrap disabled
      $ sudo a2enmod mpm_prefork

    получаю:
    ExpandedWrap disabled
      Considering conflict mpm_event for mpm_prefork:
      Considering conflict mpm_worker for mpm_prefork:
      Module mpm_prefork already enabled

    Сейчас не знаю, куда копать дальше, чтобы понять, в чём причина падения и как её пофиксить. Может кто подсказать идеи?
      Цитата Костик+ @
      Может кто подсказать идеи?

      Чисто по отладке такого рода - не подскажу, не специалист. Есть три мысли:
      1) Еще раз пробежаться по документации Apache2 и найти требования к ядру линукс. Выверить выделяемые лимиты разного толка, если есть несоответствия - исправить их через ulimit и/или sysctl, а то и переконфигурации и пересборке ядра
      2) Постараться найти "виновника", который - не Apache2. Я бы посоветовал сделать 1-2 даундгэйда версий PHP (сперва до 8.2, если будут повторятся падения - до 8.1)
      3) Постараться найти еще идеи, которые - не отладка. Ну или найти соответствующие куры системного разработчика линупс
        А смысл включать снова mpm_prefork. Из backtrace и так видно, что он есть и работает. А судя по ошибка в error.log - как раз получен не корректный ответ от PHP/FastCGI. А во второй строке с ошибкой явно указан не верный адрес (подчеркнут): Error dispatching request to : , referer: ...
        Сообщение отредактировано: macomics -
          Majestio, macomics, спасибо за ответы!

          Majestio, попробовал понизить версию PHP, ошибка пропала, скрипт заработал. Брал сторонний фреймворк. Действительно, вопрос в версии.

          macomics, тоже обратил внимание на это, показалось странным. Буду смотреть.
          0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
          0 пользователей:


          Рейтинг@Mail.ru
          [ Script execution time: 0,0290 ]   [ 15 queries used ]   [ Generated: 27.04.24, 10:02 GMT ]