svn: Beim Festschreiben der Transaktion ist ein Fehler aufgetreten
833
Davor Josipovic
Kann mir jemand beim Debuggen dieses Problems helfen? Alles funktioniert (dh ich kann ein Commit ausführen, auschecken usw.), aber dieses Commit schlägt immer wie nachstehend beschrieben fehl. Ich habe versucht, in einem neuen Repository auszuchecken und mich zu verpflichten, aber das gleiche Problem. Beachten Sie auch, dass dies ein sehr großes Repository (500 GB) und ein sehr umfangreiches Commit (36 KB-Dateien mit insgesamt 10 GB) ist.
Dies ist das apache2Fehlerprotokoll:
[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]
Die Kundenseite gibt an:
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'
Zuerst dachte ich, das wäre eine Erlaubnisfrage. Also habe ich das auf dem Server gemacht:
Ich bin gelaufen svnadmin verifyund habe keine Probleme gefunden. dmesgzeigt nichts Neues
Die Apache-svn-Konfig ist ziemlich voreingestellt.
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>
BEARBEITEN: Ich habe die Arbeitskopie auf den Repository-Server kopiert. Dann habe ich versucht zu begehen, hatte aber den gleichen Fehler. Ich zog dann die Arbeitskopie Repository - Position zu richten: svn relocate file:///mnt/vc/svn/repo. Commit hat dieses Mal gearbeitet. Also hat es etwas mit zu tun dav_svn?
Dies scheint ein clientseitiges Problem zu sein, das zu seltsamen serverseitigen Fehlern führt.
Nachdem der Client alle Dateien auf den Server übertragen hat, beginnt der Server, sie in das Repository einzufügen. Während dieser Zeit erhält der Client keine Antwort. Wenn das Zeitlimit länger als das Standardzeitlimit ist, wird die Verbindung vom Client getrennt. Dies führt zu dem oben genannten Fehler auf der Serverseite.
Eine Änderung von 1.8 besteht darin, dass serf nicht auf Neon, sondern auf Client-Seite mit HTTP behandelt wird. Das standardmäßige HTTP-Timeout auf Clientseite beträgt bei Verwendung von Neon 60 Minuten, bei Serifen jedoch 10 Minuten. Ein Client kann sein Standard-Timeout ändern, indem er Server festlegt: global: http-timeout. 1
Und hier ist die Dokumentation für die serversDatei.
Die Einstellung http-timeout = 3600unter dem [global]Tag behebt das Problem.