[Users] Zone から親を殺せる?

master @ zio-matrix.net master @ zio-matrix.net
2013年 12月 3日 (火) 00:08:14 JST


瀧 さん、藤原 さん


難波です。お久しぶりです。

>  > Zone の root も他人には渡したくなくなった今日この頃です。
>
> この辺の「死なば諸共」なところは、軽量仮想化の宿命ですよねぇ……

すっかり忘れていたところでした。(スレッド処理=親のKernel


> 吐き出されたダンプで、原因となった処理の呼び出しコンテキストを見れ
> ば、多少は原因らしきものが分かるかもしれませんが、最近カーネル
> デバッグから遠ざかっているので、mdb の使い方を完全に忘れている…… orz
>
> 記憶がフレッシュな方、フォローお願いします(笑)

ダンプありません。取れません。 :-D

なぜなら、128GB のマシンで 100GB の SSD rpool ですから。
/dev/zvol/dsk/rpool/dump を他の pool に出来ないかなと思っていたら、
出来ないんですよね、これ。

インストール直後 64GB〜 あった rpool/dump を小さくするのが手順に
なっています・・・

この辺りのワークアラウンドとかネタが意外に無いんですよね。
256GB マシンで rpool 100GB SSD にしたらどうなるのか・・・
(2GB のメモリで NT4.1 がインストールできない問題に似ているような)


Squid の話に戻りますが、Worker N(SMPサポート)を検証してました。
-k shutdown が効かないので、squid-N プロセスだけ抽出してループで
さくっと kill したらコンソールが固まってしまったのです。

「ははは、こやつめ」と思ってグローバルに ssh しても応答なし、
数分後に再起動してきました。


ping に応答したり、途中までは中途半端に死んでいたので、
他の Zone 上のサービスは刺さったような状態になっていたようです。


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




Users メーリングリストの案内