Обновление из репозитория svn возвращает Не удалось прочитать ошибку размера фрагмента

При обновлении из репозитория subversion с помощью клиента svn tortoise я получаю сообщение об ошибке:

Could not read chunk size: An existing connection was forcibly closed by the remote host.

Это не мешает мне обновляться, просто прерывает процесс обновления, так что мне приходится повторять обновление несколько раз, прежде чем оно будет завершено.

Чем может быть вызвано такое поведение и как это исправить?


person Denis    schedule 21.04.2009    source источник
comment
+1 то же самое здесь. Раздражает то, что в сообщении об ошибке клиента виноват сервер, но журналы сервера apache вообще не показывают никаких ошибок.   -  person Wim Coenen    schedule 21.04.2009
comment
Какая у вас настройка серверной части? В нашем случае репозиторий размещается на веб-сервере Apache в системе Windows.   -  person Wim Coenen    schedule 22.04.2009


Ответы (13)


Я получал сообщение «Не удалось прочитать размер фрагмента» от клиентов на нескольких машинах.

Ключом к выяснению этого была эта ошибка в журнале ошибок Apache:

[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Provider encountered an error while streaming a REPORT response.  [500, #0]
[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Problem replaying revision  [500, #24]
[Fri May 07 14:26:26 2010] [error] [client 155.35.175.50] Can't open file '/usr/site/svnrep/impc/db/revs/16122': Too many open files  [500, #24]

У процесса Apache, обрабатывающего операцию svn, заканчивались файловые дескрипторы. На моем сервере Ubuntu я исправил это, отредактировав /etc/security/limits.conf и добавив это внизу:

*               hard    nofile          5000
*               soft    nofile          5000

Что увеличивает лимит файловых дескрипторов с 1024 до 5000. Затем я вошел в новую оболочку и подтвердил, что лимит увеличился через ulimit -n. Затем перезапустил Apache.

person Lachlan    schedule 07.05.2010

Я только что получил сообщение об ошибке "не удалось прочитать размер фрагмента" И НАШЕЛ РЕШЕНИЕ -- по крайней мере, для одного сценария.

Во-первых, моя конфигурация...

СЕРВЕР: CollabNet Subversion Edge Server 2.0.0-2190.74 (бинарные файлы Subversion 1.6.17-2190.74), работающий на 32-разрядной версии Windows Server 2003.

КЛИЕНТ: TortoiseSVN 1.6.16, сборка 21511 — 32-разрядная версия (Subversion 1.6.17), работающая на 32-разрядной версии Windows XP Pro с пакетом обновления 3 (SP3).

Действия по воспроизведению...

Я получил эту ошибку после перетаскивания правой кнопкой мыши подпапки с версиями в другую подпапку с версиями в папке моей локальной рабочей копии, а затем выбора 'SVN Копировать элементы с версиями здесь' (это контекстное меню TortoiseSVN в Проводнике Windows при перетаскивании папок правой кнопкой мыши). Подпапка содержала один текстовый файл в кодировке ANSI, MANIFEST.MF, который, как мне кажется, я не модифицировал (моя конфигурация Subversion не включает MIME-тип для файлов .MF). Впоследствии я зафиксировал только что скопированную подпапку. Позже, каждый раз, когда я пытался обновить папки локальной рабочей копии Subversion на этом ПК, я получал ошибку размера фрагмента.

Обход...

Я решил эту проблему, перезапустив мою службу Subversion/Apache (что само по себе не помогло и, возможно, не было необходимо), а затем удалив только что добавленную подпапку из папки моей локальной рабочей копии (она уже добрался до репозитория, так что я ничего не потерял), и ЗАТЕМ выполнил обновление, которое прошло успешно без ошибки размера фрагмента и повторно извлекло подпапку, которую я только что удалил.

В моем случае я таким образом скопировал ДВЕ подпапки с версиями, и я не мог успешно обновить корень моей локальной рабочей папки до тех пор, пока не удалил ОБЕ эти новые подпапки.

Следовать за...

Я предполагаю, что это ошибка сервера Subversion и/или клиента TortoiseSVN, но у меня нет навыков отладки, чтобы определить это. Я сообщу о своих выводах в системе отслеживания проблем TortoiseSVN и посмотрю, что из этого получится.

person MikeOnline    schedule 20.07.2011
comment
svn вернуться к добавленным папкам/файлам, затем мне помогло их удаление - person ron; 02.02.2012

Со мной только что случилось такое, и это была не проблема с сервером; моя рабочая копия была повреждена (кстати, мною).

person hoffmanc    schedule 03.03.2011
comment
@Chris Поскольку svn следует модели удаленного репозитория, я просто проверил другую рабочую копию в другом месте и применил к ней исправление своих изменений. - person hoffmanc; 23.06.2011
comment
Я получил что-то похожее после перемещения DNS-имени с одного сервера на другой (у обоих было репо с одинаковым именем), и у клиента все еще были файлы рабочей копии из старого репо, и он импортировал svn в новое репо. Таким образом, то, что мы могли бы назвать «проблемами с рабочей копией», определенно может вызвать ошибку размера фрагмента. - person Matthew Skelton; 20.11.2012
comment
Лучшее решение — запустить очистку рабочей копии поврежденной папки, а затем снова запустить обновление. - person Nux; 30.11.2012
comment
@Nux У меня очень низкий уровень успеха с командой очистки. - person hoffmanc; 02.12.2012
comment
Возможно, вам придется проверить все параметры очистки (включая отмену всех изменений). Это работает каждый раз для меня. И для больших репозиториев у меня это происходит довольно часто (по крайней мере, для сервера 1.6 и клиента 1.7). - person Nux; 03.12.2012

Проблема и (некоторые другие) исчезли после отключения клиентского антивируса.

Я использую сервер Ubuntu с Subversion 1.7.4 через Apache.

person vrogach    schedule 15.05.2012
comment
Ага, тоже были проблемы с Касперским. - person vrogach; 23.10.2012
comment
Я также сообщаю о проблеме svn с Kaspersky, с точно таким же журналом ошибок. - person Leonardo; 09.09.2013
comment
Та же проблема, решается отключением McAfee. Спасибо! - person RckLN; 18.02.2014

Проверьте журнал ошибок apache, там должна быть ошибка с номером ошибки. Этот номер поможет выяснить, почему соединение было разорвано.

Если в журнале ошибок ничего нет, проверьте настройки антивирусного сканера/брандмауэра: некоторые из этих инструментов разрывают соединение, если посчитают передаваемые данные опасными.

person Stefan    schedule 21.04.2009

Для нас проблема заключалась в тайм-ауте на Apache. Обновление заняло около 15 минут, но время ожидания Apache истекло через 10 минут, в результате чего наш сервер SVN выдал ошибку, которую вы видите. Окончательным решением было увеличить время ожидания для Apache. Мы используем сервер VisualSVN — подробные инструкции по изменению этой настройки смотрите здесь: http://adventuresindotnet.blogspot.com/2010/09/svn-trouble.html

person CodeThug    schedule 14.10.2010
comment
Это тоже было решением моей проблемы. Нашим клиентом был git svn, сервер Subversion Edge под Windows 2008 R2, а решением было добавить Timeout 1800 в csvn\data\conf\httpd.conf и перезапустить службу Collabnet Apache. Эта ссылка subversion.apache.org/faq.html#secure-connection-truncated также дает подсказку. - person willw; 05.12.2014

Я перешел на сервер Ubuntu, и у нас была такая же ошибка — на нескольких клиентских ПК, ОС и клиентских версиях.

Убедившись, что и настройки ограничения файлов, и настройки тайм-аута Apache соответствуют предложенным.

(См. http://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/ )

В конце концов я решил проблему, используя пакет apache2-mpm-prefork, а не пакет apache2-mpm-worker.

person Simon Hoffe    schedule 10.01.2011

Я получал такое же сообщение об ошибке при обновлениях после того, как переименовал папку и зафиксировал ее. Я создал новый рабочий каталог и не получил ошибку. Итак, я просто переместил свои изменения в новый рабочий каталог, зафиксировал и удалил старый каталог.

Итак, эта ошибка, похоже, была вызвана повреждением моего локального каталога.

person Community    schedule 14.12.2011

VisualSVN 2.5.8: была та же ошибка, следующие шаги помогли мне исправить эту ошибку:

На сервере:

  1. Удалил на сервере проблемную папку;
  2. Перезапустите сервер VisualSVN.

На рабочей станции:

  1. Обновить родительскую папку;
  2. Добавить папку и файлы снова;
  3. Добавить в SVN ;
  4. Совершить.
person Eugene Bosikov    schedule 20.01.2016

Я тоже это понимаю. Наш сервер Apache работает на Windows. Мой клиент подключен с высокой скоростью, но с довольно большой задержкой (200 мс). Другая часть головоломки заключается в том, что я использую Windows Vista. Включение автомасштабирования и rss вроде улучшает ситуацию, но не исправляет.

person Jeremy White    schedule 12.05.2009

Есть еще одна досадная причина появления этого сообщения об ошибке. Это может быть ваш маршрутизатор или прошивка вашего маршрутизатора.

Недавно я обновил прошивку своего Linksys WRT110 с версии 1.0.02 до 1.0.07, и после этого subversion больше не могла добавлять новые файлы в репозиторий. Он мог только обновлять существующие файлы. Откат на 1.0.02 решил проблему.

Источники:

По сути, каждый раз, когда соединение резко обрывается, вы получите эту ошибку. Как многие из вас заявили, это может быть ошибка конфигурации Apache. Это также может быть связано с медленным сервером или перегруженным соединением, а может быть с дешевым роутером, как было в моем случае.

person mrbinky3000    schedule 10.05.2011

Это явно имеет много причин, но для меня это было исправлено путем перезапуска моего сервера SVN (VisualSVNServer 2.5.1). Это часто происходит при выполнении полной проверки репо на только что загруженном дампе.

person Derrick    schedule 13.12.2011

Для нас обходной путь заключался в понижении версии клиента SVN с версии 1.8 до версии 1.7 (клиент командной строки, поставляемый вместе с TortoiseSVN).

person Frank Schmitt    schedule 10.03.2014