Posted at

Deis Workflow で git push が詰まるときの対策

More than 1 year has passed since last update.

何が根本原因が不明なのだが、備忘録。


構成

Azure Classic、CoreOS 1465.6.0 が動作する 2つのインスタンスがあり CloudServer のロードバランサで振っている。

Deis Workflow v2.16.0。

git push は Deis が動作している Kubernetes 上の Ubuntu インスタンス内から行った。


症状

git push deis master

で無応答になる。無事に繋がる場合もある。deis-builder のログを見ると、接続はしたものの、その後のネゴシエーションで固まっているように見える。


追跡

#!/bin/bash

ssh -vvv "$@"

なる ~/sshv.sh に 755 設定の上、 GIT_SSH=~/sshv.sh git push deis master などしてみる。

ログをつらつらと眺めると、下記の通り SSH2_MSG_KEY_ECDH_REPLY のところで止まる。どうやら固まるときは再現性 100 %でここで固まる。

debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none

debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256-etm@openssh.com compression: none
debug3: send packet: type 30
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY


解決手段

echo 1 > /proc/sys/net/ipv4/tcp_mtu_probing 

なぜかこれで治った。結果から MTU が大きすぎたことが原因であることは解るのだが、どこで MTU が絞られているのかが解らない…。