[SCore-users-jp] scored のクラッシュ

Naoya Maruyama naoya.maruyama @ is.titech.ac.jp
2005年 10月 28日 (金) 20:21:15 JST


Atsushi HORI <hori @ allinea.com> wrote:
> 
> On 2005/10/28, at 19:59, Naoya Maruyama wrote:
> 
> > Atsushi HORI <hori @ allinea.com> wrote:
> >> usleep() を入れたのは、最近の CPU が高速になり、ループ 
> >> だけ
> >> では不十分な場合があったためです。PentiumIII 1.4GHz だ 
> >> とま
> >> ず大丈夫だと思います。
> >>
> >
> > 当方の環境でもこの現象が頻繁に確認されるわけではないのですが、 
> > 感覚的に
> > は1月に1回程度は起きてしまっております。
> >
> >
> >>
> >> もし、PM/Ethernet をお使いでしたら、上記の現象は PM/
> >> Ethernet のバグとして(私の記憶違いがなければ)すでに認識および
> >> 対応が施されており、次のリリースでは修正されております。
> >>
> >
> > クラッシュ前のscoredの関数トレースを取ってみましたところ、
> > myri2kIsSendStable()が繰り返し呼ばれていることを確認しました。 
> > ですので、
> > PM/EthernetではなくPM/Myrinetの話ではないかと思います。
> 
> いずれにせよ現在次版の 5.8.3 リリース直前ということもあ 
> り、バグ修正は間に合わない状況です。
> 
> お急ぎでしたら、usleep() を適当に入れてみてください。

了解しました。

> 
> >> が、もし、write_sysmon() で本当にブロックしているとした
> >> ら、これは明らかに SCore-D のバグです。SCore-D から
> >> の write() はいかなる状況でもブロックしてはいけませんし、
> >> 本当に長時間ブロックすると sc_watch のタイムアウトが発 
> >> 生す
> >> るのは当然です。今すぐには確認できませんが、機会があって、バ 
> >> グを
> >> 確認できれば修正することをお約束します。
> >>
> >
> > 失礼しました。もう一度確認しましたところ、write()システ 
> > ムコールでブロッ
> > クしているわけではなく、score_write()のループにはいった 
> > ままsc_watchの
> > タイムアウトがかかったようです。こちらも関数トレースをとって確 
> > 認したの
> > ですが、以下のscore_write()がwrite()呼び出しが成功 
> > せず、ループでスピン
> > していた模様です。
> 
> 先のメールを書いた後に思い出しました。sysmon のコードはさ 
> ぼっていて出力のための fd を NONBLOCK にしていませ 
> ん。これは明らかにバグなので、修正したいと思います。もし運用上困 
> るというのであれば、ご不便でも sctop の利用を中止していた 
> だくしか方法はありません。
>

こちらも回答ありがとうございます。一つ確認したいのですが、NONBLOCKなら
ば、write()に失敗したときに他のスレッドにスケジュールが 移ることができ
る、ということでしょうか?

よろしくお願いします。

丸山直也
東京工業大学数理計算科学専攻松岡研究室





SCore-users-jp メーリングリストの案内