Skip to content

Instantly share code, notes, and snippets.

@hogem
Last active October 12, 2015 14:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hogem/4043772 to your computer and use it in GitHub Desktop.
Save hogem/4043772 to your computer and use it in GitHub Desktop.
getdents loop on glusterfs distributed volume (ext4 filesystem)
# df -PT /mnt/vol1
Filesystem Type 1024-blocks Used Available Capacity Mounted on
sv01:/vol1 fuse.glusterfs 368136192 41472640 307963264 12% /mnt/vol1
# cd /mnt/vol1
# mkdir {0..9}
# dir=$(ls)
# for d in $dir; do dd if=/dev/zero of=./$d/hoge.dat bs=1M count=100; done
# strace ls *
execve("/bin/ls", ["ls", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], [/* 22 vars */]) = 0
brk(0) = 0x2254000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a47f000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=76770, ...}) = 0
mmap(NULL, 76770, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3a7a46c000
close(3) = 0
open("/lib64/libselinux.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0PX`\347;\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=124624, ...}) = 0
mmap(0x3be7600000, 2221912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3be7600000
mprotect(0x3be761d000, 2093056, PROT_NONE) = 0
mmap(0x3be781c000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1c000) = 0x3be781c000
mmap(0x3be781e000, 1880, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3be781e000
close(3) = 0
open("/lib64/librt.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@!`\311=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=47064, ...}) = 0
mmap(0x3dc9600000, 2128816, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3dc9600000
mprotect(0x3dc9607000, 2093056, PROT_NONE) = 0
mmap(0x3dc9806000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x3dc9806000
close(3) = 0
open("/lib64/libcap.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\23`\313=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=19016, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a46b000
mmap(0x3dcb600000, 2111776, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3dcb600000
mprotect(0x3dcb604000, 2093056, PROT_NONE) = 0
mmap(0x3dcb803000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x3dcb803000
close(3) = 0
open("/lib64/libacl.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\36`\324<\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=33816, ...}) = 0
mmap(0x3cd4600000, 2126416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3cd4600000
mprotect(0x3cd4607000, 2093056, PROT_NONE) = 0
mmap(0x3cd4806000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x3cd4806000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\355a\310=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1918016, ...}) = 0
mmap(0x3dc8600000, 3741864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3dc8600000
mprotect(0x3dc8789000, 2093056, PROT_NONE) = 0
mmap(0x3dc8988000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x188000) = 0x3dc8988000
mmap(0x3dc898d000, 18600, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3dc898d000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\r\240\256=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=22536, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a46a000
mmap(0x3daea00000, 2109696, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3daea00000
mprotect(0x3daea02000, 2097152, PROT_NONE) = 0
mmap(0x3daec02000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x3daec02000
close(3) = 0
open("/lib64/libpthread.so.0", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\\\240\310=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=145720, ...}) = 0
mmap(0x3dc8a00000, 2212768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3dc8a00000
mprotect(0x3dc8a17000, 2097152, PROT_NONE) = 0
mmap(0x3dc8c17000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x17000) = 0x3dc8c17000
mmap(0x3dc8c19000, 13216, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3dc8c19000
close(3) = 0
open("/lib64/libattr.so.1", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\23\340\312=\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=21152, ...}) = 0
mmap(0x3dcae00000, 2113888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3dcae00000
mprotect(0x3dcae04000, 2093056, PROT_NONE) = 0
mmap(0x3dcb003000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3000) = 0x3dcb003000
close(3) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a469000
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a467000
arch_prctl(ARCH_SET_FS, 0x7f3a7a4677a0) = 0
mprotect(0x3be781c000, 4096, PROT_READ) = 0
mprotect(0x3dc9806000, 4096, PROT_READ) = 0
mprotect(0x3cd4806000, 4096, PROT_READ) = 0
mprotect(0x3dc8988000, 16384, PROT_READ) = 0
mprotect(0x3daec02000, 4096, PROT_READ) = 0
mprotect(0x3dc801f000, 4096, PROT_READ) = 0
mprotect(0x3dc8c17000, 4096, PROT_READ) = 0
mprotect(0x3dcb003000, 4096, PROT_READ) = 0
munmap(0x7f3a7a46c000, 76770) = 0
set_tid_address(0x7f3a7a467a70) = 30801
set_robust_list(0x7f3a7a467a80, 0x18) = 0
futex(0x7fffc7ba9cdc, FUTEX_WAKE_PRIVATE, 1) = 0
futex(0x7fffc7ba9cdc, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7f3a7a4677a0) = -1 EAGAIN (Resource temporarily una
vailable)
rt_sigaction(SIGRTMIN, {0x3dc8a05ae0, [], SA_RESTORER|SA_SIGINFO, 0x3dc8a0f500}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {0x3dc8a05b70, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x3dc8a0f500}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=10240*1024, rlim_max=RLIM_INFINITY}) = 0
statfs("/selinux", {f_type="EXT2_SUPER_MAGIC", f_bsize=4096, f_blocks=12901535, f_bfree=11055936, f_bavail=10400576, f_files=32768
00, f_ffree=3143205, f_fsid={102720829, 374939767}, f_namelen=255, f_frsize=4096}) = 0
brk(0) = 0x2254000
brk(0x2275000) = 0x2275000
open("/proc/filesystems", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3a7a47e000
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tb"..., 1024) = 376
read(3, "", 1024) = 0
close(3) = 0
munmap(0x7f3a7a47e000, 4096) = 0
open("/usr/lib/locale/locale-archive", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=99154480, ...}) = 0
mmap(NULL, 99154480, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f3a745d7000
close(3) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fffc7ba9ae0) = -1 EINVAL (Invalid argument)
ioctl(1, TIOCGWINSZ, 0x7fffc7ba9c40) = -1 EINVAL (Invalid argument)
stat("./", {st_mode=S_IFDIR|0755, st_size=12288, ...}) = 0
open("./", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
fcntl(3, F_GETFD) = 0x1 (flags FD_CLOEXEC)
getdents(3, /* 4 entries */, 32768) = 120
getdents(3, /* 1 entries */, 32768) = 32
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
getdents(3, /* 2 entries */, 32768) = 64
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment