Назад | Перейти на главную страницу

git: удаленный конец неожиданно повесил трубку - слишком много одновременных пользователей?

Я спросил об этом первым Переполнение стека и мне предложили спросить об этом здесь:

У нас есть собственный сервер git (Gitolite) в учетной записи VPS (ЦП: 2,68 ГГц, ОЗУ: 1824 МБ). Этот же VPS также используется для публикации наших недоработанных веб-приложений для клиентских демонстраций. (Очень мало трафика). поэтому в основном сервер используется только как сервер Git.

К этому серверу git обращается команда из 30-40 человек для различных проектов. Наша проблема в том, что в течение дня, когда 6-7 человек пытаются получить доступ к серверу (иногда одно и то же репо), мы часто получаем сообщение об ошибке:

ssh: подключиться к хосту xxx.xxx.xx.xx порт 22: неверный номер файла фатальный: удаленный конец неожиданно повесил трубку

После 10-15 минут попыток, как правило, это удается.

Ранним утром и поздней ночью, когда в команде всего 1-2 человека, команды git работают со 100% успехом. Также я хотел бы отметить, что если я получаю доступ к другому файлу, размещенному на сервере, через HTTP, он работает нормально.

Я нашел пару вопросов по этому поводу на StackOverflow и на других сайтах. Но большинство людей указывают на настройку ключа SSH или конфликты между Msysgit и Cygns SSH.

Однако я не думаю, что это проблема в нашем случае, поскольку мы получаем такое поведение в Windows (используя только msysgit), а также на компьютерах Mac. Также, если это была проблема с конфигурацией SSH, она вообще не должна работать. Но в нашем случае это работает через 10-15 минут.

Я думаю, что в нашем случае может быть слишком много одновременных подключений к одному серверу (или одному репо) или что-то в этом роде. Существует ли параметр или файл conf, который необходимо изменить для решения этой проблемы?

Пожалуйста, помогите мне решить эту проблему или укажите правильное направление.

Заранее спасибо.

Притам.

Это полный выстрел в темноте, но я обнаружил, что это часто случается, когда сервер SSH выдает неожиданный вывод, прежде чем предоставить интерактивную оболочку - в моем случае это было то, что я вставил в свой .bash_profile который уведомил меня, если у меня были запущены существующие сеансы экрана. Есть ли в вашем сценарии входа в систему что-нибудь, что может писать в stdout / stderr?

Помните, что вы просто используете SSH для подключения к серверу git для передачи данных. На самом деле есть сообщение github конкретно об этой проблеме, что указывает на то, что в проблеме, с которой вы столкнулись, виноваты брандмауэры и / или прокси.