先日、仕事用のMacBook Pro (M1; 2021)のOSをアップデートしました。
その後、 git push
を実行すると、必ずエラーになったので、色々探して(一応?)解決しました。
git fetch
や git pull
に問題はなかったので、すごく謎なのですが…。
TL;DR
ネットワークインターフェイスのMTUをStandard (1500)から Custom (1280) にすると、解決するかもしれない。
試したこと
プロバイダのせい?
SSHで失敗するなら、HTTPSなら成功する?
-
git config
のremote.origin.pushurl
をHTTPSに書き換えてみる→失敗
その際に出たエラーで、SSLがどうとか出てきたので、プロトコルのせいではないかもしれない…と思う
HTTPSの場合
Pushing to https://bitbucket.org/foobar/hogehoge.git
Enumerating objects: 224, done.
Delta compression using up to 10 threads
Total 144 (delta 63), reused 0 (delta 0), pack-reused 0 (from 0)
POST git-receive-pack (64584 bytes)
error: RPC failed; curl 56 LibreSSL SSL_read: LibreSSL/3.3.6: error:1404C3FC:SSL routines:ST_OK:sslv3 alert bad record mac, errno 0
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
Everything up-to-date
SSHの場合
Pushing to bitbucket.org:foobar/hogehoge.git
Enumerating objects: 224, done.
Delta compression using up to 10 threads
Total 144 (delta 63), reused 0 (delta 0), pack-reused 0 (from 0)
Connection to bitbucket.org closed by remote host.
send-pack: unexpected disconnect while reading sideband packet
fatal: the remote end hung up unexpectedly
OSのせい?
事象が発生しだした時期と、アップデートをした時期を正確に覚えていないのですが、OSアップデートを期に、一部のHTTPSサイトの接続が不安定になったりしました。
そこで、別のPC(手軽にSSHを使えたChromebookのLinux環境)で試した結果、何も問題なく git push
できました。
検索してたどりついた結果
似たような現象をGoogleで検索していると、以下のApple CommunityのDiscussionが見つかりました。
https://discussions.apple.com/thread/255782823
マイナーバージョンは異なるものの、ブラウザで ERR_SSL_PROTOCOL_ERROR
が起きる現象は同じだったので回答を探っていると、以下のようなものを見つけました、
Changing MTU to 1280 on Wifi Settings seems to have helped, but still testing. The errors seems to disappear for some time and then come back, so hard to know what is going on.
他マシンでは普通にMTUが1500なので(更に、別回線経由だと問題がない)ので、これで直るのかなと半信半疑のまま試すと…
Wi-Fi、有線LANどちらも、MTUを1280にすると、問題なく git push
もでき、ブラウザでのHTTPS接続も安定しました。
ひとまず仕事に影響がなくなったのでよかったですが、理由はよく分かりません(すみません)。