Hello,
I am the original author.
The code to reload the conf file is not thread safe, so if you execute
two different copies of bconsole both doing a reload, you will end up
with two threads attempting the same thing, which could severely
corrupt Bacula's internal memory (pointers, tables and such).
After a bit of thought, the solution is probably simply to add a mutex,
so that only one thread can execute the code at a time.
Regards,
Kern
On 06/09/2012 03:55 AM, Alexander Wigen wrote:
Hi Bacula developers,
I've opened up a bug for this:
http://bugs.bacula.org/view.php?id=1889
I'll happily provide a patch for this, but I can't until I understand
what sort of recursion the original author was worried about.
Sincerely,
Alexander Wigen
On 06/06/12 22:02, Alexander Wigen wrote:
Hi Bacula developers,
We have stumbled on a race condition where two concurrent reload request
can cause bacula-dir to abort().
The following is enough to crash bacula-dir in most cases:
(echo reload | bconsole)& (echo reload | bconsole)&
One of our developers Jeremy Peterson has been working on this problem and
has traced the abort statement to dird.c:
void reload_config(int sig)
static bool already_here = false;
if (already_here) {
abort(); /* Oops, recursion -> die */
}
Patching Bacula so that the abort() doesn't fire mitigates the race
condition and the director doesn't die. This piece of code has not changed
since since moving from cvs to git (in 2002).
I assume the abort statement is there for a reason, to stop recursion, but
we are not sure what would cause this recursion and therefore I'm asking
what the correct fix for this bug should be.
Sincerely,
Alexander Wigen
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats.http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Bacula-devel mailing list
Bacula-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-devel