Laravelを使って、Cloudflareが設定されたMisskeyに画像ファイル付きのリクエストを投げるとセグメンテーション違反になる。

CloudflareのWAF→ソースIP(固定)をブロックしない設定を追加済み
画像を追加しないリクエスト(ノートの投稿処理)→正常に動く
Cloudflareを解除→正常に動く
Cloudflareを設定してPythonのrequestsライブラリで同等の処理→正常に動く

発動条件が絞り切れていないが、GuzzleHttpのバグ…? :Shiropuyo_galaxy:

PHPのCURLFileを使ったらアップロードは動作した(ただしファイル名が文字化けする)。
ますますGuzzleHttpの問題説が濃厚に…

ワークアラウンドとしてCURLFileを使うことにした(ファイル名は指定方法が悪かった)。

GuzzleHttpのバグとは思うけど、Cloudflareが本質的な問題とも思えないので、原因は調べる必要あり。IPv6でアクセスした時だけ問題が起こるとか、あるかもしれない(XserverのVPSはIPv4アドレスしか無いため)。

フォロー

HTTP/2で通信するように明示的に指定すれば成功するようだ!
ということでこのオプション指定をワークアラウンドとする方が良さそう。HTTP/1.1で落ちる理由は不明。

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。