[過去ログ] /**ファイルシステム総合スレ その7**/ (955レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
168: 2007/04/05(木)16:26 ID:xu52r8kl(1) AAS
俺の若い頃は藁半紙に書いたキーボードとライオン本でカーネルハックの練習をしたもんだよ
169: 2007/04/05(木)17:40 ID:ArTajbou(1) AAS
エアオナニー
170: 2007/04/05(木)23:16 ID:jNYQCAbT(1) AAS
牛乳石鹸をマウスに見立てて、X Windowへの思いをはせたもんだ
171: 81 2007/04/06(金)04:19 ID:kERYUymx(1/9) AAS
mount -o mount,ro / がbusy で帰ってきて困ってた81(80と間違えてた)です。
2週間ほどたってやっと再現されました。 しかもラッキーに2台。追加したprintk
から以下のような出力。
fs_may_remount_ro found pending delete: 0xe6feac80
do_remount_sb: failed fs_may_remount_ro: -138124224
do_mount: failed do_remount: -16
大切なのは最初の1行で以下のprintkから出力されました。
fs/file_table.c:
int fs_may_remount_ro(struct super_block *sb)
{
省10
172: 81 2007/04/06(金)04:29 ID:kERYUymx(2/9) AAS
さて、まずどのファイルか? gdbを/proc/kcoreに繋いで除きました。
(gdb) p ((struct file*)0xe6feac80)->f_dentry->d_iname
$12 = "libz.so.1.2.1.2", '¥0' <repeats 20 times>
gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_iname
$14 = "lib¥000t", '¥0' <repeats 30 times>
(gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_parent->d_iname
$16 = "usr¥000]", '¥0' <repeats 30 times>
(gdb) p ((struct file*)0xe6feac80)->f_dentry->d_parent->d_parent->d_parent->d_iname
$18 = "/¥000dline", '¥0' <repeats 28 times>
というわけで問題のファイルは"/usr/lib/libz.so.1.2.1.2"
省2
173: 81 2007/04/06(金)04:41 ID:kERYUymx(3/9) AAS
もうちょっと掘り下げる。
(gdb) p ((struct file*)0xe6feac80)->f_dentry->d_inode.i_ino
$24 = 230991
iノード番号は230991。
# ls -li /usr/lib/libz.so.1.2.1.2
231021 -rwxr-xr-x 1 root root 63624 Jul 21 2005 /usr/lib/libz.so.1.2.1.2
??? 食い違うぞ ???
省11
174: 81 2007/04/06(金)04:50 ID:kERYUymx(4/9) AAS
それでもってntpがどういうファイルを開いているか見ると、なんか怪しげな状態。
# lsof | grep ntp
ntpd 21393 ntp cwd DIR 3,3 4096 2 /
ntpd 21393 ntp rtd DIR 3,3 4096 2 /
ntpd 21393 ntp txt REG 3,3 431016 227728 /usr/sbin/ntpd
ntpd 21393 ntp mem REG 3,3 230494 /usr/lib/libkrb5.so.3.2 (path inode=231028)
ntpd 21393 ntp mem REG 3,3 194104 /lib/libdl-2.3.4.so (path inode=195480)
ntpd 21393 ntp mem REG 3,3 47468 194100 /lib/libnss_files-2.3.4.so
ntpd 21393 ntp mem REG 3,3 210587 /lib/tls/libc-2.3.4.so (path inode=210651)
ntpd 21393 ntp mem REG 3,3 194115 /lib/libcom_err.so.2.1 (path inode=195486)
省10
175: 81 2007/04/06(金)04:52 ID:kERYUymx(5/9) AAS
ちなみに正常(?)な状態のntpはこんな感じ。
proto5# lsof | grep ntp
ntpd 2101 ntp cwd DIR 3,2 4096 2 /
ntpd 2101 ntp rtd DIR 3,2 4096 2 /
ntpd 2101 ntp txt REG 3,2 431016 241991 /usr/sbin/ntpd
ntpd 2101 ntp mem REG 3,2 941024 260982 /lib/libcrypto.so.0.9.7a
ntpd 2101 ntp mem REG 3,2 11776 260970 /lib/libcap.so.1.10
ntpd 2101 ntp mem REG 3,2 1525004 177572 /lib/tls/libc-2.3.4.so
ntpd 2101 ntp mem REG 3,2 16800 294968 /lib/libdl-2.3.4.so
ntpd 2101 ntp mem REG 3,2 415188 247066 /usr/lib/libkrb5.so.3.2
省9
176: 81 2007/04/06(金)04:56 ID:kERYUymx(6/9) AAS
ちなみにこの症状は問題のおこった2つのシステムでまったく同じ。
おなじlibz.soでひっかかり、やはりntpが同じような状態になってます。
さて、この"path inode"というのがキモのようですが、なんの事か
全然分からないからどこかで調べてきます。
ここまでの情報で何か助言があればよろしくおねがいします。
177: 81 2007/04/06(金)05:25 ID:kERYUymx(7/9) AAS
なお、問題のあるシステムでは問題のあるのはntpだけでありません。
# lsof | grep "path inode" | cut -d" " -f1 | sort | uniq
agetty
crond
ifplugd
klogd
mingetty
ntpd
portmap
syslogd
省4
178(1): 2007/04/06(金)05:46 ID:lKLkq3ZS(1/2) AAS
prelinkによってロード中の共有ライブラリが置き換えられているのかな?
prelinkを止めてみるとか。
179: 81 2007/04/06(金)06:12 ID:kERYUymx(8/9) AAS
>>178
そっ、それだ〜〜〜〜〜〜〜〜〜〜〜〜。
こんなもの見つけました。
/etc/cron.daily/prelink
一発で再現出来ました。
正常状態:
省14
180(1): 2007/04/06(金)06:56 ID:lKLkq3ZS(2/2) AAS
オープン中のファイルは移動したり削除しても影響を受けないから、prelink の
動作自体は乱暴でもないような。
lsof の出力に path inode が出ているのは、オープン中に置き換えられたファイルで
ある事を示しているのを初めて知ったから俺も勉強になったよ。
問題が解決して良かったね。
181: 81 2007/04/06(金)07:16 ID:kERYUymx(9/9) AAS
>>180
ありがとうございます。
> lsof の出力に path inode が出ているのは、オープン中に置き換えられたファイル
普通のファイルのように素直に"deleted"とか書いてくれればもっと早く解決したかもしれないんですけどね。
ちょっとその場合とは意味が違うのでしょう。 後で勉強したいと思います。
# cat > hoge.txt &
[1] 9317
# lsof | grep hoge.txt
cat 9317 root 1w REG 253,0 0 15 /hoge.txt
# rm hoge.txt
省2
182(1): 2007/04/07(土)00:19 ID:PW/Wm1N9(1) AAS
よくそこまで調べたなー
/proc/kcoreをgdbに繋ぐなんてテクニック初めて知った
すげぇわ
183: 2007/04/07(土)00:22 ID:l0bc2a+o(1) AAS
>>182
/proc/kcoreはgdbで使うための仮想ファイルだろ?
184: 2007/04/07(土)05:48 ID:07BPrRWv(1) AAS
外部リンク[xml]:www.gentoo.org
4. 既知の問題と解決策
185(1): 2007/04/07(土)15:32 ID:w4EDI2Lw(1) AAS
怠け者な俺は、locateとかprelinkなんて余計なものは真っ先に外しちゃうからなぁ。
186(1): 2007/04/07(土)21:33 ID:Vx40DlGH(1) AAS
>>185
locateの便利さがわからんか。
デスクトップ検索の先駆けだぞ。
187(1): 2007/04/07(土)21:37 ID:qEROFzP6(1) AAS
ファイルシステムってハマる時はハマるのだな…。
自分ならとても解決できなかったように思う。
locateは入っていたがprelinkは入れてなかったので入れようかと思っていたが、
こんな理解不能の事態が発生するのでは、いれていいかどうか不安に感じてしまう…。
上下前次1-新書関写板覧索設栞歴
あと 768 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s