You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Stefan <al...@gmx.de> on 2006/11/10 02:32:03 UTC

Killing processes

Hi...

I read in the FAQ, that the repository can get corrupted, if the
client-process is been killed. Remains this problem in Subversion 1.4.2 with
BerkeleyDB 4.5.20?

Does the repository also get corrupted, if the svnserve-process is been
killed while no client is connected? If it gets corrupted, what is the right
way to stop the svnserve-process?
I guess - because of the transactional behaviour of the db - that the result
is the same, when the svnserve-process is been killed while a client is
connected, isn't it?

  Stefan

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org


Re: Killing processes

Posted by Ulrich Eckhardt <ec...@satorlaser.com>.
On Friday 10 November 2006 03:32, Stefan wrote:
> I read in the FAQ, that the repository can get corrupted, if the
> client-process is been killed. Remains this problem in Subversion 1.4.2
> with BerkeleyDB 4.5.20?

The repository is not corrupted but 'wedged'. It happens when a transaction is 
partially written to the database. Since there are signals a program can't 
ignore (at least on POSIX systems) there is nothing any software can do about 
it.

> Does the repository also get corrupted, if the svnserve-process is been
> killed while no client is connected? If it gets corrupted, what is the
> right way to stop the svnserve-process?

If you have svnserve setup to be run via e.g. inetd, every client connecting 
spawns a new svnserve process. If you need to take down your repository for 
maintenance, you simply tell inetd not to accept any further connections and 
wait until the last client connection is finished.

If you only have svnserve listening on a port, I think that even then it 
closes the database between transactions so when no client is connected, the 
database is in a consistent state and won't get wedged when svnserve is 
killed.

> I guess - because of the transactional behaviour of the db - that the
> result is the same, when the svnserve-process is been killed while a client
> is connected, isn't it?

Again, it doesn't get corrupted. The repository is only left in an 
intermediate state. Note that SVN 1.4 (I think) automatically recovers from 
this wedged state, I seem to remember something in the release info.

Uli

**************************************************************************************
           Visit our website at <http://www.satorlaser.de/>
**************************************************************************************

Diese E-Mail und jede mit dieser E-Mail versandte Datei ist vertraulich und ausschließlich für die Nutzung durch den vorgesehenen Empfänger bestimmt. Sollten Sie nicht der vorgesehene Empfänger dieser E-Mail sein, informieren Sie bitte den Absender.  Jeder unbefugte Zugriff oder unbefugte Weiterleitung, die Fertigung einer Kopie oder sonstige in diesem Zusammenhang stehende Handlung ist untersagt.


This e-mail and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this e-mail in error, please be so kind to inform the sender. Any other unauthorised access, unauthorised forwarding, copying or other action in this connection at all, is prohibited.
**************************************************************************************

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org