テクノロジー · 実用ガイド

curl エラー56「Recv failure」:再試行前にリセット段階を特定する

「Connection reset by peer」は受信経路が突然終わったことだけを示し、原因の機器やプロセスは示しません。実効curl、バイト方向、最後に完了した段階を保存します。

オリジナルイラスト:curl error56の接続・交換・reset段階。
オリジナルイラスト:再試行前に最終完了段階を保存。 Watch at Ease

「Connection reset by peer」は受信経路が突然終わったことだけを示し、原因の機器やプロセスは示しません。実効curl、バイト方向、最後に完了した段階を保存します。

CURLE_RECV_ERRORはコード56で受信失敗を示します。 TCP resetはendpointまたは経路装置から届き、curlだけでは送信元を証明できません。

1. 失敗requestを安全に固定

curl実体、`curl -V`、host/port、proxy変数、container/service、DNS、秘密を除いたcommandを記録し、error56、時刻、request ID、送受信bytesを保存します。

再試行前にmethodと副作用を分類します。POST、PUT、uploadは応答がなくても処理済みの可能性があるため、idempotency keyまたはserver状態を確認します。

2. 最後の完了段階を記録

`--verbose`または秘密を除いた時刻付きtraceで一度再現し、TCP、CONNECT、TLS、request header/body、response header/bodyの最後の確認点を示します。

方向を保存します。upload中のresetとresponse受信後のresetは別です。長さとbytesは残し、credentialと機密bodyは残しません。

3. connection ownerを照合

timestamp、接続tuple、hostname、protocol、request IDをorigin、reverse proxy、load balancer、egress logと照合します。resetはconnection eventでありorigin appとは限りません。

directとproxyを比べる時は一変数だけ変更し、別clientの成功はDNS、IP family、proxy、TLS、HTTP、payloadが同じと証明してから使います。

4. 原因を一つだけ変更

最初の矛盾証拠を所有する境界を修正します。serverの読取または明示reject、proxy route/idle policy、crash worker、protocol期待などです。TLS検証無効化を近道にしません。

`--retry`は操作の意味とinstalled curlの条件を確認後に使います。成功しても重複処理や閾値を隠す場合があります。

5. 同じ経路とpayloadを受入

同じuser、binary、network、payload classで再試行し、exit0、期待status、完全body/checksum、peer logのresetなし、二回目の成功を要求します。

最後の正常段階、双方向bytes、観測者、相関log、一変更、受入結果を短いledgerに保存します。

オリジナルイラスト:resetの観察・相関・受入ゲート。
オリジナルイラスト:所有者を特定し修復を証明。 Watch at Ease