タグ

ブックマーク / meech.hatenadiary.org (2)

  • おれが…おれこそがBtrfsckだ!、という話 - Emacs ひきこもり生活

    Btrfsは非常に安定した安心なファイルシステムです - Togetter まあ、上のリンクのような話なのだけど、そこからどういうバグだったの?とかどういう状況だったの?とかどうやって直したの?というところを補則するための記事 もともとは多分ここのエラーで、leafがcorruptしたんじゃないかな?と思う。 http://twitpic.com/cv01wy/full そんでここでささるようになった http://via.me/-cjxgikk こっち側を分析していく。 RIPを見ると死んでる場所は btrfs_drop_inode+0x10 であることがわかる。 btrfs_drop_inode() はこんだけの関数。ちょろい。 int btrfs_drop_inode(struct inode *inode) { struct btrfs_root *root = BTRFS_I(i

    おれが…おれこそがBtrfsckだ!、という話 - Emacs ひきこもり生活
  • unix のシグナル処理あれこれ - Emacs ひきこもり生活

    Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in

    unix のシグナル処理あれこれ - Emacs ひきこもり生活
  • 1