[解決済み] errno 32のパイプ破損を防ぐには?
2022-03-02 06:26:50
質問
現在、pythonで作られたアプリを使用しています。パソコンで実行すると、問題なく動作しています。
しかし、本番サーバーに移したとき。以下のようなエラーが表示され続けています。
いろいろ調べてみたところ、サーバーがデータ送信に追われている間にエンドユーザーのブラウザが接続を停止してしまうことが原因でした。
なぜこのようなことが起こったのか、また、私のパソコンでは動作するのに、本番サーバーでは正常に動作しない根本的な原因は何なのか、疑問に思っています。何かアドバイスがあればお願いします。
Exception happened during processing of request from ('127.0.0.1', 34226)
Traceback (most recent call last):
File "/usr/lib/python2.7/SocketServer.py", line 284, in
_handle_request_noblock
self.process_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 310, in process_request
self.finish_request(request, client_address)
File "/usr/lib/python2.7/SocketServer.py", line 323, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "/usr/lib/python2.7/SocketServer.py", line 641, in __init__
self.finish()
File "/usr/lib/python2.7/SocketServer.py", line 694, in finish
self.wfile.flush()
File "/usr/lib/python2.7/socket.py", line 303, in flush
self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe
解決方法は?
あなたのサーバー・プロセスは
SIGPIPE
ソケットに書き込んだ。これは通常、相手側(クライアント)で完全に閉じたソケットに書き込んだときに起こります。これは、クライアントプログラムがサーバからのデータをすべて受信するまで待たず、単にソケットをクローズしてしまった場合に起こります(
close
関数)を使用します。
C言語プログラムでは、通常は
SIGPIPE
シグナルに対応するダミーのシグナルハンドラを設定します。この場合、閉じたソケットに書き込むと、単純なエラーが返されます。あなたの場合、pythonはクライアントの早すぎる切断として処理できる例外を投げるようです。
関連
-
Pythonを使って簡単なzipファイルの解凍パスワードを手作業で解く
-
[解決済み] _tkinter.TclError: 表示名がなく、$DISPLAY環境変数もない。
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】2つの辞書を1つの式でマージする(辞書の和をとる)には?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python Decorator 練習問題
-
python implement mysql add delete check change サンプルコード
-
Python入門 openを使ったファイルの読み書きの方法
-
Pythonショートビデオクローラーチュートリアル
-
PythonによるExcelファイルの一括操作の説明
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】TypeError: re.findall()でバイトのようなオブジェクトに文字列パターンを使用することはできません。)
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】NameError: 名前 'self' が定義されていません。