Package: coreutils;
Reported by: Chris Marusich <cmmarusich <at> gmail.com>
Date: Sun, 20 May 2012 16:57:01 UTC
Severity: wishlist
Tags: wontfix
Done: Assaf Gordon <assafgordon <at> gmail.com>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Chris Marusich <cmmarusich <at> gmail.com> To: 11526 <at> debbugs.gnu.org Subject: bug#11526: "du -s . foo bar" only outputs size of first argument -- versions 8.13, 8.16, and 8.17 (latest) Date: Sun, 20 May 2012 00:41:24 -0700
[Message part 1 (text/plain, inline)]
BUG DESCRIPTION: If you pass multiple arguments to du -s and the first of those argument is . (the current directory), then du will only output the size of the first argument. This bug is reproducible in version 8.13 on Ubuntu 12.04 LTS (this is currently the latest version for Ubuntu 12.04 LTS) as follows. However, it works properly in version 7.4 on Ubuntu 10.04.3 LTS. An acquaintance has confirmed that the bug also occurs with du 8.16 and 8.17 (currently the latest coreutils version) on Arch Linux. EXAMPLE, DU DOESN'T WORK: chris <at> shmion:~/foo$ mkdir foo bar ; ls -al total 16 drwxrwxr-x 4 chris chris 4096 May 19 23:24 . drwxr-xr-x 42 chris chris 4096 May 19 22:04 .. drwxrwxr-x 2 chris chris 4096 May 19 23:24 bar drwxrwxr-x 2 chris chris 4096 May 19 23:24 foo chris <at> shmion:~/foo$ strace -odu.log du -s . foo bar 20 . chris <at> shmion:~/foo$ lsb_release -d Description: Ubuntu 12.04 LTS chris <at> shmion:~/foo$ du --version | head -n 1 du (GNU coreutils) 8.13 chris <at> shmion:~/foo$ cat du.log execve("/usr/bin/du", ["du", "-s", ".", "foo", "bar"], [/* 51 vars */]) = 0 brk(0) = 0x17aa000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f15215ed000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=82139, ...}) = 0 mmap(NULL, 82139, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f15215d8000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\30\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1802936, ...}) = 0 mmap(NULL, 3917016, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f1521010000 mprotect(0x7f15211c3000, 2093056, PROT_NONE) = 0 mmap(0x7f15213c2000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b2000) = 0x7f15213c2000 mmap(0x7f15213c8000, 17624, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f15213c8000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f15215d7000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f15215d6000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f15215d5000 arch_prctl(ARCH_SET_FS, 0x7f15215d6700) = 0 mprotect(0x7f15213c2000, 16384, PROT_READ) = 0 mprotect(0x617000, 4096, PROT_READ) = 0 mprotect(0x7f15215ef000, 4096, PROT_READ) = 0 munmap(0x7f15215d8000, 82139) = 0 brk(0) = 0x17aa000 brk(0x17cb000) = 0x17cb000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=3906928, ...}) = 0 mmap(NULL, 3906928, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f1520c56000 close(3) = 0 newfstatat(AT_FDCWD, ".", {st_mode=S_IFDIR|0775, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(AT_FDCWD, ".", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_DIRECTORY|O_NOFOLLOW) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 fcntl(3, F_GETFL) = 0x38800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(3, F_DUPFD, 3) = 4 fcntl(4, F_GETFD) = 0 fcntl(4, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 5 entries */, 32768) = 128 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 newfstatat(4, "foo", {st_mode=S_IFDIR|0775, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(4, "foo", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_DIRECTORY|O_NOFOLLOW) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 fcntl(3, F_GETFL) = 0x38800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(3, F_DUPFD, 3) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 2 entries */, 32768) = 48 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 close(5) = 0 newfstatat(4, "bar", {st_mode=S_IFDIR|0775, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(4, "bar", O_RDONLY|O_NOCTTY|O_NONBLOCK|O_DIRECTORY|O_NOFOLLOW) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 fcntl(3, F_GETFL) = 0x38800 (flags O_RDONLY|O_NONBLOCK|O_LARGEFILE|O_DIRECTORY|O_NOFOLLOW) fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fcntl(3, F_DUPFD, 3) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 getdents(3, /* 2 entries */, 32768) = 48 getdents(3, /* 0 entries */, 32768) = 0 close(3) = 0 close(5) = 0 newfstatat(4, "du.log", {st_mode=S_IFREG|0664, st_size=4441, ...}, AT_SYMLINK_NOFOLLOW) = 0 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f15215ec000 write(1, "20\t.\n", 5) = 5 close(4) = 0 newfstatat(AT_FDCWD, "foo", {st_mode=S_IFDIR|0775, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 newfstatat(AT_FDCWD, "bar", {st_mode=S_IFDIR|0775, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 close(1) = 0 munmap(0x7f15215ec000, 4096) = 0 close(2) = 0 exit_group(0) = ? chris <at> shmion:~/foo$ EXAMPLE, DU WORKS: chris <at> rika:~/foo$ mkdir foo bar ; ls -al total 16 drwxr-xr-x 4 chris chris 4096 2012-05-19 23:25 . drwxr-xr-x 6 chris chris 4096 2012-05-19 22:36 .. drwxr-xr-x 2 chris chris 4096 2012-05-19 23:25 bar drwxr-xr-x 2 chris chris 4096 2012-05-19 23:25 foo chris <at> rika:~/foo$ strace -odu.log du -s . foo bar 20 . 4 foo 4 bar chris <at> rika:~/foo$ lsb_release -d Description: Ubuntu 10.04.3 LTS chris <at> rika:~/foo$ du --version | head -n 1 du (GNU coreutils) 7.4 chris <at> rika:~/foo$ cat du.log execve("/usr/bin/du", ["du", "-s", ".", "foo", "bar"], [/* 21 vars */]) = 0 brk(0) = 0x9ea7000 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7794000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=18207, ...}) = 0 mmap2(NULL, 18207, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb778f000 close(3) = 0 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory) open("/lib/tls/i686/cmov/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\0000m\1\0004\0\0\0"..., 512) = 512 fstat64(3, {st_mode=S_IFREG|0755, st_size=1405508, ...}) = 0 mmap2(NULL, 1415592, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x49e000 mprotect(0x5f1000, 4096, PROT_NONE) = 0 mmap2(0x5f2000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x153) = 0x5f2000 mmap2(0x5f5000, 10664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x5f5000 close(3) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb778e000 set_thread_area({entry_number:-1 -> 6, base_addr:0xb778e8d0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 mprotect(0x5f2000, 8192, PROT_READ) = 0 mprotect(0x805e000, 4096, PROT_READ) = 0 mprotect(0x946000, 4096, PROT_READ) = 0 munmap(0xb778f000, 18207) = 0 brk(0) = 0x9ea7000 brk(0x9ec8000) = 0x9ec8000 open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory) open("/usr/share/locale/locale.alias", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=2570, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7793000 read(3, "# Locale name alias data base.\n#"..., 4096) = 2570 read(3, "", 4096) = 0 close(3) = 0 munmap(0xb7793000, 4096) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_IDENTIFICATION", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_IDENTIFICATION", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=373, ...}) = 0 mmap2(NULL, 373, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7793000 close(3) = 0 open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=26048, ...}) = 0 mmap2(NULL, 26048, PROT_READ, MAP_SHARED, 3, 0) = 0xb7787000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_MEASUREMENT", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_MEASUREMENT", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=23, ...}) = 0 mmap2(NULL, 23, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7792000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_TELEPHONE", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_TELEPHONE", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0 mmap2(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7791000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_ADDRESS", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_ADDRESS", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=155, ...}) = 0 mmap2(NULL, 155, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7790000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_NAME", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_NAME", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=77, ...}) = 0 mmap2(NULL, 77, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb778f000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_PAPER", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_PAPER", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=34, ...}) = 0 mmap2(NULL, 34, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7786000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_MESSAGES", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_MESSAGES", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 close(3) = 0 open("/usr/lib/locale/en_US.utf8/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=57, ...}) = 0 mmap2(NULL, 57, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7785000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_MONETARY", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_MONETARY", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=286, ...}) = 0 mmap2(NULL, 286, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7784000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_COLLATE", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_COLLATE", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=1170770, ...}) = 0 mmap2(NULL, 1170770, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7666000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_TIME", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_TIME", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=2454, ...}) = 0 mmap2(NULL, 2454, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7665000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_NUMERIC", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_NUMERIC", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=54, ...}) = 0 mmap2(NULL, 54, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7664000 close(3) = 0 open("/usr/lib/locale/en_US.UTF-8/LC_CTYPE", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/lib/locale/en_US.utf8/LC_CTYPE", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=256324, ...}) = 0 mmap2(NULL, 256324, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7625000 close(3) = 0 fstatat64(AT_FDCWD, ".", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(AT_FDCWD, ".", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fcntl64(3, F_DUPFD, 3) = 4 getdents64(3, /* 5 entries */, 32768) = 128 getdents64(3, /* 0 entries */, 32768) = 0 close(3) = 0 fstatat64(4, "foo", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(4, "foo", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fcntl64(3, F_DUPFD, 3) = 5 getdents64(3, /* 2 entries */, 32768) = 48 getdents64(3, /* 0 entries */, 32768) = 0 close(3) = 0 close(5) = 0 fstatat64(4, "bar", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(4, "bar", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fcntl64(3, F_DUPFD, 3) = 5 getdents64(3, /* 2 entries */, 32768) = 48 getdents64(3, /* 0 entries */, 32768) = 0 close(3) = 0 close(5) = 0 fstatat64(4, "du.log", {st_mode=S_IFREG|0644, st_size=8092, ...}, AT_SYMLINK_NOFOLLOW) = 0 fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7624000 write(1, "20\t.\n", 5) = 5 close(4) = 0 fstatat64(AT_FDCWD, "foo", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(AT_FDCWD, "foo", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fcntl64(3, F_DUPFD, 3) = 4 getdents64(3, /* 2 entries */, 32768) = 48 getdents64(3, /* 0 entries */, 32768) = 0 close(3) = 0 write(1, "4\tfoo\n", 6) = 6 close(4) = 0 fstatat64(AT_FDCWD, "bar", {st_mode=S_IFDIR|0755, st_size=4096, ...}, AT_SYMLINK_NOFOLLOW) = 0 openat(AT_FDCWD, "bar", O_RDONLY|O_LARGEFILE) = 3 fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 fcntl64(3, F_GETFL) = 0x8000 (flags O_RDONLY|O_LARGEFILE) fcntl64(3, F_SETFD, FD_CLOEXEC) = 0 fcntl64(3, F_DUPFD, 3) = 4 getdents64(3, /* 2 entries */, 32768) = 48 getdents64(3, /* 0 entries */, 32768) = 0 close(3) = 0 write(1, "4\tbar\n", 6) = 6 close(4) = 0 close(1) = 0 munmap(0xb7624000, 4096) = 0 close(2) = 0 exit_group(0) = ? chris <at> rika:~/foo$
[Message part 2 (text/html, inline)]
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.