Re: libDAR skips files above 3 KB - Please help

Satheesh <satheesh_sskzm-/[email protected]> Fri, 25 Apr 2008 20:29:32 +0000 (UTC)
Newsgroups gmane.comp.sysutils.backup.dar.libdar
Message-ID <[email protected]>
Denis Corbin <dar.linux@...> writes:

> 
> 
> Satheesh Kumar wrote:
> > Hi All,
> 
> Hello,
> 
> >   I am new to libDAR and trying to get it work from a pthread routine on 
ppc-64 platform running AIX 5.3 (32 bit
> kernel mode) - compiled from source using gcc and statically linked. 
Specific routine that I've used is
> "create_archive_noexcept". It backs up files less than about 3200 bytes only 
and fails for anything
> bigger. Using GDB, I found that Erange-exception thrown for failed files 
at "fichier::inherited_read"
> due to a failed ::read. If I invoke libdar function from my main thread, all 
files are getting backed up.
> Problem happens only when libdar invoked from a child thread. The directory 
that I am trying to backup is
> just about 200 MB and 2000+ files. I've provided 1 GB swap space and 
following are my process ulimits. I had
> tried to set all those values as unlimited but with no eff
>  ect. Is it required to increase thread stack size by calling 
pthread_attr_setstacksize() ? If so, how do I
> guestimate that value ?
> >    
> 
> For what I understand, the problem whe you call libdar from a thread is
> a lack of permission to read files you want to backup. Permission
> problem that does not exist when you do not use threads, right?
> 
> If so, I see no relation with this and any of the ulimit parameters. I
> would rather try to find out why the thread you create do not have the
> same permission than the process it is spawn from.
> 
> >   bash-3.2# ulimit -a
> > core file size          (blocks, -c) 1048575
> > data seg size           (kbytes, -d) 131072
> > file size               (blocks, -f) unlimited
> > max memory size         (kbytes, -m) 32768
> > open files                      (-n) 2000
> > pipe size            (512 bytes, -p) 64
> > stack size              (kbytes, -s) 32768
> > cpu time               (seconds, -t) unlimited
> > max user processes              (-u) 262144
> > virtual memory          (kbytes, -v) unlimited
> >    
> >   I also attempted to dynamically link libdar when the same exception got 
thrown for files above ~3200
> bytes. Even though exception is being caught by "filtre_sauvegarde", it was 
crashing with the following
> stack trace - 
> >    
> >   Program received signal SIGILL, Illegal instruction.
> > 0x00000000 in ?? ()
> > (gdb) bt
> > #0  0x00000000 in ?? ()
> > #1  0xd1fecd4c in libdar::user_interaction::warning (
> >     this=0x200dd8d4, message=@0x200f8688)
> >     at user_interaction.cpp:113
> 
> Probably the reference to the user_interaction object you gave is not valid.
> 
> > #2  0xd20c5e98 in libdar::filtre_sauvegarde (
> >     dialog=@0x200dd8d4, filtre=@0x200dd90c,
> >     subtree=@0x200dd91c, stockage=0x200fd3c8,
> >     cat=@0x201e75a8, ref=@0x201e74f8,
> >     fs_racine=@0xf0a7c328, info_details=true,
> >     st=@0xf0b81ab4, make_empty_dir=false,
> >     ea_mask=@0x200f9124, compr_mask=@0x200dd92c,
> >     min_compr_size=@0x200f9110, nodump=false,
> >     hourshift=@0x200f910c, alter_atime=false,
> >     same_fs=false, what_to_check=cf_all,
> >     snapshot=false, cache_directory_tagging=false,
> >     display_skipped=false, fixed_date=@0x200f9108)
> >     at filtre.cpp:592
> >    
> >   Any help would be greatly appreciated.
> >    
> >   Thanks,
> >   Satheesh 
> > 
> 
> Regards,
> Denis.
> 

Thanks Denis. The libdar thread has root privileges (getuid returned 0 - same 
as the process) and more over certain files on the same directory with same 
permissions are being read correctly. fichier::open succceds for those files 
however fichier::inherited_read fails. 
::read is failing for files above ~3.2 K only. I verified the same use-case on 
RH Linux EL4 on x86 where this problem do not happen. I am using libdar 
version 2.3.6.

Regards,
Satheesh




-------------------------------------------------------------------------
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