Paul Eggert wrote, On 01/22/2013 02:01 AM:
> Thanks, to help debug that can you please try the following
> shell commands?  The idea is to run the newly-built "rm" in
> a directory that is not readable.
> 
> cd coreutils-8.20/src
> D=$(pwd)
> mkdir -p a/1 b c d/2 e/3
> cd c
> chmod u=x,go= .
> ktrace -o /tmp/tr $D/rm -r $D/a $D/b
> kdump /tmp/tr
> 
> The "ktrace" should get a trace of the system calls executed
> by the failing "rm", and the "kdump" should generate a printable
> output of that.

ktrace/kdump are not available any more on Mac OS X (since 10.5).
I found "dtruss" - but got into a catch-22:

1. Running 'rm' as-is gives error:
    $ $D/rm -r $D/a $D/b                     
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: unable to record 
current working directory: Too many open files

2. Running with 'dtruss' requires root:
    $ dtruss $D/rm -r $D/a $D/b 
    dtrace: failed to initialize dtrace: DTrace requires additional privileges

3. Running with 'sudo', 'rm' doesn't fail:
    $ sudo dtruss $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt
    [ $D/a and $D/b are deleted ]

Attached is the "rm_trace.txt" file, but it won't show failure...

I'm not familiar with MacOS, so any suggestions are welcomed.


Pádraig:
running "make check" in gnulib-test directory failed 8 tests (attached).
I can try instrumentations and other tests, but please tell me how to run them.



-gordon



SYSCALL(args)            = return
madvise(0x7FFF8AC18000, 0x2000, 0x5)             = 0 0
open("/dev/dtracehelper\0", 0x2, 0x7FFF5FC45200)                 = 3 0
ioctl(0x3, 0x80086804, 0x7FFF5FBFD4F0)           = 0 0
close(0x3)               = 0 0
stat64("/usr/lib/libstdc++.6.dylib\0", 0x7FFF5FBFC900, 0x7FFF5FBFCF40)          
 = 0 0
open("/dev/dtracehelper\0", 0x2, 0x7FFF5FC452C8)                 = 3 0
ioctl(0x3, 0x80086804, 0x7FFF5FBFD4F0)           = 0 0
close(0x3)               = 0 0
__sysctl(0x7FFF5FBFD3E0, 0x2, 0x7FFF5FBFD3D0)            = 0 0
bsdthread_register(0x7FFF805E8E7C, 0x7FFF805C9A98, 0x2000)               = 0 0
thread_selfid(0x7FFF805E8E7C, 0x7FFF805C9A98, 0x0)               = 629779 0
open_nocancel("/dev/urandom\0", 0x0, 0x7FFF700F8C00)             = 3 0
read_nocancel(0x3, 
"\25422\365p\2578e\222\374~\241\020\001\215\265?\036JM\377\357\276\263\346^J\272\303\250\343\211\247\325VdZ\320F\373\346\326\364\356?\374\315\366\313\376\035-\025\332\271g\210\272\2551!&\271\305\0",
 0x40)          = 64 0
close_nocancel(0x3)              = 0 0
mmap(0x0, 0x3000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)                = 
0x25000 0
__sysctl(0x7FFF5FBFD260, 0x2, 0x7FFF5FBFD220)            = 0 0
__sysctl(0x7FFF5FBFD220, 0x2, 0x7FFF5FBFD2B8)            = 0 0
getpid(0x7FFF5FBFD1B0, 0x7FFFFFE00050, 0x0)              = 36891 0
open_nocancel("/dev/urandom\0", 0x0, 0x0)                = 3 0
read_nocancel(0x3, ".^\3241ql^\322\331\246d\243\361/S 
\200/\223\006\204\254g\357AZ\326|\246\236Ui\031\273\203\220;\204|\344\367mO`e\213\245^\335\240\251yEh$\264\247\335P\325G\264Q\364\340\207\330S-\226g\363\223@S\213\310v\306>\251I\265\030\361\2540\331V\264\374\254\333b\315d\241\277\236\271\240m\267\336+\016\314n\0",
 0x6C)             = 108 0
close_nocancel(0x3)              = 0 0
__sysctl(0x7FFF5FBFD260, 0x2, 0x7FFF5FBFD28C)            = 0 0
mmap(0x0, 0x17000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)               = 
0x28000 0
mmap(0x0, 0x17000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)               = 
0x3F000 0
mmap(0x0, 0x1000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)                = 
0x56000 0
mmap(0x0, 0x200000, 0x3, 0x1002, 0x7000000, 0x7FFF00000001)              = 
0x57000 0
munmap(0x100057000, 0xA9000)             = 0 0
munmap(0x100200000, 0x57000)             = 0 0
__sysctl(0x7FFF5FBFD3C0, 0x2, 0x7FFF5FBFD380)            = 0 0
__sysctl(0x7FFF5FBFD380, 0x2, 0x7FFF701057A0)            = 0 0
__sysctl(0x7FFF5FBFD3C0, 0x2, 0x7FFF5FBFD380)            = 0 0
__sysctl(0x7FFF5FBFD380, 0x2, 0x7FFF701057A4)            = 0 0
__sysctl(0x7FFF5FBFD3C0, 0x2, 0x7FFF5FBFD380)            = 0 0
__sysctl(0x7FFF5FBFD380, 0x2, 0x7FFF701057A8)            = 0 0
mmap(0x0, 0x3000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)                = 
0x57000 0
__sysctl(0x7FFF5FBFD390, 0x2, 0x7FFF5FBFD350)            = 0 0
__sysctl(0x7FFF5FBFD350, 0x2, 0x7FFF5FBFD3E8)            = 0 0
__sysctl(0x7FFF5FBFD390, 0x2, 0x7FFF5FBFD3BC)            = 0 0
mmap(0x0, 0x17000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)               = 
0x5A000 0
mmap(0x0, 0x17000, 0x3, 0x1002, 0x1000000, 0x7FFF00000001)               = 
0x71000 0
mmap(0x0, 0x200000, 0x3, 0x1002, 0x7000000, 0x7FFF00000001)              = 
0x200000 0
munmap(0x100300000, 0x100000)            = 0 0
ioctl(0x0, 0x4004667A, 0x7FFF5FBFF6FC)           = 0 0
lstat64("/\0", 0x7FFF5FBFF6C8, 0x0)              = 0 0
open(".\0", 0x0, 0x0)            = 3 0
close(0x3)               = 0 0
mmap(0x0, 0x1000000, 0x3, 0x1002, 0x2000000, 0x7FFF00000000)             = 
0x300000 0
munmap(0x100300000, 0x500000)            = 0 0
munmap(0x101000000, 0x300000)            = 0 0
lstat64("/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a\0", 0x100100280, 
0x100100280)              = 0 0
open("/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a\0", 0x120104, 0x0)   
         = 3 0
dup(0x3, 0xFFFFFFFF, 0x0)                = 4 0
close(0x3)               = 0 0
open("/proc/self/fd\0", 0x120004, 0x10001060F)           = -1 Err#2
dup(0x4, 0x120004, 0xFFFFFFFFFFFFFFFF)           = 3 0
close(0x4)               = 0 0
open(".\0", 0x0, 0x0)            = 4 0
fcntl(0x4, 0x1, 0x0)             = 0 0
fcntl(0x4, 0x2, 0x1)             = 0 0
dup(0x3, 0xFFFFFFFF, 0x7FFF5FBFF5C8)             = 5 0
close(0x3)               = 0 0
fchdir(0x5, 0xFFFFFFFF, 0x0)             = 0 0
open_nocancel(".\0", 0x100004, 0x0)              = 3 0
fcntl_nocancel(0x3, 0x2, 0x1)            = 0 0
__sysctl(0x7FFF5FBFE7E0, 0x2, 0x7FFF700FD738)            = 0 0
fstatfs64(0x3, 0x7FFF5FBFE830, 0x0)              = 0 0
fchdir(0x4, 0x10010053, 0x0)             = 0 0
close(0x5)               = 0 0
close(0x4)               = 0 0
getdirentries64(0x3, 0x100800600, 0x1000)                = 76 0
close_nocancel(0x3)              = 0 0
geteuid(0x3, 0x100100000, 0x0)           = 0 0
open("/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a\0", 0x120104, 0x0)   
         = 3 0
fcntl(0x3, 0x1, 0x0)             = 0 0
fcntl(0x3, 0x2, 0x1)             = 0 0
dup(0x3, 0xFFFFFFFF, 0x0)                = 4 0
close(0x3)               = 0 0
dup(0x4, 0x4, 0x10001060F)               = 3 0
close(0x4)               = 0 0
open(".\0", 0x0, 0x0)            = 4 0
fcntl(0x4, 0x1, 0x0)             = 0 0
fcntl(0x4, 0x2, 0x1)             = 0 0
dup(0x3, 0xFFFFFFFF, 0x7FFF5FBFF5D8)             = 5 0
close(0x3)               = 0 0
fchdir(0x5, 0xFFFFFFFF, 0x0)             = 0 0
open_nocancel(".\0", 0x100004, 0x0)              = 3 0
fcntl_nocancel(0x3, 0x2, 0x1)            = 0 0
fstatfs64(0x3, 0x7FFF5FBFE840, 0xA)              = 0 0
fchdir(0x4, 0x10010053, 0x0)             = 0 0
close(0x5)               = 0 0
close(0x4)               = 0 0
fcntl(0x3, 0x0, 0x3)             = 4 0
fcntl(0x4, 0x1, 0x0)             = 0 0
fcntl(0x4, 0x2, 0x1)             = 0 0
getdirentries64(0x3, 0x100800600, 0x1000)                = 76 0
getdirentries64(0x3, 0x100800600, 0x1000)                = 0 0
close_nocancel(0x3)              = 0 0
open(".\0", 0x0, 0x0)            = 3 0
fcntl(0x3, 0x1, 0x0)             = 0 0
fcntl(0x3, 0x2, 0x1)             = 0 0
fchdir(0x4, 0x2, 0x0)            = 0 0
lstat64("1\0", 0x100100630, 0x0)                 = 0 0
fchdir(0x3, 0x100100630, 0x1001006C0)            = 0 0
close(0x3)               = 0 0
open(".\0", 0x0, 0x0)            = 3 0
fcntl(0x3, 0x1, 0x0)             = 0 0
fcntl(0x3, 0x2, 0x1)             = 0 0
fchdir(0x4, 0x2, 0x0)            = 0 0
open("1\0", 0x120104, 0x0)               = 5 0
fchdir(0x3, 0x120104, 0x1001006C0)               = 0 0
close(0x3)               = 0 0
dup(0x5, 0xFFFFFFFF, 0x0)                = 3 0
dup(0x5, 0x3, 0x0)               = 6 0
close(0x5)               = 0 0
dup(0x6, 0x6, 0x10001060F)               = 5 0
close(0x6)               = 0 0
close(0x3)               = 0 0
open(".\0", 0x0, 0x0)            = 3 0
fcntl(0x3, 0x1, 0x0)             = 0 0
fcntl(0x3, 0x2, 0x1)             = 0 0
dup(0x5, 0xFFFFFFFF, 0x7FFF5FBFF5C8)             = 6 0
close(0x5)               = 0 0
fchdir(0x6, 0xFFFFFFFF, 0x0)             = 0 0
open_nocancel(".\0", 0x100004, 0x0)              = 5 0
fcntl_nocancel(0x5, 0x2, 0x1)            = 0 0
fstatfs64(0x5, 0x7FFF5FBFE830, 0xA)              = 0 0
fchdir(0x3, 0x10010053, 0x0)             = 0 0
close(0x6)               = 0 0
close(0x3)               = 0 0
getdirentries64(0x5, 0x100800600, 0x1000)                = 48 0
getdirentries64(0x5, 0x100800600, 0x1000)                = 0 0
close_nocancel(0x5)              = 0 0
open(".\0", 0x0, 0x0)            = 3 0
fcntl(0x3, 0x1, 0x0)             = 0 0
fcntl(0x3, 0x2, 0x1)             = 0 0
fchdir(0x4, 0x2, 0x0)            = 0 0
rmdir(0x1001006C0, 0x2, 0x0)             = 0 0
fchdir(0x3, 0x7FFF700FD730, 0x0)                 = 0 0
close(0x3)               = 0 0
close(0x4)               = 0 0
rmdir(0x100800000, 0x100800000, 0x1)             = 0 0
lstat64("/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/b\0", 0x1001003C0, 
0x1001003C0)              = 0 0
open("/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/b\0", 0x120104, 0x0)   
         = 3 0
dup(0x3, 0xFFFFFFFF, 0x0)                = 4 0
close(0x3)               = 0 0
dup(0x4, 0x4, 0x10001060F)               = 3 0
close(0x4)               = 0 0
open(".\0", 0x0, 0x0)            = 4 0
fcntl(0x4, 0x1, 0x0)             = 0 0
fcntl(0x4, 0x2, 0x1)             = 0 0
dup(0x3, 0xFFFFFFFF, 0x7FFF5FBFF5C8)             = 5 0
close(0x3)               = 0 0
fchdir(0x5, 0xFFFFFFFF, 0x0)             = 0 0
open_nocancel(".\0", 0x100004, 0x0)              = 3 0
fcntl_nocancel(0x3, 0x2, 0x1)            = 0 0
fstatfs64(0x3, 0x7FFF5FBFE830, 0x7FFF700EF650)           = 0 0
fchdir(0x4, 0x10010053, 0x0)             = 0 0
close(0x5)               = 0 0
close(0x4)               = 0 0
getdirentries64(0x3, 0x100800600, 0x1000)                = 48 0
getdirentries64(0x3, 0x100800600, 0x1000)                = 0 0
close_nocancel(0x3)              = 0 0
rmdir(0x100800000, 0x100800000, 0x1)             = 0 0
lseek(0x0, 0x0, 0x1)             = 182110 0
lseek(0x0, 0x0, 0x1)             = 182110 0
lseek(0x0, 0x2C75E, 0x0)                 = 182110 0
getrlimit(0x1008, 0x7FFF5FBFF5F0, 0x7FFF805B32EC)                = 0 0
close_nocancel(0x0)              = 0 0
close_nocancel(0x1)              = 0 0
close_nocancel(0x2)              = 0 0
getpid(0x7FFF5FBFF6A0, 0x7FFFFFE00050, 0x0)              = 36891 0
open_nocancel("/dev/urandom\0", 0x0, 0x0)                = 3 0
read_nocancel(0x3, 
"m\344\025P\340Y)\334\036\344D\202O\264\303\003)Y\334H\371\\n\345\362N<i\273+\243h\220NZ\374G\v\346\"\311\177\022\035q\2122\222J\347J\272R6\2149\276\017o\324}n\251eY\354\3344@'\242\341P\t$I\361\371\205*\215;\336v|v)S\220\264&a\230\270\356%\215\254|!\320\335\265\031p%q\035\0",
 0x6C)            = 108 0
close_nocancel(0x3)              = 0 0
issetugid(0x100000000, 0x7FFF5FBFF9CB, 0x7FFF5FC40530)           = 0 0
geteuid(0x100000000, 0x7FFF5FBFF9CB, 0x0)                = 0 0
__sysctl(0x7FFF5FBFD590, 0x2, 0x7FFF5FBFD550)            = 0 0
__sysctl(0x7FFF5FBFD550, 0x2, 0x7FFF5FBFD5EC)            = 0 0
shared_region_check_np(0x7FFF5FBFD758, 0x0, 0x7FFF5FC1DC86)              = 0 0
stat64("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x7FFF5FBFCB60, 
0x7FFF5FBFD1A0)                 = 0 0
open("/usr/lib/dtrace/libdtrace_dyld.dylib\0", 0x0, 0x0)                 = 3 0
pread(0x3, "\312\376\272\276\0", 0x1000, 0x0)            = 4096 0
pread(0x3, "\317\372\355\376\a\0", 0x1000, 0x1000)               = 4096 0
mmap(0x100020000, 0x2000, 0x5, 0x12, 0x3, 0x7FFF00000001)                = 
0x20000 0
mmap(0x100022000, 0x1000, 0x3, 0x12, 0x3, 0x7FFF00000001)                = 
0x22000 0
mmap(0x100023000, 0x1F10, 0x1, 0x12, 0x3, 0x7FFF00000001)                = 
0x23000 0
close(0x3)               = 0 0
stat64("/usr/lib/libSystem.B.dylib\0", 0x7FFF5FBFC910, 0x7FFF5FBFCF50)          
 = 0 0
stat64("/usr/lib/system/libmathCommon.A.dylib\0", 0x7FFF5FBFC7C0, 
0x7FFF5FBFCE00)                = 0 0

===============================================================
   GNU coreutils 8.20.90-e27bfd: gnulib-tests/test-suite.log
===============================================================

# TOTAL: 315
# PASS:  295
# SKIP:  12
# XFAIL: 0
# FAIL:  8
# XPASS: 0
# ERROR: 0

.. contents:: :depth: 2

FAIL: test-cloexec
==================

test-cloexec.c:96: assertion failed

FAIL: test-dup2
===============

test-dup2.c:172: assertion failed

FAIL: test-fchdir
=================

test-fchdir.c:92: assertion failed

FAIL: test-fcntl
================

test-fcntl.c:263: assertion failed

FAIL: test-fdutimensat
======================

./test-utimens.h:87: assertion failed

FAIL: test-lock
===============

Starting test_lock ... OK
Starting test_rwlock ... OK
Starting test_recursive_lock ...

SKIP: test-mbrtowc-w32-1.sh
===========================

Skipping test: not a native Windows system

SKIP: test-mbrtowc-w32-2.sh
===========================

Skipping test: not a native Windows system

SKIP: test-mbrtowc-w32-3.sh
===========================

Skipping test: not a native Windows system

SKIP: test-mbrtowc-w32-4.sh
===========================

Skipping test: not a native Windows system

SKIP: test-mbrtowc-w32-5.sh
===========================

Skipping test: not a native Windows system

SKIP: test-mbscasecmp.sh
========================

Skipping test: no turkish Unicode locale is installed

FAIL: test-posixtm
==================

000001010000.00 mismatch (-: actual; +:expected)
--62167132800
+-62167219200
000012312359.59 return value mismatch: got 0, expected 1

FAIL: test-dup-safer
====================

test-dup-safer.c:155: assertion failed

SKIP: test-vc-list-files-cvs.sh
===============================

./test-vc-list-files-cvs.sh: line 26: 36188 Trace/BPT trap          ( cvs -Q -d "$repo" init ) > /dev/null 2>&1
test-vc-list-files-cvs.sh: skipped test: cvs not found in PATH

SKIP: test-wcrtomb-w32-1.sh
===========================

Skipping test: not a native Windows system

SKIP: test-wcrtomb-w32-2.sh
===========================

Skipping test: not a native Windows system

SKIP: test-wcrtomb-w32-3.sh
===========================

Skipping test: not a native Windows system

SKIP: test-wcrtomb-w32-4.sh
===========================

Skipping test: not a native Windows system

SKIP: test-wcrtomb-w32-5.sh
===========================

Skipping test: not a native Windows system

Reply via email to