Hello, Last night I released two Beta version of Bacula source and Win32 binaries to Source Forge. The first is Bacula version 2.2.9-b7, which is the seventh in the series of 2.2.9 beta release (b5 was never released). This version has a few additional fixes to the prior 2.2.9 beta release:
- Close bat console windows first to eliminate error message from the notifier. - Remove useless code in Scheduler that causes seg fault on termination. - Correct some SD catalog request error messages. - Don't allow pruning of any running job. - Turn off code in read_record that causes a seg fault in the SD when reading past an EOS_LABEL. - Turn off unloading the autochanger in reserve.c as it just causes problems. - Lock volumes when unreserving a device. - Do not mark volume unused when recycling. - When acquiring, don't mark volume unused if it is reserved (busy). In short, if you are using a Bacula 2.2.9 beta version, this one should be an improvement. As some of you have experienced first hand, Bacula is being used in situations that stress its current capabilities -- particularly when running large numbers of simultaneous backups on multiple drive autochangers. The main problem occurs when Bacula has reserved a particular drive and wants a tape that is on another drive. This often leads to deadlock situations or job failures. Fortunately this seems to be limited to a relatively small set of users, but on the other hand, they are *big* users so the problem can cause 50 or more jobs to fail. This problem is described in bug #1053, and I have spent a huge amount of time working on it, analyzing the problems, and patching all to little or no avail. As a consequence, I am not really very happy with the 2.2.9 beta versions, and hence have never officially released it. I finally came to the conclusion that it was fruitless to continue trying to patch it, so I spent 2 weeks making significant changes to the volume management routines in the SD, and ended up with something that though not a true solution is a big improvement and much simpler. It involves something line 2,900 lines of changes to 2.2.9-b7, so I have renumbered it 2.2.10-b1, and this is the second release that I made last night. 2.2.10-b1 is significantly better at passing the regression tests than 2.2.9. However, with 2,900 lines of changes, we can expect some problems. So I recommend that anyone that is having problems with 2.2.9 on multiple drive autochangers (or bug #1053) to try with caution version 2.2.10-b1. The changes to this version are: kes Permit multiple simultaneous restores -- experiment. kes Backport development stream SD reservation system changes. See below: === kes Move final volume swapping code to DCR method and call it from acquire_for_read(). kes When wrong volume is mounted during read, unload_autochanger. kes Stop searching for Volumes in SD askdir if DIR returns the same volume name twice in a row. kes Tweak the swap Volume from one drive to another code so that it now seems to work. kes Resolve several problems with recycling that broke the new code (these problems are in 2.2.9 as well). kes Remove the volume lock when calling the sysop code. kes Don't mark a reserved volume with no writers as unused otherwise jobs fail. kes Rework class structures for VOLRES, DCR, and DEVICE to make the method names a bit more logical, and for more logically handling the responsibilities. kes Remove redundant code in terminating the scheduler that just causes a seg fault in many cases. kes Cleanup releasing a volume and make it a DCR method. kes Improve algorithm for detecting pre-reserved volume and swapping volumes. kes Tweak volume swapping code so it works. kes Correct name overloading in mount.c kes Replace released flag in VOLRES with reserved and add access methods for the VOLRES class. kes Prevent volume from being released while being swapped. kes Refactor parts of stored/mount.c ebl Add sanity checks for VolWriteTime and VolReadTime ebl Take care of bad clock changes while computing VolWriteTime and VolReadTime. This should fix or limit #1066 kes Correct error string numbers in dird/catreq.c kes Restructure reserving, acquiring, and mounting volumes. Calls to autochanger are deferred for mount.c -- simplifes the code. kes Do not prune any running job. It just fails the job. kes Lock the volumes when changing dev->reserved_device and marking the volume unused otherwise the device can get reserved by another job before the volume is released, thus blocking it. === I would particularly appreciate feedback on version 2.2.10 (send your comments directly to me or to the bacula-devel list). Vacation: I will be on vacation from 20-27 April in Cameroon, so will be definitely out of touch the project and my email for that time. Unfortunate tendencies: Eric Bollengier just brought the following information to my attention: http://jcole.us/blog/archives/2008/04/14/just-announced-mysql-to-launch-new-features-only-in-mysql-enterprise/ Summary, MySQL is going to have two versions: one Open Source, and one Enterprise (for $$$) with more features. This is not really unexpected, because we have already seen companies such as Zmanda making proprietary "Enterprise" additions to Amanda. However, it is something that I consider terribly unfortunate both for the Open Source community which will be deprived of important features, largely based on work they have done, and also for the Enterprise market that will receive inferior "proprietary" code because it has not been reviewed and tested by Open Source users. You might be aware that Bacula is quickly entering the Enterprise market, and that we have been working on providing professional support, training, and consulting services for Bacula to promote Enterprise use of Bacula. We hope to officially announce this within the next month, and remind you that I have send several detailed emails on this in the past, so for the moment, if you have any questions, please refer to those emails. The most complete was an email I sent on 16 July 2007 (see gmane or other email archive). The only significant change to that email is that we are not currently looking for additional founders, but will probably be looking for employees shortly. You might ask if Bacula will go the direction of Zmanda, MySQL, and others. My answer is that I cannot imagine it for three reasons: 1. I have transferred the copyright to the Free Software Foundation Europe, which basically prevents anyone but the original authors from creating proprietary versions. 2. The new company is committed to having ensuring that functionally the Community version == Enterprise version. There will be minor differences in the branding (i.e. clearly indicate the binary was created by the company) and in the testing done. 3. I am and have been thoroughly committed and dedicated to Open Source for at least 10 years now. I hope this will reassure and satisfy the Open Source community and the Enterprise market concerning Bacula's future, but it surely won't please big corporations or VCs looking to snap up Open Source software projects and take them private. Best regards, Kern ------------------------------------------------------------------------- This SF.net email is sponsored by the 2008 JavaOne(SM) Conference Don't miss this year's exciting event. There's still time to save $100. Use priority code J8TL2D2. http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone _______________________________________________ Bacula-devel mailing list Bacula-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-devel