bug-tar
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-tar] memory exhausted


From: John Hein
Subject: Re: [Bug-tar] memory exhausted
Date: Sun, 26 Oct 2008 19:48:04 -0600

Dr. Jürgen Vollmer wrote at 15:50 +0200 on Oct 17, 2008:
 > Am Freitag 17 Oktober 2008 15:40:11 schrieb Sergey Poznyakoff:
 > > Hi Jürgen,
 > >
 > > > Not I'm not able to display (list) the tape contants, since tar aborts
 > > > with the message:
 > > >
 > > >  /usr/local/bin/tar: memory exhausted
 > > >  /usr/local/bin/tar: Error is not recoverable: exiting now
 > >
 > > Did it display any partial listing before that, or it failed right after
 > > startup?
 > 
 > the written archive contains ca. 1.900.000 files.
 > tar aborted afzer listing of ca. 1.700.000 files.

This happens for me, too, when I used --listed-incremental on
a large directory (~400 GB).  Here is how tar is invoked...

gtar --create --file /dev/null --directory /foo --listed-incremental 
/tmp/tarlist .

You can make this happen quicker if you set the data segment size
limit lower than the normal default.
It dies when tar's memory usage (as reported by ps) reaches the
'datasize' limit.

FWIW, this happens with gtar-1.15.1 & gtar-1.18, too.

I ran gtar in gdb and set a breakpoint in xalloc_die.  Here's the
backtrace when it reached the breakpoint.  I believe the large size in
frame #2 is a symptom, not the cause (due to issues when datasize is
exceeded).

(gdb) bt full
#0  xalloc_die () at extract.c:1377
No locals.
#1  0x0807f011 in xmalloc ()
No symbol table info available.
#2  0x08055dcf in make_directory (
    name=0x1d488800 "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar/")
    at incremen.c:251
        namelen = 63
        size = 673749152
        directory = (struct directory *) 0x2808bf9c
#3  0x08055f52 in find_directory (name=0x0) at incremen.c:312
        dir = (struct directory *) 0xbfbfe1b0
        ret = (struct directory *) 0x2808bf9c
#4  0x08056064 in procdir (
    name_buffer=0x1d488800 "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar/", 
stat_data=0xbfbfe1b0, device=0, children=NO_CHILDREN, verbose=false, entry=0x0)
    at incremen.c:367
        directory = (struct directory *) 0x2808bf9c
        nfs = false
#5  0x0805667f in get_directory_contents (
    dir=0x2808bf9c "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar",
    device=100) at incremen.c:609
No locals.
#6  0x0805be6f in add_hierarchy_to_namelist (name=0x2808bf80, device=100) at 
names.c:737
        file_name = 0x2808bf9c "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar"
        buffer = 0x4 <Error reading address 0x4: Bad address>
#7  0x0805bf4a in add_hierarchy_to_namelist (name=0x28083198, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 59
        namebuf = 0x28087c00 "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar"
        string = 0x28083198 "Dbar"
        string_length = 4
        file_name = 0x2808299c "./foo/bar/bar/bar/bar/bar/bar/bar/bar"
        buffer = 0x4 <Error reading address 0x4: Bad address>
#8  0x0805bf4a in add_hierarchy_to_namelist (name=0x27dd4ce2, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 54
        namebuf = 0x27e7f480 "./foo/bar/bar/bar/bar/bar/bar/bar/bar/bar"
        string = 0x27dd4ce2 "Dbar"
        string_length = 5
        file_name = 0x27da921c "./foo/bar/bar/bar/bar/bar/bar/bar/bar"
        buffer = 0x5 <Error reading address 0x5: Bad address>
#9  0x0805bf4a in add_hierarchy_to_namelist (name=0x27d9f4a3, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 50
        namebuf = 0x27da4c80 "./foo/bar/bar/bar/bar/bar/bar/bar/bar"
        string = 0x27d9f4a3 "Dbar"
        string_length = 4
        file_name = 0x27c2399c "./foo/bar/bar/bar/bar/bar/bar/bar"
        buffer = 0x4 <Error reading address 0x4: Bad address>
#10 0x0805bf4a in add_hierarchy_to_namelist (name=0x27c1f715, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 46
        namebuf = 0x27c23780 "./foo/bar/bar/bar/bar/bar/bar"
        string = 0x27c1f715 "Dbar"
        string_length = 4
        file_name = 0x27c2361c "./foo/bar/bar/bar/bar/bar"
        buffer = 0x4 <Error reading address 0x4: Bad address>
#11 0x0805bf4a in add_hierarchy_to_namelist (name=0x27c21e1f, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 39
        namebuf = 0x27c23500 "./foo/bar/bar/bar/bar/bar"
        string = 0x27c21e1f "Dbar"
        string_length = 7
        file_name = 0x27c2169c "./foo/bar/bar/bar/bar"
        buffer = 0x7 <Error reading address 0x7: Bad address>
#12 0x0805bf4a in add_hierarchy_to_namelist (name=0x25f7ae76, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 31
        namebuf = 0x25fafb00 "./foo/bar/bar/bar/bar"
        string = 0x25f7ae76 "Dbar"
        string_length = 8
        file_name = 0x25fa9c5c "./foo/bar/bar/bar"
        buffer = 0x8 <Error reading address 0x8: Bad address>
#13 0x0805bf4a in add_hierarchy_to_namelist (name=0x25fa2e70, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 23
        namebuf = 0x253c4280 "./foo/bar/bar/bar"
        string = 0x25fa2e70 "Dbar"
        string_length = 8
        file_name = 0x25fa9c1c "./foo/bar/bar"
        buffer = 0x8 <Error reading address 0x8: Bad address>
#14 0x0805bf4a in add_hierarchy_to_namelist (name=0x253c3036, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 17
        namebuf = 0x95ab080 "./foo/bar/bar"
        string = 0x253c3036 "Dbar"
        string_length = 6
        file_name = 0x24b5845c "./foo/bar"
        buffer = 0x6 <Error reading address 0x6: Bad address>
#15 0x0805bf4a in add_hierarchy_to_namelist (name=0x958b239, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 6
        namebuf = 0x8094180 "./foo/bar"
        string = 0x958b239 "Dbar"
        string_length = 11
        file_name = 0x95ac31c "./foo"
        buffer = 0xb <Error reading address 0xb: Bad address>
#16 0x0805bf4a in add_hierarchy_to_namelist (name=0x8091162, device=100) at 
names.c:782
        np = (struct name *) 0x0
        allocated_length = 100
        change_dir = 1
        name_length = 2
        namebuf = 0x8094100 "./foo"
        string = 0x8091162 "Dfoo"
        string_length = 4
        file_name = 0x808f0dc "."
        buffer = 0x4 <Error reading address 0x4: Bad address>
#17 0x0805c588 in collect_and_sort_names () at names.c:831
        name = (struct name *) 0x808f0c0
        next_name = (struct name *) 0x0
        num_names = 0
        statbuf = {st_dev = 100, st_ino = 2, st_mode = 16877, st_nlink = 6, 
st_uid = 0,
  st_gid = 0, st_rdev = 3040, st_atimespec = {tv_sec = 1225036680, tv_nsec = 0},
  st_mtimespec = {tv_sec = 1208447795, tv_nsec = 0}, st_ctimespec = {
    tv_sec = 1208447795, tv_nsec = 0}, st_size = 512, st_blocks = 4, st_blksize 
= 4096,
  st_flags = 0, st_gen = 578958771, st_lspare = 0, st_birthtimespec = {
    tv_sec = 1202319701, tv_nsec = 0}}
#18 0x080513c5 in create_archive () at create.c:1284
        buffer_size = 1000
        buffer = 0x8093000 "8"
        q = 0x0
        p = 0x0
#19 0x0806268b in main (argc=0, argv=0x0) at tar.c:2445
No locals.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]