Subscribe to Mailing Lists     FAQFAQ    SearchSearch      Register  Log in to check your private messagesLog in to check your private messages    Log inLog in 
These forums brought to you by Backup Central, where we also have the Mr. Backup Blog, Mailing Lists, FAQs,
and Directories of Backup Software and Hardware
Problem with Detection of Multiple rdiff-backup instances

 
Post new topic   Reply to topic    Backup Central Forums Forum Index -> Rdiff-Backup
View previous topic :: View next topic  
Author Message
Steven Willoughby
Guest





PostPosted: Thu Sep 24, 2009 5:17 pm    Post subject: Problem with Detection of Multiple rdiff-backup instances Reply with quote

Dean Cording wrote:
Quote:
I've come across an issue with the way that rdiff-backup ensures that only one
server is accessing a backup dataset.
...
Quote:
Recently I had a backup fail, probably because of a network outage. All
subsequent backups refuse to run because rdiff-backup believes the failed rdiff-
backup instance is still running - even though this is clearly impossible
because it is a totally different instance of the virtual server.

This had me stumped for a while but I finally figured out what is happening.

Because I start a new virtual server instance each time and I run the backup
from a script, everything happens in a consistent order. As a result the
instance of rdiff-backup running on the server for each backup session almost
always has the same PID. So when a backup fails, the subsequent backup looks
at the metadata, finds the PID of the failed backup and sees that that PID is
still running - not realising that the other instance is actually itself.

A cursory look at regress.py seems to confirm this behavior:
Specifically in check_pids() it says:

if pid is not None and pid_running(pid):

This could say:

if pid is not None and pid is not os.getpid() and pid_running(pid):

Quote:

I'm not sure of a way of working around this problem as the virtual machine is
always started from a known state and hasn't been running long enough to build
up any entropy to generate unique random numbers between different sessions.


The current time adds a little randomness. A silly workaround would be
to call the following perl script before running rdiff-backup:

#!/usr/bin/perl
`/bin/true` for 0..int(rand(100));

This will increase the pid and should stop your job from failing
continuously.

Steven


_______________________________________________
rdiff-backup-users mailing list at rdiff-backup-users < at > nongnu.org
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki
Back to top
Jakob Unterwurzacher
Guest





PostPosted: Fri Sep 25, 2009 4:11 am    Post subject: Problem with Detection of Multiple rdiff-backup instances Reply with quote

Steven Willoughby schrieb:
Quote:
#!/usr/bin/perl
`/bin/true` for 0..int(rand(100));

This will increase the pid and should stop your job from failing
continuously.

Steven

Exactly.

Same thing in bash:

#!/bin/bash
for i in `seq 1 $((RANDOM%100))`; do /bin/true; done


But you should make sure that $RANDOM assumes different values after a
reboot (same for perl's rand(100), which is likely more advanced and
less likely to suffer from that problem).

Jakob


_______________________________________________
rdiff-backup-users mailing list at rdiff-backup-users < at > nongnu.org
http://lists.nongnu.org/mailman/listinfo/rdiff-backup-users
Wiki URL: http://rdiff-backup.solutionsfirst.com.au/index.php/RdiffBackupWiki
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Backup Central Forums Forum Index -> Rdiff-Backup All times are GMT - 8 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Magic SEO URL for phpBB