SZÉKELYI Szabolcs wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi, > > the ability to use FIFOs to produce the data to be backed up is a nice > feature of Bacula, however, I don't really understand how this can work > reliably. > > I understand the concept, but I have problems with timing. I did a small > research on how FIFOs work. Consider the following script: > > == > #!/bin/bash > > exec > /dev/null > > mkfifo /tmp/tmpfifo > > ( > for n in `seq 20`; do > echo $n >/tmp/tmpfifo > sleep 1 > done > ) & > == > > Let's use this script to generate the data to be backed up, so it is run > from RunBeforeJob. Creates a FIFO, writes the numbers from 1 to 20 into > it, with a 1 second delay between them. The loop runs in the background, > so the well-known deadlock with Bacula waiting for RunBeforeJob waiting > for Bacula to read the FIFO is avoided. > > When I run this script from a shell, it returns almost immediately as > expected. Next, running a `cat /tmp/tmpfifo` returns "1". Next time it > returns "2", up to 20. So it looks like cat reads an EOF after each line.
I do not see how running it from a shell is comparable to a backup job. > What I can't understand is if Bacula reads a FIFO, how does it know if > the stream is finished or there's only a small pause in the input (which > is not unlikely, eg. for database dumps)? Furthermore, if the script > writing to the FIFO is unable to produce the data at least at the rate > Bacula can consume it, only half of your data gets backed up, since > sooner or later Bacula will catch up with the data producer and read an > EOF from the FIFO (like cat does above). Have you let such a job run to completion? How do you know this example loop is representative of what a FIFO would do? > Can you confirm that this is a real threat or am I overlooking something? I think people much smarter than you or I have created and tested this. People have been using FIFO in production for some time. I also think your question is not Bacula specific but FIFO generic. My conclusion: it works. It is not a real 'threat'. I say this completely without knowing much about FIFO but with the knowledge of the experience level of the people who implemented it. :) ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users