Может кто-нибудь помочь мне отладить эту проблему? Все работает (т. Е. Я могу зафиксировать, оформить заказ и т. Д.), Но этот коммит всегда терпит неудачу, как описано ниже. Я попытался проверить в новом хранилище и зафиксировать, но тот же вопрос. Также обратите внимание, что это очень большой репозиторий (500 ГБ) и очень большой коммит (36k файлов общим объемом 10 ГБ).
Это apache2журнал ошибок:
[Sat Feb 10 03:25:16.262765 2018] [dav:error] [pid 3339] [client X.X.X.X:61908] Could not DELETE /svn/repo/!svn/txn/463-e8. [500, #0] [Sat Feb 10 03:25:16.265881 2018] [dav:error] [pid 3339] [client X.X.X.X:61908] could not abort transaction. [500, #2] [Sat Feb 10 03:25:16.265905 2018] [dav:error] [pid 3339] [client X.X.X.X:61908] Transaction '463-e8' cleanup failed [500, #2] [Sat Feb 10 03:25:16.265923 2018] [dav:error] [pid 3339] [client X.X.X.X:61908] Can't remove '/mnt/vc/svn/repo/db/transactions/463-e8.txn/node._ji.0' [500, #2] [Sat Feb 10 03:25:16.265940 2018] [dav:error] [pid 3339] [client X.X.X.X:61908] Can't remove file '/mnt/vc/svn/repo/db/transactions/463-e8.txn/node._ji.0': No such file or directory [500, #2] [Sat Feb 10 03:25:30.640591 2018] [dav:error] [pid 2966] [client X.X.X.X:61712] Could not MERGE resource "/svn/repo/!svn/txn/463-e8" into "/svn/repo/repofolder". [500, #0] [Sat Feb 10 03:25:30.642889 2018] [dav:error] [pid 2966] [client X.X.X.X:61712] An error occurred while committing the transaction. [500, #160014] [Sat Feb 10 03:25:30.643003 2018] [dav:error] [pid 2966] [client X.X.X.X:61712] Reference to non-existent node '_1bqk.0.t463-e8' in filesystem '/mnt/vc/svn/repo/db' [500, #160014]
Клиентская сторона дает:
done Committing transaction... svn: E175012: Commit failed (details follow): svn: E175012: Connection timed out svn: E200042: Additional errors: svn: E175002: Unexpected server error 500 'Internal Server Error' on '/svn/repo/!svn/txn/463-e8'
Сначала я подумал, что это проблема с разрешением. Итак, я сделал это на сервере:
Я побежал svnadmin verifyи не нашел проблем. dmesgничего нового не показывает
Конфигурация Apache SVN в значительной степени по умолчанию.
KeepAlive On MaxKeepAliveRequests 0 # Set to 10h. Timeout 36000 SVNCompressionLevel 5 SVNInMemoryCacheSize 16384 SVNCacheTextDeltas On SVNCacheFullTexts On SVNAllowBulkUpdates Prefer <Location /svn> DAV svn SVNParentPath /mnt/vc/svn SVNListParentPath On # Allow large request LimitXMLRequestBody 0 </Location>
РЕДАКТИРОВАТЬ: я скопировал рабочую копию на сервер хранилища. Затем я попытался зафиксировать, но с той же ошибкой. Затем я перенес рабочую копию направить расположение хранилища: svn relocate file:///mnt/vc/svn/repo. Фиксация сработала на этот раз. Так это как-то связано dav_svn?
Кажется, это проблема на стороне клиента, которая приводит к странным ошибкам на стороне сервера.
После того, как клиент передает все файлы на сервер, сервер начинает фиксировать их в хранилище. В течение этого времени клиент не получает ответа, и если это занимает больше времени, чем тайм-аут по умолчанию, то клиент закрывает соединение, что приводит к указанной выше ошибке на стороне сервера.
Одним из изменений в 1.8 является то, что serf используется для обработки HTTP на стороне клиента, а не на неоне. Время ожидания HTTP по умолчанию на стороне клиента при использовании neon составляет 60 минут, но при использовании serf оно составляет 10 минут. Клиент может изменить время ожидания по умолчанию, установив серверы: global: http-timeout. 1