> Before I cause a panic, there is a cut/paste error in my description > below. > There is nothing wrong with Sparse + Compression, it should say "Works > fine" > not "Restore broken".
Thanks for the update -- yes, if sparse + compression were broken, I would be very worried ... :-) > > -----Original Message----- > From: Kern Sibbald [mailto:[EMAIL PROTECTED] > Sent: Friday, November 03, 2006 5:05 PM > To: Robert Nelson > Cc: [EMAIL PROTECTED]; 'Landon Fuller'; > bacula-users@lists.sourceforge.net > Subject: RE: [Bacula-devel] [Bacula-users] Encryption/Compression Conflict > in CVS > > I've got to go now. Thanks for the explaination. > I'll respond as soon as I can, but I would also like to see Landon's > response. > > >> Perhaps if I explained the problem: >> >> Currently (as of 1.39.27) >> >> No filters = Works fine >> Sparse = Works fine >> Compression = Works fine >> Encryption = Works fine >> >> Sparse + Compression = Restore broken >> Sparse + Encryption = Restore broken >> Sparse + Compression + Encryption = Restore broken >> Compression + Encryption = Restore broken >> >> With my fix (> 1.39.27): >> >> All combinations work fine. >> >> But restoration of old backups (1.39.x) using encryption alone or in >> combination with other filters is broken. Since all cases of encryption >> in >> combination with anything else were already broken, that just leaves >> encryption alone. I could special case the handling of just encryption >> so >> that it would be stored differently than when used in combination with >> other >> filters. This would allow old encrypted backups to be read at the >> expense >> of having two versions of the encryption and decryption code. >> >> Since this is a brand new feature I don't think changing the archive >> format >> at this point would affect that many people. Particularly since the >> archives are unreadable if they've used it in combination with >> compression >> or sparse file handling. >> >> I think it is safer to just say that previously written archives using >> encryption aren't readable and should be recreated. >> >> -----Original Message----- >> From: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] On Behalf Of Kern >> Sibbald >> Sent: Friday, November 03, 2006 4:40 PM >> To: Robert Nelson >> Cc: [EMAIL PROTECTED]; 'Landon Fuller'; >> bacula-users@lists.sourceforge.net >> Subject: Re: [Bacula-devel] [Bacula-users] Encryption/Compression >> Conflict >> in CVS >> >> >>> This code is backwards compatible for everything except encrypted data. >>> Previously compressed backups will still work fine. >> >> I'm not 100% sure what you mean, but here are my thoughts: >> >> If it breaks something that previously worked, then it is does not fit >> with the Bacula philosophy of always being able to read Volumes written >> by >> prior versions. >> >> If something was previously broken -- i.e. could not be read -- then we >> should attempt to fix it, if at all possible. >> >> Maintaining backward Volume compatibility and fixing the problem is the >> best solution. Hopefully this is what you can do ... >> >> If we *must* create an incompatibility with Volumes written by prior >> versions of Bacula, then we need to think really hard about how to >> handle >> it because to the best of my knowledge this has never happened. >> >> If certain combinations of options created data that cannot be read >> under >> any conditions, then we need to carefully document it and inform the >> users. >> >>> >>> -----Original Message----- >>> From: [EMAIL PROTECTED] >>> [mailto:[EMAIL PROTECTED] On Behalf Of Kern >>> Sibbald >>> Sent: Friday, November 03, 2006 4:15 PM >>> To: Robert Nelson >>> Cc: [EMAIL PROTECTED]; 'Landon Fuller'; >>> bacula-users@lists.sourceforge.net >>> Subject: Re: [Bacula-users] Encryption/Compression Conflict in CVS >>> >>> >>>> Landon, >>>> >>>> I've changed the code so that the encryption code prefixes the data >>>> block >>>> with a block length prior to encryption. >>>> >>>> The decryption code accumulates data until a full data block is >>>> decrypted >>>> before passing it along to the decompression code. >>>> >>>> The code now works for all four scenarios with encryption and >>>> compression: >>>> none, encryption, compression, and encryption + compression. >>>> Unfortunately >>>> the code is no longer compatible for previously encrypted backups. >>>> >>>> I could add some more code to make the encryption only case work like >>>> before. However, since this is a new feature in 1.39 and there >>>> shouldn't >>>> be >>>> a lot of existing backups, I would prefer to invalidate the previous >>>> backups >>>> and keep the code simpler. >>>> >>>> Also I think we should have a design rule that says any data filters >>>> like >>>> encryption, compression, etc must maintain the original buffer >>>> boundaries. >>>> >>>> This will allow us to define arbitrary, dynamically extensible filter >>>> stacks >>>> in the future. >>>> >>>> What do you think? >>> >>> I'm unfortuntely not in a good position to examine this problem in >>> detail, >>> but I suggest that we should do our best to keep the old data readable >>> by >>> any kludge necessary. >>> >>> One possible solution for the new code that you have implemented is to >>> put >>> the new compressed data in a new stream -- i.e. a different one from >>> the >>> old compressed data -- this could possibly allow old Volumes to be read >>> and any new data written to Volumes will be written correctly. >>> >>> One thing to be very careful about is to make sure the length that you >>> store is bigendian-littlendian independent. Probably you have already >>> done >>> this, but if not you need to use the serialization code that is also >>> used >>> for sparse file length. >>> >>> >>>> >>>> -----Original Message----- >>>> From: [EMAIL PROTECTED] >>>> [mailto:[EMAIL PROTECTED] On Behalf Of >>>> Landon >>>> Fuller >>>> Sent: Wednesday, November 01, 2006 7:08 PM >>>> To: Michael Brennen >>>> Cc: bacula-users@lists.sourceforge.net >>>> Subject: Re: [Bacula-users] Encryption/Compression Conflict in CVS >>>> >>>> >>>> On Nov 1, 2006, at 2:20 PM, Michael Brennen wrote: >>>> >>>>> On Wednesday 01 November 2006 15:33, Arno Lehmann wrote: >>>>> >>>>>>>> This sounds like compression should be automatically disabled when >>>>>>>> encrypton is enabled. Should be useless anyway as encrypted data >>>>>>>> should >>>>>>>> no longer be compressible. >>>>>>> >>>>>>> Not if compression happens prior to encryption. :) >>>>>> >>>>>> Theoretically - yes, but I'm quite sure that encryption usually also >>>>>> compresses data. This is completely unverified and refers to >>>>>> encryption >>>>>> programs that are rather outdated by now, though... >>>>>> >>>>>> But I suppose you could inform us if encryption in Bacula also >>>>>> compresses :-) >>>>> >>>>> Landon, what is your take on this? Since you wrote the code you >>>>> seem to be >>>>> the best source on whether the openssl functions you are using >>>>> compress data. >>>> >>>> Howdy, >>>> >>>> The encryption does not include compression -- It made more sense to >>>> piggyback on the existing compression code. >>>> Also, thanks for catching this! I'm embarrassed that I forgot to test >>>> backup+restore with both compression and encryption enabled. >>>> >>>> -landonf >>>> >>>> >>>> >>>> > ------------------------------------------------------------------------- >>>> Using Tomcat but need to do more? Need to support web services, >>>> security? >>>> Get stuff done quickly with pre-integrated technology to make your job >>>> easier >>>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>>> Geronimo >>>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>>> _______________________________________________ >>>> Bacula-users mailing list >>>> Bacula-users@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/bacula-users >>>> >>> >>> >>> Best regards, Kern >>> >>> ------------------------------------------------------------------------- >>> Using Tomcat but need to do more? Need to support web services, >>> security? >>> Get stuff done quickly with pre-integrated technology to make your job >>> easier >>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>> Geronimo >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>> _______________________________________________ >>> Bacula-users mailing list >>> Bacula-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/bacula-users >>> >>> >>> >>> ------------------------------------------------------------------------- >>> Using Tomcat but need to do more? Need to support web services, >>> security? >>> Get stuff done quickly with pre-integrated technology to make your job >>> easier >>> Download IBM WebSphere Application Server v.1.0.1 based on Apache >>> Geronimo >>> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >>> _______________________________________________ >>> Bacula-devel mailing list >>> [EMAIL PROTECTED] >>> https://lists.sourceforge.net/lists/listinfo/bacula-devel >>> >> >> >> Best regards, Kern >> >> ------------------------------------------------------------------------- >> Using Tomcat but need to do more? Need to support web services, >> security? >> Get stuff done quickly with pre-integrated technology to make your job >> easier >> Download IBM WebSphere Application Server v.1.0.1 based on Apache >> Geronimo >> http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 >> _______________________________________________ >> Bacula-devel mailing list >> [EMAIL PROTECTED] >> https://lists.sourceforge.net/lists/listinfo/bacula-devel >> >> > > > Best regards, Kern > > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier > Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Bacula-devel mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/bacula-devel > Best regards, Kern ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Bacula-users mailing list Bacula-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bacula-users