0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Aliasディレクティブで設定したパスだけService Temporarily Unavailableになる

Posted at

ErogameScapeはスマホ用の画面があります。
具体的には/sp/にアクセスするとスマホ用の画面が表示されます。

ユーザーさんから、数日前からスマホ用のサイトにアクセスするとService Temporarily Unavailableになる、と連絡を頂きました。
PC用のサイトはOKとのことです。

PC用のサイトはスマホ用のサイトと同じサーバー(Apache)で動かしています。
ソフトのVerは以下の通りです。

# httpd -v
Server version: Apache/2.4.37 (AlmaLinux)
Server built:   Apr  6 2023 13:28:53
# php -v
PHP 8.2.5 (cli) (built: Apr 11 2023 16:16:23) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies
# php-fpm -v
PHP 8.2.5 (fpm-fcgi) (built: Apr 11 2023 16:16:23)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies

PC用のサイトは歴史的な理由から

<IfModule mod_userdir.c>
    UserDir public_html
</IfModule>

で設定したディレクトリで動いており、スマホ用のサイトは

Alias /sp /home/ap2/sp/sp

で設定したディレクトリで動いています。

Service Temporarily Unavailableになるということは、PHPが応答を返していないからだと推測しました。
まず、httpdを再起動しましたが状況かわらず。
次に、php-fpmを再起動して回復しました。

以下調査結果です。
そういえばここ数日Logwatchのメールに見慣れないWARINGがあることを思い出しました。

--------------------- Kernel Begin ------------------------
 WARNING:  Segmentation Faults in these executables
    php-fpm :  1437 Time(s)

 1437 Time(s): Code: 10 48 63 d2 8b 3c 97 89 78 0c 49 8b 46 10 89 0c 90 41 83 46 1c 01 f6 46 1c 08 74 23 49 8b 47 18 80 78 18 00 74 19 48 8b 46 08 <f6> 40 04 20 74 0f 8b 00 48 8b 95 e0 01 00 00 48 89 34 02 66 90 49

---------------------- Kernel End -------------------------

php-fpmがセグフォしております…
/var/log/messagesを確認しました。
以下のようなメッセージが多数記録されていました。

Apr 19 12:53:31 sakura kernel: php-fpm[3489566]: segfault at fffffffc00000014 ip 00007fbe6df3733b sp 00007ffe316e1940 error
5 in opcache.so[7fbe6df02000+e3000]
Apr 19 12:53:31 sakura kernel: Code: 10 48 63 d2 8b 3c 97 89 78 0c 49 8b 46 10 89 0c 90 41 83 46 1c 01 f6 46 1c 08 74 23 49
8b 47 18 80 78 18 00 74 19 48 8b 46 08 <f6> 40 04 20 74 0f 8b 00 48 8b 95 e0 01 00 00 48 89 34 02 66 90 49

一番最初に上記メッセージが出たところまでたどったところ/var/log/messagesに以下の通り出力されていました。

Apr 19 12:53:01 sakura kernel: httpd invoked oom-killer: gfp_mask=0x6200ca(GFP_HIGHUSER_MOVABLE), order=0, oom_score_adj=0
Apr 19 12:53:01 sakura kernel: CPU: 0 PID: 3488266 Comm: httpd Kdump: loaded Not tainted 4.18.0-372.32.1.el8_6.x86_64 #1
Apr 19 12:53:01 sakura kernel: Hardware name: FUJITSU PRIMERGY RX1330 M3/D3375-B1, BIOS V5.0.0.11 R1.23.0 for D3375-B1x
               04/25/2019
Apr 19 12:53:01 sakura kernel: Call Trace:
Apr 19 12:53:01 sakura kernel: dump_stack+0x41/0x60
Apr 19 12:53:01 sakura kernel: dump_header+0x4a/0x1df
Apr 19 12:53:01 sakura kernel: oom_kill_process.cold.32+0xb/0x10
Apr 19 12:53:01 sakura kernel: out_of_memory+0x1bd/0x4e0
以下略

oom-killerが動いています。
ユーザーさんが無限ループする再帰的なSQLを何回も実行してサーバーの負荷が著しくあがっているタイミングでした。
無限ループする再帰的なSQLの影響でメモリを食いつぶしてoom-killerが動いたのだと思います。
そして理由はわからないですが、このときからphp-fpmのsegfaultがでるようになりました。

不思議なのは/sp/配下のphpにアクセスしたときだけ(おそらく)php-fpmがセグフォして落ちていたと思われる…ということです。
でも、経験上、何かが壊れると自分の想像しない動作をすることがほとんどでしたので…、そういう壊れ方(今回は何かが物理的に壊れたわけではないですが…)もあるんだな、と納得することにしました。

次からはKernelのWARNINGをスルーしないようにいたします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?