Может кто-нибудь помочь мне отладить эту проблему? Все работает (то есть я могу зафиксировать, оформить заказ и т.д.), Но этот коммит всегда завершается неудачей, как описано ниже. Я попытался проверить в новом хранилище и зафиксировать, но тот же вопрос. Также обратите внимание, что это очень большой репозиторий (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'
Сначала я подумал, что это проблема с разрешением. Итак, я сделал это на сервере:
su - www-data -s /bin/bash -c "svnadmin rmtxns /mnt/vc/svn/repo/ 463-e8"
Transaction '463-e8' removed.
Нет ошибок вообще. Apache работает как www-data
. Установлены следующие разрешения:
chown www-data:www-data /mnt/vc -R
chmod 0774 /mnt/vc -R
Я 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>
Дополнительная информация:
Server: Debian 9.3
apache2/stable,stable,now 2.4.25-3+deb9u3 amd64 [installed]
libapache2-mod-svn/stable,stable,now 1.9.5-1+deb9u1 amd64 [installed]
Server svn client: 1.9.5-1+deb9u1
Client: svn 1.9.7
РЕДАКТИРОВАТЬ: я скопировал рабочую копию на сервер хранилища. Затем я попытался зафиксировать, но с той же ошибкой. Затем я переместил рабочую копию в прямое расположение хранилища: svn relocate file:///mnt/vc/svn/repo
. Фиксация сработала на этот раз. Значит, это связано с dav_svn
?
Тот же вопрос был задан в списке рассылки subversion-пользователей.