Rails 3 / ruby 1.9.2 webapp があります。時々 - 100000 分の 1 リクエストしかないかもしれません - 説明できないエラー レポートが表示されます。
正確なエラーはさまざまですが、ビュー内のインスタンス変数が突然 nil になるという行に沿っているようです。これの最も明確なインスタンスは最近発生しました。ヘルパー内のこのコードは -
@swf_object_count||=0
@swf_object_count+=1
- 「NoMethodError: nil:NilClass の未定義のメソッド `+'」が発生しました。ただし、エラーはこのケースに限定されないことに注意してください。これらの 2 行のコードは説明のみを目的としており、問題を「解決」するために回避できるものではありません。
エラーを再現することは基本的に不可能です。私は自分で見たことがなく、その結果としてのエラー レポートを見ただけです。REE から ruby 1.9.2 に切り替えたときに最初にエラーが発生したと思います。
関連する場合と関連しない場合があるその他の詳細:
- ユニコーンのフォークされたインスタンスを使用して、Solaris 10 で ruby1.9.2p290 を実行しています。
- スレッドやファイバーは使用していません (修正: アプリ自体は使用していませんが、統計を収集/投稿するためのバックグラウンド スレッドを持つ NewRelic を使用しています)。
- .haml ビューと .erb ビューが混在していますが、.haml からしか発生していません。(ただし、.erbs はあまりありません)
- これがコントローラーコードで発生するのを見たことがありません
- Bar.foomethod を決して呼び出さないという事実を知っているのに、「Bar のメソッド 'foomethod' が未定義です」に関するエラーをときどき見ました。これは、Bar オブジェクトが Foo ivar を自発的に置き換えた上記のバグに関連している可能性があります。
私はこれを追跡することにかなり困惑しています。何か提案はありますか、または似たような音を見た人はいますか?