2011-01-04 4 views
4

私はmod_monoの下でモノラル2.8.1でASP.NET MVC2アプリケーションを実行していますが、現在定期的にApacheが漏れていると思われるセマフォ配列をクリアする必要があります。mod_monoを実行しているときにApacheがセマフォを漏らしています

私はしばらく前に2.6.7用のモノRPMので始めたが、セマフォアレイ(IPCSに蓄積すなわち、より多くの)およびASP.NET MVC2といくつかの非互換性をリークすると、両方のいくつかの問題を持っていたので、私は2.8を構築していましたソースから。漏れが続いたので、私はソースから2.8.1を作りましたが、同じことがまだ起こっています。これはAmazon AMIにあります(私はそれがボンネットの下のcentosだと思います)。現象は、セマフォ配列が構築を続けていると私は手動でそれらを削除しない場合ipcrm ASP.NETページへの要求がログにエラーなしでコンテンツを返すとしばらくしています。私はまた、同じ問題をcentos 5.4 AMIで再現しました。

apache/mod_monoでASP.NETを正常に実行している人は誰ですか?私は誰にもこれが起こっているとは言いませんので、一般的なASP.NETバグではないと思います。どのように私はこれ以上のトラブルシューティングを行うことができます任意のアイデア?

+0

私のプロダクションサーバでmod_monoを使用しています(しかし、それほど多くはありません。私は誰も訪れていない4つのサイトをホストしています)。キーワードはnoticeです。しかし、私は2.8で問題があったと言いたいので、私はMono 2.6.7に戻った。だから、もし2.8がその問題を解決しなければ、元に戻すことを検討すべきです。私はmono、XSP、Mod_Mono、GDIplusの最新の2.6。*を使用しています。もともと私はモノラルを格下げしましたが、ミックスが好きではないようです。 –

答えて

8

最後にこれを理解し、解決策が私が受け取っていた他の警告をフォローしないという私自身の間違いを暴露している間、私はこれが他人に役立つはずだと考えています。

Include conf.d/*.conf 
User apache 
Group apache 

すなわち:デフォルトのApache設定することで

は、以下の設定順序を持っていますhttpdのユーザとグループが設定される前に、すべてのconfファイル(通常はvhostが定義されている場所)がロードされます。これは、再起動時に以下の警告になり:

[Mon Jan 24 00:12:50 2011] [crit] The unix daemon module not initialized yet. 
Please make sure that your mod_mono module is loaded after the User/Group 
directives have been parsed. Not initializing the dashboard. 

すべてがとにかく動作しているようですが、これは、セマフォ漏れの原因です。 User/Groupの後にIncludeを移動すると、警告が消え、mod_monoはセマフォを漏らさなくなりました。

0

新しいsgen Boehmの代わりにガベージコレクタを使用してください。

は、新しいガベージコレクタを使用するには、 だけ --gc = SGENコマンドラインオプションでモノを呼び出す、またはMONO_ENV_OPTIONS環境「を--gc = SGEN」 オプションを含むように 変数を設定する必要があります。デフォルトではMonoはBoehmコレクタを使用し続けます 。

+0

私はそれを試してみましょうが、セマフォーはXSPとApacheを調整するIPCメカニズムなので、.NETガベージコレクションとは無関係な印象です –

+0

テストの後、これは何も変更されていません。まだセマフォ配列が漏れています:( –

1

これは、クロスプロセスハンドルで使用される共有メモリでわかりました。

私の修正はMONO_DISABLE_SHM = 1に設定されていましたが、クロスプロセス処理のサポートが2.8以降では無効になっているため、これが問題であるかどうかはわかりません。

おそらくMONO_DISABLE_SHMを試して、違いがあるかどうかを確認できます。

+0

MonoSetEnv経由で設定しようとしましたが、すでに約20のセマフォ配列を作成していますが、削除されていません。 –

関連する問題