Странная ошибка 500 с фиксацией svn на один простой файл

Мы используем сервер VisualSVN здесь на работе, и все работает нормально, у нас более 50 репозиториев. Я попытался сегодня разместить в репозитории веб-сайт, но он продолжает сбой в одном отдельном файле, который я изолировал.

Adding: C:\Work\LAN6505\web\trunk\common_files\includes\fr\debut.inc.php  
Sending content: C:\Work\LAN6505\web\trunk\common_files\includes\fr\debut.inc.php  
Error: Commit failed (details follow):  
Error: Server sent unexpected return value (500 Internal Server Error) in response to  
Error:  PUT request for  
Error:  '/svn/LAN6505/!svn/txr/13-i/web/trunk/common_files/includes/fr/debut.inc.php'  
Completed!:   

Я просто получаю 500 ошибок, больше информации. Кто-нибудь знает, что с этим делать? Есть ли файл журнала для сервера VisualSvn, на который я мог бы смотреть.

Если я скопирую файл в другой репозиторий с аналогичной структурой, проблема не возникает...

Код файла может быть найден: http://pastebin.com/PwTCQSP7

Надеюсь, кто-то может помочь...


UPDATE

Event Type:       Error
Event Source:   VisualSVN Server 2.5
Event Category:               Apache 
Event ID:             1001
Date:                    1/23/2012
Time:                    9:37:10 AM
User:                    ACTIVIS-991RBEL\Mathieu Dumoulin
Computer:         DELL-PE2900-01
Description:
Could not get next bucket brigade  [500, #0]
[client 192.168.0.64]

ОБНОВЛЕНИЕ # 2

Soooo, потратив 2,5 дня на перенос моего SVN-сервера на Windows на сервер SVN на linux, я снова получил ту же проблему:

[Fri Feb 24 16:35:21 2012] [error] [клиент 192.168.0.64] Не удалось получить следующая ведровая бригада (URI: /svn/LAN 6505/!svn/wrk/289e3161-cdbf-d44d-9716-c6390289ec92/web/trunk/common_files/includes/fr/debut.inc.php) [500, # 0]

[Fri Feb 24 16:36:12 2012] [error] [клиент 192.168.0.64] Не удалось получить следующая ведровая бригада (URI: /svn/LAN 6505/!svn/wrk/554a4a6c-a015-7045-b0c6-072ffe01f854/web/trunk/common_files/includes/fr/debut.inc.php) [500, # 0]

[Fri Feb 24 16:48:17 2012] [error] [клиент 192.168.0.64] Не удалось получить следующая ведровая бригада (URI: /svn/LAN 6505/!svn/wrk/15bd0f7e-06b9-b046-8c67-5f9778fab9b5/web/trunk/common_files/includes/fr/debut.inc.php) [500, # 0]

Ответ 1

В конце концов, мы выяснили, что простое изменение файла и выполнение работ могут по-прежнему быть связаны с брандмауэром, поскольку это единственный последний элемент на этом пути. Но изменение подписи файла работает...

действительно действительно странная проблема...

Ответ 2

У меня возникла точно такая же проблема. Это никогда не происходит при подключении к локальной сети. Когда я передаю SVN-репозиторий на другой стороне планеты через VPN, это случается достаточно часто.

Отключение Kaspersky Internet Security 2012 помогает, но не всегда.

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

Другим решением является предотвращение фрагментации IP. Вы можете проверить, что ваши пакеты фрагментированы с помощью команды ping: ping host_name -f

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

К сожалению, все вышеупомянутые решения не на 100% надежны. Эта ошибка также выглядит для меня загадкой. Я не понимаю, почему SVN настолько чувствителен к этим вещам.

Ответ 3

У меня была аналогичная проблема, и я подтверждаю, что отключение Kaspersky Internet Security 2012 на время фиксации разрешает проблему в моем случае. Если кто-то также сталкивается с такой проблемой, следует проверить, не защищает ли антивирус/брандмауэр svn-передачу.

Ответ 4

Это выглядит так:

Он оказался во входном фильтре (имеет отношение к закодированной кодировке); если загрузка заканчивается до того, как ожидается, загрузка завершится неудачно, потому что сервер ожидает больше данных, даже если конец потока был отправлен.

ok, ошибка появляется во входном фильтре.

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

Я бы ожидал, что вам помогут две вещи:

  • Обновление VisualSVN, чтобы исправить это для вас; сообщается, что связанная ошибка имеет исправление для apache в r792409

    *) core: Return APR_EOF, если тело запроса короче, чем объявленная длина     клиентом. PR 33098 [Stefan Fritsch]

  • Отсутствие (недавнего) опыта работы с VisualSVN заставляет меня сомневаться в том, что что-то происходит с конкретным файлом (он может содержать оскорбительные символы, это Windows, я считаю, что ascii 26 (^ Z) можно интерпретировать как EOF Посмотрите, есть ли в вашем файле какие-либо "забавные" символы, или вы можете поместить его в двоичном режиме (либо для одного файла, либо для всего сервера).

Ответ 5

Я думаю, что нашел возможный источник этой ошибки (по крайней мере, в моем случае):
Это происходит из-за нехватки дискового пространства на диске/разделе, на котором находится ваше репо.

Мой случай:
Обнаруженная ошибка
Пытался искать, если фиксация прошла через VisualSVN
Repo все еще находился в состоянии до совершения сделки Совместимое место на диске, было равно нулю
Удалите некоторые случайные файлы для освобождения памяти (около 10 МБ)
Commit работает сейчас

TL; DR: освободите память на диске, в котором хранится ваш репозиторий, недостаточно памяти, вероятно, является следствием этой ошибки

Ответ 6

Я решил эту проблему, отключив Kaspersky Internet Security на клиентском ПК при совершении транзакций, но я этого не сделаю, если он также разрешит проблему в вашем случае.

Ответ 7

Антивирусная программа (Kaspersky) вызывала большинство проблем в нашей локальной сети. Отключение антивирусной программы разрешило проблему (в большинстве случаев).

Ответ 8

Я испытываю эту проблему в течение последних нескольких дней и, наконец, смог ее исправить.

Похоже, что либо отсутствующие следующие руководства, либо мое собственное невежество, я не сделал правильный chown в моем репозитории. И похоже, что все данные обрабатывались как текст, что приводило к тому, что конец символов файла в двоичных данных приводил к ошибке Bucket Brigade в apache.

Как только я правильно сделал chown со следующим:

sudo chown -R www-data:www-data /home/svnrepo

Мои проблемы ушли.