Ralf and I did some testing offline.  The problem is with zero length files,
the error is in this code taken from save_file() in filed/backup.c

   /*
    * Open any file with data that we intend to save, then save it.
    *
    * Note, if is_win32_backup, we must open the Directory so that
    * the BackupRead will save its permissions and ownership streams.
    */
   if (ff_pkt->type != FT_LNKSAVED && (S_ISREG(ff_pkt->statp.st_mode) &&
         ff_pkt->statp.st_size > 0) ||
         ff_pkt->type == FT_RAW || ff_pkt->type == FT_FIFO ||
         (!is_portable_backup(&ff_pkt->bfd) && ff_pkt->type == FT_DIREND)) {

We never open the file or do a BackupRead if the file is zero length.

Kern, can you see any problem if we just remove the ff_pkt->statp.st_size >
0 portion of the test?


> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:bacula-users-
> [EMAIL PROTECTED] On Behalf Of Ralf Ertzinger
> Sent: Monday, February 12, 2007 11:52 PM
> To: bacula-users@lists.sourceforge.net
> Subject: Re: [Bacula-users] Backing up and restoring Windows permissions
> 
> Hi.
> 
> On Mon, 12 Feb 2007 22:48:21 -0800, Robert Nelson wrote:
> 
> > Are you running an antivirus program?  If so, does it still happen if
> > the antivirus is disabled?
> 
> There is no AV program on the Windows machine.
> 
> >
> > Do you have the portable option set to yes in the FileSet resource?
> > If so, does it occur if you remove it?
> 
> To the best of my knowledge this option is not set. The configuration
> sections relevant to the machine in question are below.
> 
> Is there a way to see (in the storage) whether the permissions were
> even saved? bls does not seem to tell me that, it just lists UNIX
> style permissions.
> 
> 
> 
> Director config:
> 
> Director {                            # define myself
>   Name = banea-dir
>   DIRport = 9101                # where we listen for UA connections
>   QueryFile = "/usr/libexec/bacula/query.sql"
>   WorkingDirectory = "/var/lib/bacula"
>   PidDirectory = "/var/run"
>   Maximum Concurrent Jobs = 1
>   Password = "GVAslILAQw69HBIVsrX8egWouulz9d58q3DogOPExPnz"         #
> Console password
>   Messages = Daemon
> }
> JobDefs {
>   Name = "DefaultJob"
>   Type = Backup
>   Level = Incremental
>   Client = banea-fd
>   FileSet = "Full Set"
>   Schedule = "WeeklyCycle"
>   Storage = File
>   Messages = Standard
>   Pool = Default
>   Priority = 10
> }
> Job {
>     Name = "w2k"
>     client = w2k-fd
>     jobdefs = "DefaultJob"
>     FileSet = "w2k-set"
> }
> Job {
>   Name = "BackupCatalog"
>   JobDefs = "DefaultJob"
>   Level = Full
>   FileSet="Catalog"
>   Schedule = "WeeklyCycleAfterBackup"
>   # This creates an ASCII copy of the catalog
>   RunBeforeJob = "/usr/libexec/bacula/make_catalog_backup bacula bacula"
>   # This deletes the copy of the catalog
>   RunAfterJob  = "/usr/libexec/bacula/delete_catalog_backup"
>   Write Bootstrap = "/var/lib/bacula/BackupCatalog.bsr"
>   Priority = 11                   # run after main backup
> }
> Job {
>   Name = "RestoreFiles"
>   Type = Restore
>   Client=banea-fd
>   FileSet="Full Set"
>   Storage = File
>   Pool = Default
>   Messages = Standard
> }
> Fileset {
>     Name = "w2k-set"
>     Include {
>         Options {
>             signature = MD5
>         }
>         File = "C:/TEMP"
>     }
> }
> Schedule {
>   Name = "WeeklyCycle"
>   Run = Full 1st sun at 23:05
>   Run = Differential 2nd-5th sun at 23:05
>   Run = Incremental mon-sat at 23:05
> }
> Schedule {
>   Name = "WeeklyCycleAfterBackup"
>   Run = Full sun-sat at 23:10
> }
> FileSet {
>   Name = "Catalog"
>   Include {
>     Options {
>       signature = MD5
>     }
>     File = /var/lib/bacula/bacula.sql
>   }
> }
> Client {
>   Name = w2k-fd
>   Address = ADDIX-RE-W2K.addix.campus
>   FDPort = 9102
>   Catalog = MyCatalog
>   Password = "12345"      # password for FileDaemon
>   File Retention = 30 days            # 30 days
>   Job Retention = 6 months            # six months
>   AutoPrune = yes                     # Prune expired Jobs/Files
> }
> Storage {
>   Name = File
>   Address = banea.int.addix.net                # N.B. Use a fully
> qualified name here
>   SDPort = 9103
>   Password = "3mhDDbTYzDcvOmRNKLf1wOlZ5PIjeFHbz2RLqbvDnFzG"
>   Device = FileStorage
>   Media Type = File
> }
> Catalog {
>   Name = MyCatalog
>   dbname = bacula; user = bacula; password = bacula
> }
> Messages {
>   Name = Standard
>   mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s
> \"Bacula: %t %e of %c %l\" %r"
>   operatorcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s
> \"Bacula: Intervention needed for %j\" %r"
>   mail = [EMAIL PROTECTED] = all, !skipped
>   operator = [EMAIL PROTECTED] = mount
>   console = all, !skipped, !saved
>   append = "/var/lib/bacula/log" = all, !skipped
> }
> Messages {
>   Name = Daemon
>   mailcommand = "/usr/sbin/bsmtp -h localhost -f \"\(Bacula\) %r\" -s
> \"Bacula daemon message\" %r"
>   mail = [EMAIL PROTECTED] = all, !skipped
>   console = all, !skipped, !saved
>   append = "/var/lib/bacula/log" = all, !skipped
> }
> 
> Pool {
>   Name = Default
>   Pool Type = Backup
>   Recycle = yes                       # Bacula can automatically recycle
> Volumes
>   AutoPrune = yes                     # Prune expired volumes
>   Volume Retention = 365 days         # one year
> }
> Console {
>   Name = banea-mon
>   Password = "yktXPUIdRLEz4qrmn8HXgixUfR+pRdiyK2RXK3t3949T"
>   CommandACL = status, .status
> }
> 
> 
> FileDaemon config on the Windows machine:
> #
> # Default  Bacula File Daemon Configuration file
> #
> #  For Bacula release 2.0.2 (01/28/07) -- Windows MVS
> #
> # There is not much to change here except perhaps the
> # File daemon Name
> #
> 
> #
> # "Global" File daemon configuration specifications
> #
> FileDaemon {                            # this is me
>   Name = addix-re-w2k-fd
>   FDport = 9102                # where we listen for the director
>   WorkingDirectory = "C:\\Dokumente und Einstellungen\\All
> Users\\Anwendungsdaten\\Bacula\\Work"
>   Pid Directory = "C:\\Dokumente und Einstellungen\\All
> Users\\Anwendungsdaten\\Bacula\\Work"
>   Maximum Concurrent Jobs = 2
> }
> 
> #
> # List Directors who are permitted to contact this File daemon
> #
> Director {
>   Name = banea-dir
>   Password = "12345"
> }
> 
> #
> # Restricted Director, used by tray-monitor to get the
> #   status of the file daemon
> #
> Director {
>   Name = addix-re-w2k-mon
>   Password = "dsB8PGsI0gX2KuH/LWmHUmqk0vlY/NRyd5B9BAHAKz65"
>   Monitor = yes
> }
> 
> # Send all messages except skipped files back to Director
> Messages {
>   Name = Standard
>   director = banea-dir = all, !skipped, !restored
> }
> 
> -------------------------------------------------------------------------
> 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-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to