0

環境で発生している非常に奇妙な問題をデバッグしようとしています。

接続しているサーバーが何らかの理由で一時停止されているree-1.8.7-2011.12ときに奇妙な動作を示すRails アプリを実行しています (一時停止するには、フォアグラウンドで ES サーバーを起動してから)、Ruby プロセスが永久にハングし、タイムアウトしません。またはそのようなもの。Rails アプリが初めて接続する前にES サーバーが中断された場合は発生しません。Rails アプリがいくつかのクエリを実行し、ES サーバーがリクエストへの応答を停止することを決定した場合にのみ発生します。ElasticSearchCTRL-Z

私はネイティブ コードがあまり得意ではないので、これを理解するためにどこから始めればよいかさえわかりません (残念ながら、現在、多くの理由で Ruby をアップグレードすることはできません)。アクティビティ モニターでプロセスのサンプルを取得すると、次のスレッド ダンプが表示されます。

ここに画像の説明を入力

curl_wait_for_resolvそのため、この呼び出しでロックされているようです。

Ruby 用の最新の ElasticSearch と Rubberband ES アダプターを使用しています。これは、Mac OS および Linux で再現可能です。

これをデバッグする方法、またはサーバーを正しくタイムアウトする方法に関するヒントはありますか?

4

1 に答える 1

0

問題はラバーバンドにあったので、プルリクエストを提出しました。

于 2012-09-08T21:26:44.257 に答える