Humanity

Edit the world by your favorite way

apt-mirrorがlockファイルを残して死ぬ #apt_mirror_ga_lock_file_wo_nokosite_sinu

lockファイルが残ってしまい、次回起動時に「apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187.」と言って即終了してしまう。
原因は自分の設定ファイルの間違いだった。
次のように書いていたが、

deb ftp://ftp2.jp.debian.org/debian/ stable main #contrib non-free

こう書くと次のような結果になる。

Downloading 29 index files using 20 threads...
Begin time: Mon Mar 19 04:00:01 2012
[20]... [19]... [18]... [17]... [16]... [15]... [14]... [13]... [12]... [11]... [10]... [9]... [8]... [7]... [6]... [5]... [4]... [3]... [2]... [1]... [0]...
End time: Mon Mar 19 04:03:50 2012

Proceed indexes: [Ssh: cannot open ftp2.jp.debian.org/debian///dists/stable/#contrib/source/Sources.gz: No such file
apt-mirror: can't open index in proceed_index_gz at /usr/bin/apt-mirror line 450.

次のように書かないとダメ。

deb ftp://ftp2.jp.debian.org/debian/ stable main contrib non-free

もしくは

deb ftp://ftp2.jp.debian.org/debian/ stable main

コメント文字列は行頭のものしかコメントとして見なしてくれない。
上の設定によって無事正しいURLを見るようになる。
しかしここまで未検証で、エラーメッセージ以外全部俺の妄想です。
再現するまでちょっとだけ時間かかって調べるのがめんどくさいのでcronに任せる。
仕事じゃないしゆったり運用する。

  • 間違ったURL
    • ftp2.jp.debian.org/debian///dists/stable/#contrib/source/Sources.gz
  • 正しいURL
    • ftp2.jp.debian.org/debian///dists/stable/contrib/source/Sources.gz

スラッシュが重なってるのも気持ち悪いけど気にしないことにした。


しかし、当然lockファイルを消さないapt-mirrorもまずい。
という訳でapt-mirrorも直すことにした。
という訳で以下のようにスクリプトを変更して、lockファイルは消して、「間違った設定のまま」一晩見守ることに。
これで次回はまた間違ったURLに繋がるが、ちゃんとlockファイル消してくれるはず。

--- /usr/bin/apt-mirror.bak     2012-03-23 01:10:53.492203096 +0900
+++ /usr/bin/apt-mirror 2012-03-23 01:10:55.460202079 +0900
@@ -300,6 +300,7 @@
 $SIG{INT} = "unlock_aptmirror";
 $SIG{HUP} = "unlock_aptmirror";
 $SIG{TERM} = "unlock_aptmirror";
+$SIG{__DIE__} = "unlock_aptmirror";

 lock_aptmirror();

TODO

  • 動作確認できたらパッチ送る
  • 設定ファイルを直したら本当に正しいURLに繋がるか確認する

(2012/03/23 12:20) 追記

動作確認できたらパッチ送る

動作確認できた。
パッチ送った。

設定ファイルを直したら本当に正しいURLに繋がるか確認する

設定ファイルを直して毎回cronで実行されてるのと同じように*1実行。
確認中。終わんねぇ...
もしかして今までエラーで即終了してたからダウンロードかなり時間かかったりするかな...一応ファイルはあるっぽいけど、しかし今夜のcron jobに間に合うかな...

(2012/03/24 17:55 追記) 4:00 amに開始して5:38 amに終わるとかけっこうかかるな...

(2012/03/27 1:05 追記) jigdoみたいな仕組みないんかなーと思ってたら案の定一度フルでダウンロードした後は10分とか2分で終わるようになった。逆に何か失敗してそうで怖い(ぇ

*1:対話環境だし完全に同じ環境ではないけど