<div dir="ltr"><div class="gmail_extra"><div class="gmail_extra">藤原です。</div><div class="gmail_extra"><br></div><div class="gmail_extra">2013年12月2日 23:14 <a href="mailto:master@zio-matrix.net">master@zio-matrix.net</a> <<a href="mailto:master@zio-matrix.net">master@zio-matrix.net</a>>:</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">> Zone 上で Squid をテストしていた時に親が落ちました。</div><div class="gmail_extra">> こういった状況ってあるんですかね?</div><div class="gmail_extra">> </div><div class="gmail_extra">> # Squid は野良です。IPS の奴ではないです。</div>
<div class="gmail_extra">> </div><div class="gmail_extra">> /lib/64/libpthread.so.1 を使っていて、確かに Kernel は</div><div class="gmail_extra">> 同じですから。</div><div class="gmail_extra">> </div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice]</div>
<div class="gmail_extra">> Xxx XX HH:MM:SS global ^Mpanic[cpu55]/thread=100102ee2020:</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] BAD TRAP: type=34</div><div class="gmail_extra">
> rp=2a10daeb4f0 addr=2 mmu_fsr=0</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice]</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] squid:</div>
<div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] alignment error:</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] addr=0x2</div><div class="gmail_extra">
> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] pid=XXXX,</div><div class="gmail_extra">> pc=0x11b6034, sp=0x2a10daead91, tstate=0x9980001601, context=0x338f</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice] g1-g7: 1000, 1, 0,</div>
<div class="gmail_extra">> 0, 0, 338f, 100102ee2020</div><div class="gmail_extra">> Xxx XX HH:MM:SS global unix: [ID XXXXXX kern.notice]</div><div class="gmail_extra">></div><div class="gmail_extra">> Zone で動いていた Squid が上手く落ちなかったので、Kill -9 したら ↑</div>
<div class="gmail_extra">> になりました。</div><div class="gmail_extra">> この後は当然、sync して reboot されました。</div><div class="gmail_extra"><br></div><div class="gmail_extra">addr=0x2 での "alignment error" (type=34) のトラップは、ユーザプロ</div>
<div class="gmail_extra">グラムなら、まぁ、よくあるバグだと思いますが、上記の延長で親 zone</div><div class="gmail_extra">が落ちたのだとすると:</div><div class="gmail_extra"><br></div><div class="gmail_extra">  1. squid がシステムコールを発行</div><div class="gmail_extra">
  2. 何かで引っかかって kernel 内で待ち状態(I/O とか排他?)</div><div class="gmail_extra">  3. 正規のプロセス終了</div><div class="gmail_extra">     → 引っかかりから復帰できず</div><div class="gmail_extra">  4. kill -9 実施</div><div class="gmail_extra">     → スレッドの強制刈り取りの過程で、カーネル内部で alignment error</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">みたいな手順でしょうね。</div><div class="gmail_extra"><br></div><div class="gmail_extra">書いている途中で来た瀧さんからのメールにもありますが、多分 squid</div><div class="gmail_extra">の問題ではなく、純粋にカーネルのバグな気がします。</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">吐き出されたダンプで、原因となった処理の呼び出しコンテキストを見れ</div><div class="gmail_extra">ば、多少は原因らしきものが分かるかもしれませんが、最近カーネル</div><div class="gmail_extra">デバッグから遠ざかっているので、mdb の使い方を完全に忘れている…… orz</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">記憶がフレッシュな方、フォローお願いします(笑)</div><div class="gmail_extra"><br></div><div class="gmail_extra"><br></div><div class="gmail_extra">> Zone でも気軽に Kill するもんじゃないなと。</div>
<div class="gmail_extra">> zoneadm -z XXXX halt/reboot の方が安全かも。</div><div class="gmail_extra">> </div><div class="gmail_extra">> </div><div class="gmail_extra">> /lib/64/libpthread.so.1 を使う粗悪な PG と、Kill -9 のループだけで</div>
<div class="gmail_extra">> 再現するかも と思っています。</div><div class="gmail_extra">> </div><div class="gmail_extra">> </div><div class="gmail_extra">> Zone の root も他人には渡したくなくなった今日この頃です。</div><div class="gmail_extra"><br>
</div><div class="gmail_extra">この辺の「死なば諸共」なところは、軽量仮想化の宿命ですよねぇ……</div><div class="gmail_extra"><br></div><div class="gmail_extra">-- </div><div class="gmail_extra">----------------------------------------------------------------------</div>
<div class="gmail_extra">FUJIWARA Katsunori(<a href="mailto:flying.foozy@gmail.com">flying.foozy@gmail.com</a>)</div><div><br></div>
</div></div>