このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

easyBBS EXが落ちます(Bus Error)

発言者:モリヤ
( Date Monday, May 18, 1998 08:30:42 )


 easyBBS EX IIとTanaka's osax 2の開発が,バリバリ進行しているよ
うですので,このような発言をするのは申し訳ないのですが‥‥。

 easyBBS EXをありがたく使わせていただいています。使いはじめのこ
ろからそうなのですが,たまに,bbs.acgiが「予期せず」終了します。
たいしたアクセスがあるサーバーではないので,エラーの発生自体も低
頻度でしたから「ま,たまにはこんなこともあるよね」とか思っていた
んですけど,次のようにすると,再現性良く落ちることが分かりまし
た。使用したブラウザーはNetscape Nav. 4.04です。
 1. ある発言のページをブラウザーで表示する。
 2. 強制再読み込み(option+cmd+R)する。
 3. すぐに停止(cmd+.)する
 4. 続けて再び,強制再読み込み(option+cmd+R)する。
この手順で,2〜4を十分素早く行なってやれば,うちのサーバーでは,
間違いなくbbs.acgiが亡くなられます。また,その後あれこれやってみ
てわかったのですが,どうやら,同一クライアントから会議室に対し
て,GETが同時に2つ以上かかると,手順に関わらずダメみたいです
(CONDITIONAL GETは大丈夫らしい)。試しにMacsBugを入れてみたとこ
ろ,Bus Errorが起こっていました。試した環境は以下の通りです。

○サーバー1
  Macintosh IIsi 17 Mbyte RAM 仮想記憶オフ
  漢字Talk 7.5.5
  Quid Pro Quo 1.0.2
  Tanaka's osax 1.29
  EasyBBS EX 1.01
○サーバー2
  Power Macintosh 8500/120  80 Mbyte RAM 仮想記憶オフ
  MacOS 8.1(J)
  Quid Pro Quo 1.0.2
  Tanaka's osax 1.29
  EasyBBS EX 1.02
○クライアント
  MacOS 8.1(J)
  Netscape Navigator 4.04J

 他の方で同じようなことが起こるという方はいらっしゃらないでしょ
うか。もし,いらっしゃらないようでしたら,こちらの環境のためだと
も考えられるのですが‥‥。

 どなたかコメントをお願いします。

田中求之 さんからのコメント
( Monday, May 18, 1998 15:39:34 )

同一クライアントからの GET が重複したぐらいでバスエラーが出るのでしたら
使い物になりませんね (^_^;;  おそらく、スクリプトというより、osax がらみ
の問題ではないかと思っています。

調べてみますが、もし MacsBug を入れた状態でエラーを起こせるのでしたら、
エラーで Macsbug に入ったときに、 stdlog コマンドでエラーレポートを
吐き出させて(デスクトップに作られます)、そのファイルを圧縮の上、田中
までメールしてもらえませんか?

モリヤ さんからのコメント
( Tuesday, May 19, 1998 04:21:57 )

ありゃ,やはりウチだけの問題なのですか‥‥。

>田中までメールしてもらえませんか?

→了解しました。お手を煩わせてしまいまして恐縮ですが,送らせていた
だくことにします。よろしくお願いします。>田中さん

たまちゃん さんからのコメント
( Tuesday, May 19, 1998 10:01:47 )

昨夜、テストしましたので結果の報告だけですが、お伝えします。

モリヤさんの両サーバーとも、QPQ 1.0.2を使っておられるので、もしやと思
い、機種は違いますが、

  MacOS 8.1(J)
  Quid Pro Quo 1.0.2
  Tanaka's osax 1.29
  EasyBBS EX 1.02

  Netscape Communicator 4.03J

の環境(モリヤさんのサーバー2の環境)でテストしました。

 1. ある発言のページをブラウザーで表示する。
 2. 強制再読み込み(option+cmd+R)する。
 3. すぐに停止(cmd+.)する
 4. 続けて再び,強制再読み込み(option+cmd+R)する。

のうち、2〜4を十分素早く行ったつもりなのですが、bbs.acgiは落ちませんで
した(十分早くなかったのかしら (^^;;))。

他のサーバー(QPQ 2.1やWebSTAR)でも起こるのですか?WebSTARで同
じことをやりましたが、やはり落ちてはくれませんでした。ということで、何
のプラスにもならない結果ですが、参考までに。

モリヤ さんからのコメント
( Wednesday, May 20, 1998 00:58:47 )

たまちゃんさん。追テストありがとうございます。

 そうですか。落ちませんか。あの後も,執拗に試してみたんですけ
ど,上記サーバー2のほうでは,GET2つは通ることがありました。で
も,手順2〜4を繰り返してやると,GET4つぐらいまでで,やはり落ち
ます。コンパイル時の環境の問題なのかなぁ。
 明日にでも,QPQ2.1を入手して,そちらでも試してみます。

森田@埼玉 さんからのコメント
( Thursday, May 21, 1998 20:21:13 )

私も連続でcgiにアクセスすると落ちてしまうことがしばしばあります。
(タイプ2エラーだったと思います。)

最近、クライアント側が自動巡回タイプなのか自動ダウンロードタイプなのか分かりませんが、
高速でCGIにリンクの張られたページから次の階層にアクセスしてきてその際にかなりの
確率で落ちてしまいます。
アクセスMAX24のサーバーのCurrentアクセスが振り切れてしまうほどです。
(同様のアクセスを手動で再現しても不具合は発生しません)

で、私のCGIはEasyBBSではないのですが、田中さんの公開されているスクリプトを元に
カスタマイズしたものでTanaka's osax(Ver1.29)も利用しているCGIです。

私はスクリプト、ましてOSAXについては詳しく分かりませんので

> おそらく、スクリプトというより、osax がらみの問題ではないかと思っています。
とおっしゃっていたのでご報告させていただきました。

田中求之 さんからのコメント
( Friday, May 22, 1998 16:27:27 )

モリヤさんに送ってもらった Macsbug のレポートを、私がわかる範囲で見たところ、
osax が原因とも言えないよなぁ、って感じなんです。

私の方でも CGI のストレステストは行っているんですが、システムエラーになる
ことはないんですよね。もっとも、製作者というのは無意識のうちに問題が出な
いように行動する、っていう法則がありますから、そのせいかも知れませんが (^_^;;

処理待ちのイベントが重なった時の AppleScript の動作のせいかも知れないとも
思われます(待ちイベントが重なった時に osax を呼ぶとぶっ飛ぶ??)

もうすこし調べてみます。

なお、アクセスが重複するようでしたら、FaceSpan で作り直すというのが
根本的な安定化(高速化)の方法なんですが…

モリヤ さんからのコメント
( Monday, May 25, 1998 12:45:18 )

そうですか。問題の根は複雑なのですね。

PowerMac 8500/120でQPQ 2.1というのも試してみたのですが,GET 3つ
以上では落ちるみたいです。うーん。

FaceSpanも検討してみます。

モリヤ さんからのコメント
( Tuesday, May 26, 1998 01:36:13 )

 早速,FaceSpanのデモ版で試そうと思ってデモ版を落としたのです
が,デモ版って,アプリケーションは作れないんですね。残念。

田中求之 さんからのコメント
( Wednesday, May 27, 1998 17:29:29 )

EasyBBS EX 1.02 のそのままのスクリプトでよければ、FaceSpan 3 でアプリケー
ションに仕立てたものを用意できますよ。


モリヤ さんからのコメント
( Thursday, May 28, 1998 02:51:22 )

 あ,ホントですか。うちの環境で,FaceSpan版が問題なく動くかどう
かを確かめたいだけですから,使わせていただけると助かります。それ
で大丈夫なようなら,FaceSpanを購入することにします。いまちょっと
値下がりしているみたいですし(笑)。

 えっと,受け渡しはどうしましょう。

 あ,それから,今回の問題って,以前田中さんがアプレット版を使わ
れていたときに報告されていた,起動ごとに一度は原因不明に落ちると
いうのに対応している,とかいう可能性はありますかね?

田中求之 さんからのコメント
( Thursday, May 28, 1998 03:49:27 )

>いまちょっと
>値下がりしているみたいですし(笑)。

でも、為替相場が円安傾向で推移してますのでご注意を(一時的とは言え138円台を
付けたみたいですしね)。

>えっと,受け渡しはどうしましょう。

FaceSpan のユーザーは、それで作成したアプリケーションを自由に配付する権利を
認められていますので、EasyBBS EX をアプリ化したものをダウンロードできるよう
にこのサーバーに登録します。

>あ,それから,今回の問題って,以前田中さんがアプレット版を使わ
>れていたときに報告されていた,起動ごとに一度は原因不明に落ちると
>いうのに対応している,とかいう可能性はありますかね?

これが頭にあったのは事実です。実際、FaceSpan 版に切り替えてから、私のサイトの
CGI は、osax や WebSTAR などの他の要因によるものは別として、全く落ちなくな
りましたから。

なお、EasyBBS EX 1.02 は Tanaka's osax 1.2 に依存したもののため、準備に
ちょいと時間がかかります(私自身の頭の中が 2.0 に移行してしまっているため (^_^;;
この週末までお待ちください。

田中求之 さんからのコメント
( Thursday, May 28, 1998 15:12:04 )

あ、System 7.5.5 をお使いなんですね。でしたら、やはりこの週末まで
お待ちください( FaceSpan 2 を引っ張り出さないといけないので)。


モリヤ さんからのコメント
( Thursday, May 28, 1998 15:31:38 )

>でも、為替相場が円安傾向で推移してますのでご注意を

→う。

>EasyBBS EX をアプリ化したものをダウンロードできるよう
>にこのサーバーに登録します。

→ありがとうございます。お手数ばかりおかけして申し訳ありません
が,よろしくお願いします。

>これが頭にあったのは事実です。実際、FaceSpan 版に切り替えてから、私のサイトの
>CGI は、osax や WebSTAR などの他の要因によるものは別として、全く落ちなくな
>りましたから。

→なるほど。こういうのは,原因が特定できないので,Appleのほうに
バグレポートするとしても,難しそうですね。

>(私自身の頭の中が 2.0 に移行してしまっているため (^_^;;

→ううう,スミマセン。

>あ、System 7.5.5 をお使いなんですね。でしたら、やはりこの週末まで
>お待ちください( FaceSpan 2 を引っ張り出さないといけないので)。

→あれ,FaceSpan 3って7.5.5で動くアプリは作れないんですか? そ
うだと,要検討だなぁ‥‥。

田中求之 さんからのコメント
( Thursday, May 28, 1998 16:31:23 )

>FaceSpan 3って7.5.5で動くアプリは作れないんですか?

作れるはずですけど、私が動作テストを行うのが面倒なだけです (^_^;;

7.x でもApperance Manager がインストールされているなら全く問題ないのですが
そうでない時にどうなるのか、ちょっと自信がない。

モリヤ さんからのコメント
( Thursday, May 28, 1998 19:54:32 )

なるほど。お手数ですが,よろしくお願いします。

田中求之 さんからのコメント
( Sunday, May 31, 1998 00:52:26 )

EasyBBS EX 1.02 を FaceSpan 2.1 でアプリケーション化したものを登録
しておきました。

Tanaka's osax 1.29 に致命的なバグがあったことにも気がつきましたので、
1.3 も同封してあります。

まずはちゃんと動くかどうかを試してみてください

→  easyBBS_EX_appl.hqx

モリヤ さんからのコメント
( Sunday, May 31, 1998 23:21:38 )

 ありがとうございます。とりあえずちょっと試してみました。効果て
きめんに落ちなくなりました。
 また,テストしたときも,アプレット版のときは,acgiがLast In 
First Outだったので,GETをいくらでも重ねられたのですが,FaceSpan
版だと入力順に処理されてそうはならないため,体感処理速度が大変大
きいことがわかりました(実際の処理速度も上がっているのかも知れま
せんが,そこまではわかりませんでした)。
 というわけで,もうちょっと試してみますが,FaceSpanの導入を真剣
に検討したいと思います。ありがとうございました。

田中求之 さんからのコメント
( Monday, June 01, 1998 00:03:32 )

まずは無事に動いたようで何よりです。

>FaceSpan
>版だと入力順に処理されてそうはならないため,体感処理速度が大変大
>きいことがわかりました

FaceSpan でアプリケーションにする最大のメリットがこれなんです。
というか、これだけのために、私は FaceSpan を使っています。

ただ、それだけのために購入するには、ちょっと高価ですね。

もっとも、AppleScript を CGI 以外にも活用しようと考えているのでしたら
持っておいて損はないツールだと思います。

森田@埼玉 さんからのコメント
( Monday, June 01, 1998 19:10:20 )

いつもお世話になってます。
以前に(上の方の書き込みで)私もたまにエラーで落ちてしまうと書き込んだ者ですが、
以後の書き込みを拝見させていただくと私のエラーは別に原因があるようにも思うのですが、
とりあえず、田中さんが登録して下さったTanaka's osax 1.3に入れ替えてみようと思ってます。
Tanaka's osax 1.29を現在使ってますが、互換性などで注意する点はありますか?
そのまま、使えるのでしょうか?
宜しくお願いします。

田中求之 さんからのコメント
( Monday, June 01, 1998 19:18:55 )

1.29 から 1.3 へはそのまま移行できます。

1.3 は 1.29 の readFromFile だけを新しくしたもので、その他のものは
1.29 と全く同じです。

エラーの原因は、おそらく readFromFile ではなく、他の点にあると思われ
ますが、残念ながら osax が原因なのか、それとも AppleScript のイベントの
処理が原因なのか、はっきりしないというところですね。

ただ、FaceSpan でアプリケーション化することで安定することから考えると
アプレットのイベントの処理の部分に問題があるようにも思えます。

モリヤ さんからのコメント
( Wednesday, June 03, 1998 14:13:55 )

モリヤのところで,試しにosaxだけを入れ替えてアプレット版を試して
みたんですが,やっぱりダメでした。一応報告。