問題タブ [econnreset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Sidekiq 使用時のピアによる接続リセット
最近、Sidekiq gem をインストールして、Rails アプリのバックグラウンド プロセスでメールを送信しました。ただし、送信するメールはまだ1通も受け取っておらず、スタックオーバーフローの検索では、これまで手ぶらでした。私は Sidekiq や Redis をよく理解していないので、何を検索すればよいのか、エラー メッセージをどのように解釈すればよいのかわからないことが問題の一部である可能性があります。Sidekiq をインストールする前は、メールは .deliver メソッドで問題なく送信されていました。
再度送信しようとすると、「接続がピアによってリセットされました」というエラー メッセージが表示され、続いて「ファイルの終わりに達しました」というエラー メッセージが表示されます。「sysread_nonblock」を含み、openssl ディレクトリに言及する警告メッセージもあります。
これが私のコードです。Rails 4.2.3 と Ruby 2.2.1 に基づいています。
Gemfile
アプリケーション.rb
質問コントローラー
質問メーラー
ローカル サーバーを起動するときは、次のようにします。
Redis サーバーを起動する
Sidekiqを開始
Rails Server を起動します(フォアマンで)
これが私の完全なログです:
提供できる洞察を事前に感謝します。
c - Send Linux C の ECONNRESET
Unix Network Programmingによると、ソケットが (FIN パケットの後) 閉じたソケットに 2 回書き込むと、最初は送信に成功しましたが、他のホストから RST パケットを受信しました。ホストは RST を受信するため、ソケットは破棄されます。したがって、2 回目の書き込みでは、SIGPIPE シグナルが受信され、EPIPE エラーが返されます。
ただし、send man ページでは、ECONNRESET が返される場合があります。これは、RST パケットが受信されたことを意味します。ECONNRESET が返されると、シグナルは返されません。
ECONNRESET が返される可能性があるのはどのような場合ですか? この場合、なぜ SIGPIPE シグナルがないのですか?
注: I similar question hereを確認しました。ただし、Linux コンピューターで実行すると、send は ECONNRESET ではなく EPIPE エラーを返しました。
node.js - 生成されたノード プロセスからの ECONNRESET エラーのキャッチ
sftps NPM を使用して、ユーザー名/パスワード認証を使用して SFTP サーバーに接続し、ファイルをアップロードしています。これは、成功すると美しく機能します。ただし、無効な認証情報が提供された場合、数分後にECONNRESET
エラーが発生し、アプリケーション全体がクラッシュします。
sftps モジュールのソースを見るとchild_process.spawn
、シェル コマンドを実行するために使用されているようで、エラーを適切にキャプチャする必要があるようです。
サブプロセスでイベントstderr
をキャプチャするだけでなく、ストリームにフックしたようです。error
exit
ECONNRESET
このエラーをキャプチャして、アプリケーションを強制終了せずにログに記録するには、他に何ができますか?
javascript - 成功コールバックが既に呼び出された後に「エラー時」コールバックを呼び出すことはできますか?
以下のコードで奇妙な動作が見られます。
cb1 は、リクエスト req が成功したときに呼び出されます。その後、cb2 も呼び出されますが、これは正しくないようです。
https リクエストがすでに成功している場合 ( cb1 でresponse.statuscodeが 200 に設定されている)、同じリクエスト オブジェクトで「エラー時」ハンドラを後で呼び出すことは可能ですか?
cb2 関数は次のように呼び出されます
エラー: ECONNRESET を読み取ってください
私の想定では、これは決して起こらないはずだったので、「コールバック」にはコードがあり、同じ着信要求に対して 2 回呼び出されると、サーバーがクラッシュします。
また、https モジュールでは以下の 2 つの設定を使用しています。
keepAlive 設定が何らかの形でバックエンド サーバーへの接続を維持している可能性はありますか? サーバーがこの接続を終了すると、同じ req オブジェクトで cb2 が再度呼び出されますか?
node.js - ノードに負荷をかける
C# Web API サーバーと Node Express サーバーがあります。C# サーバーから Node サーバー上のルートに何百ものリクエストを行います。ノード サーバー上のルートは集中的な作業を行い、多くの場合 6 ~ 8 秒間返されません。
これらのリクエストを何百も同時に行うと、Node サーバーが失敗するようです。Node サーバー出力のエラーには、 または のいずれsocket hang up
かが含まれますECONNRESET
。C#側からのエラーは言う
ターゲット マシンがアクティブに拒否したため、接続できませんでした。
このエラーは、予測できない数のリクエストを処理した後に発生するため、サーバーが過負荷になっているだけだと思います。C# 側でa を使用するThread.Sleep(500)
と、より多くのリクエストを処理できるようになり、そこで待機をいじることで多かれ少なかれ成功しますが、スレッドのスリープが正しい答えになることはめったになく、このケースも例外ではないと思います。
ノードサーバーに過度のストレスをかけているだけですか? これは、ロード バランシングまたは何らかの形式のクラスタリングでのみ解決できますか? 別の代替案がある場合、それはどのように見えるでしょうか?
私が探求し始めている 1 つの道は、node-toobusy
モジュールです。503 を返した場合、次のコードではどのようなプロセスが必要ですか? Thread.Sleep
その後、リクエストを再送信する必要がありますか?
android - java.net.SocketException: sendto が失敗しました: ECONNRESET (ピアによる接続のリセット)
このコードを使用してサーバーに接続し、画像をアップロードしようとしています。
上記のように、常に取得SocketException
します。
UploadUI
108 行目に次のコード スニペットが含まれています。
はrh
の略ですRequestHandler
。写真の詳細を SQL データベースに投稿する必要がありますが、サーバー側のコードは機能しているようです。
android - アンドロイドボレーECONNRESET
Volley
ライブラリを使用して画像をサーバーにアップロードしようとしています。このライブラリはスタンドアロン モードでこのプロセスを実行する必要がありますが、次のエラー メッセージが表示されます。
java.net.SocketException: sendto が失敗しました: ECONNRESET (ピアによる接続のリセット)
おそらくサーバー側の設定ミスですか?jpeg
このコードで画像をアップロードしようとしています: