[KLUG Members] Directory Size

Jamie McCarthy members@kalamazoolinux.org
Mon, 8 Dec 2003 09:55:25 -0500


bartleyd2@chartermi.net (Dirk H Bartley) writes:

> Someone has already told me that it segfaults on debian
> systems.  I'm looking for a debian system to test it on.  Any
> volunteers?
> 
> ftp://ftp.kalamazoolinux.org/pub/projects/dbartley/dirsum.tgz

On Debian (at least on the unstable branch I'm using), it works on
some directories, not on others.


daisy:/usr/local/src/dirsum# cat /etc/issue
Debian GNU/Linux testing/unstable \n \l

daisy:/usr/local/src/dirsum# uname -a
Linux daisy 2.4.21.20030916 #1 Tue Sep 16 15:54:55 EDT 2003 i686 GNU/Linux

daisy:/usr/local/src/dirsum# make
g++ -c -g -Wall BitFlagg.cpp -o BitFlagg.o
g++ -c -g -Wall CountFilesSumBytes.cpp -o CountFilesSumBytes.o
g++ -c -g -Wall FilesInDir.cpp -o FilesInDir.o
g++ -c -g -Wall ReturnSum.cpp -o ReturnSum.o
g++ -c -g -Wall ReturnValues.cpp -o ReturnValues.o
g++ -c -g -Wall SubDir.cpp -o SubDir.o
g++ -c -g -Wall SubDirectory.cpp -o SubDirectory.o
g++ -c -g -Wall main.cpp -o main.o
g++ -g -Wall -o dirsum BitFlagg.o CountFilesSumBytes.o FilesInDir.o ReturnSum.o ReturnValues.o SubDir.o SubDirectory.o main.o

daisy:/usr/local/src/dirsum# g++ --version
g++ (GCC) 3.3.2 (Debian)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

daisy:/usr/local/src/dirsum# ./dirsum /home/jamie/dl      
/home/jamie/dl has 4687060 Bytes in 6 Files, with 6 Subdirectories
which is  0.08 percent of total

   Subdirs   This Directory         1 Deeper         2 - 45 Deeper          Totals
      Name   Bytes   Files   Dirs   Bytes   Files    Dirs   Bytes   Files   Files   Bytes    %
      rush    5.5T     611                                                    611    5.5T 96.85
        hl  177.7G    7029                                                   7029  177.7G  3.04
memtest86-  806.5M      54                                                     54  806.5M  0.01
 Pound-1.5  454.3M      17                                                     17  454.3M  0.01
     pound  412.6M      16                                                     16  412.6M  0.01
qce-ga-0.4  195.3M      17      1    6.2M       4                              21  201.5M  0.00
    Totals    5.7T    7744      1    6.2M       4                            7754    5.7T

daisy:/usr/local/src/dirsum# ./dirsum /home/jamie/dl/pound
Segmentation fault

daisy:/usr/local/src/dirsum# strace ./dirsum /home/jamie/dl/pound
execve("./dirsum", ["./dirsum", "/home/jamie/dl/pound"], [/* 16 vars */]) = 0
uname({sys="Linux", node="daisy", ...}) = 0
brk(0)                                  = 0x804d900
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=39893, ...}) = 0
old_mmap(NULL, 39893, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libstdc++.so.5", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\262"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=729688, ...}) = 0
old_mmap(NULL, 749312, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40022000
old_mmap(0x400bf000, 86016, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x9d000) = 0x400bf000
old_mmap(0x400d4000, 20224, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400d4000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libm.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 5\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=134356, ...}) = 0
old_mmap(NULL, 136912, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400d9000
old_mmap(0x400fa000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x20000) = 0x400fa000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0@\25\0\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=31548, ...}) = 0
old_mmap(NULL, 30464, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400fb000
old_mmap(0x40102000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x7000) = 0x40102000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`^\1\000"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1243076, ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40103000
old_mmap(NULL, 1253316, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40104000
old_mmap(0x4022b000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x126000) = 0x4022b000
old_mmap(0x40234000, 8132, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40234000
close(3)                                = 0
munmap(0x40018000, 39893)               = 0
brk(0)                                  = 0x804d900
brk(0x806e900)                          = 0x806e900
brk(0)                                  = 0x806e900
brk(0x806f000)                          = 0x806f000
open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a directory)
open("/home/jamie/dl/pound", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|S_ISGID|0755, st_size=4096, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
brk(0)                                  = 0x806f000
brk(0)                                  = 0x806f000
brk(0x806e000)                          = 0x806e000
brk(0)                                  = 0x806e000
close(3)                                = 0
open("/home/jamie/dl/pound", O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY) = 3
fstat64(3, {st_mode=S_IFDIR|S_ISGID|0755, st_size=4096, ...}) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC)         = 0
getdents64(3, /* 18 entries */, 4096)   = 560
getdents64(3, /* 0 entries */, 4096)    = 0
lseek(3, 0, SEEK_SET)                   = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
-- 
  Jamie McCarthy
 http://mccarthy.vg/
  jamie@mccarthy.vg