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 3 years have passed since last update.

httpd で発生した Segmentation fault の調査備忘録

Last updated at Posted at 2021-08-25

web サイトで何も表示されない現象が発生!
エラーログを確認すると Segmentation fault が発生していました。

[Tue Aug 24 15:41:48.681377 2021] [core:notice] [pid 2777] AH00052: child pid 2781 exit signal Segmentation fault (11)

しかし、これだけは何が原因なのか全くわからないので core dump ファイルから調査することになりました。
core dump ファイル出力設定、gdb 調査の備忘録です。

  • 環境
    • amazonlinux2
    • Apache/2.4.48
    • PHP 7.2.34
    • t2.nano,t2.medium

core dump ファイルの出力設定

現状の出力設定を確認してみます。
確認には、 ulimit -a コマンドを利用します。

core file size          (blocks, -c) 0 -> いまこれ
core file size          (blocks, -c) unlimited -> こうなりたい

core file の上限が 0 で出力できない状態なので設定を変更します

  • /etc/security/limits.conf に設定を追加
* soft core unlimited
* hard core unlimited
  • /proc/sys/kernel/core_pattern に出力先パスと書式を指定
echo "/var/local/dumps/core.%e.%p"> /proc/sys/kernel/core_pattern
%e: プロセス名
%p: PID
  • 恒久的に出力先パスを指定する場合は、/etc/sysctl.conf に設定
kernel.core_pattern = /var/local/dumps/core.%e.%p
  • httpd.conf に出力先パスを指定
CoreDumpDirectory /var/local/dumps

httpd を再起動します。

core dump ファイルの解析準備

必要なパッケージ、コマンドをインストールします

  • gdb, gcc
yum install -y gdb
yum install -y gcc
  • debuginfo パッケージ
    gdb コマンド実行結果に no debugging symbols found が表示された場合、debuginfo パッケージをインストールします。
debuginfo-install httpd-2.4.48-2.amzn2.x86_64

core dump ファイルの解析

gdb コマンドに core dump ファイルのプロセスが

gdb {core dump ファイルプロセスの実行ファイル} {coreファイル}
gdb /usr/sbin/httpd -c /var/local/dumps/{coreファイル名}
・・・
(gdb)
backtrace を入力

(gdb) backtrace

参考にさせていただきました

ありがとうございました。

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?