GNU bug report logs - #13516
tests/rm/unread3 fails on Mac OS X 10.8

Previous Next

Package: coreutils;

Reported by: Assaf Gordon <assafgordon <at> gmail.com>

Date: Mon, 21 Jan 2013 19:43:01 UTC

Severity: normal

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 13516 in the body.
You can then email your comments to 13516 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Mon, 21 Jan 2013 19:43:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Assaf Gordon <assafgordon <at> gmail.com>:
New bug report received and forwarded. Copy sent to bug-coreutils <at> gnu.org. (Mon, 21 Jan 2013 19:43:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: bug-coreutils <at> gnu.org
Subject: tests/rm/unread3 fails on Mac OS X 10.8
Date: Mon, 21 Jan 2013 14:51:03 -0500
[Message part 1 (text/plain, inline)]
Hello,

Testing the latest coreutils on Mac OS X, "tests/rm/unread3" fails.
The immediate cause is:
"rm: unable to record current working directory: Too many open files"

Attached is the relevant part from the log file.

The programs were compiled using:
===
$ ./configure CC=clang

## --------- ##
## Platform. ##
## --------- ##

hostname = minimacc.local
uname -m = i386
uname -r = 10.8.0
uname -s = Darwin
uname -v = Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386

/usr/bin/uname -p = i386
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = Mach kernel version:
         Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
Kernel configured for up to 2 processors.
2 processors are physically available.
2 processors are logically available.
Processor type: i486 (Intel 80486)
Processors active: 0 1
Primary memory available: 2.00 gigabytes
Default processor set: 71 tasks, 267 threads, 2 processors
Load average: 0.19, Mach factor: 1.80
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown
[...]
configure:4946: clang --version >&5
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin10.8.0
Thread model: posix
configure:4957: $? = 0
configure:4946: clang -v >&5
Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
Target: x86_64-apple-darwin10.8.0
Thread model: posix
===

-gordon

P.S.
To compile it on Mac, Paul Eggert's fix is required ( http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13495 ).
[unread3.test.fail.log (text/x-log, attachment)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 22 Jan 2013 03:20:02 GMT) Full text and rfc822 format available.

Message #8 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Pádraig Brady <P <at> draigBrady.com>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 22 Jan 2013 03:17:55 +0000
On 01/21/2013 07:51 PM, Assaf Gordon wrote:
> Hello,
>
> Testing the latest coreutils on Mac OS X, "tests/rm/unread3" fails.
> The immediate cause is:
> "rm: unable to record current working directory: Too many open files"


>
> Attached is the relevant part from the log file.
>
> The programs were compiled using:
> ===
> $ ./configure CC=clang
>
> ## --------- ##
> ## Platform. ##
> ## --------- ##
>
> hostname = minimacc.local
> uname -m = i386
> uname -r = 10.8.0
> uname -s = Darwin
> uname -v = Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
>
> /usr/bin/uname -p = i386
> /bin/uname -X     = unknown
>
> /bin/arch              = unknown
> /usr/bin/arch -k       = unknown
> /usr/convex/getsysinfo = unknown
> /usr/bin/hostinfo      = Mach kernel version:
>           Darwin Kernel Version 10.8.0: Tue Jun  7 16:33:36 PDT 2011; root:xnu-1504.15.3~1/RELEASE_I386
> Kernel configured for up to 2 processors.
> 2 processors are physically available.
> 2 processors are logically available.
> Processor type: i486 (Intel 80486)
> Processors active: 0 1
> Primary memory available: 2.00 gigabytes
> Default processor set: 71 tasks, 267 threads, 2 processors
> Load average: 0.19, Mach factor: 1.80
> /bin/machine           = unknown
> /usr/bin/oslevel       = unknown
> /bin/universe          = unknown
> [...]
> configure:4946: clang --version >&5
> Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
> Target: x86_64-apple-darwin10.8.0
> Thread model: posix
> configure:4957: $? = 0
> configure:4946: clang -v >&5
> Apple clang version 4.1 (tags/Apple/clang-421.11.66) (based on LLVM 3.1svn)
> Target: x86_64-apple-darwin10.8.0
> Thread model: posix
> ===
>
> -gordon
>
> P.S.
> To compile it on Mac, Paul Eggert's fix is required ( http://debbugs.gnu.org/cgi/bugreport.cgi?bug=13495 ).


Interesting. That's coming from openat_save_fail() in gnulib.
There was a similar issue reported on AIX 5.1 recently:
http://lists.gnu.org/archive/html/coreutils/2012-01/msg00059.html
Do the gnulib tests pass?
Perhaps you could add some instrumentation to the
gnulib code in that's being called in lib/
to see why that's happening?

thanks,
Pádraig.




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 22 Jan 2013 07:03:02 GMT) Full text and rfc822 format available.

Message #11 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Mon, 21 Jan 2013 23:01:03 -0800
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.




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 22 Jan 2013 19:25:02 GMT) Full text and rfc822 format available.

Message #14 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>, Pádraig Brady
	<P <at> draigBrady.com>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 22 Jan 2013 14:22:48 -0500
[Message part 1 (text/plain, inline)]
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



[rm_trace.txt (text/plain, attachment)]
[gnulib-test-suite.log (text/x-log, attachment)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 22 Jan 2013 20:23:01 GMT) Full text and rfc822 format available.

Message #17 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 22 Jan 2013 12:21:27 -0800
On 01/22/13 11:22, Assaf Gordon wrote:
> 3. Running with 'sudo', 'rm' doesn't fail:
>     $ sudo dtruss $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt

You need a sudo inside dtruss, to, right?
Something like this

   sudo dtruss sudo -u $USER $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt





Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 22 Jan 2013 21:28:01 GMT) Full text and rfc822 format available.

Message #20 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 22 Jan 2013 16:26:30 -0500
Paul Eggert wrote, On 01/22/2013 03:21 PM:
> On 01/22/13 11:22, Assaf Gordon wrote:
>> 3. Running with 'sudo', 'rm' doesn't fail:
>>     $ sudo dtruss $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt
> 
> You need a sudo inside dtruss, to, right?
> Something like this
> 
>    sudo dtruss sudo -u $USER $D/rm -r $D/a $D/b 2>/tmp/rm_trace.txt
> 

Sorry, but I can't get sudo+dtruss+sudo to work as expected.
It has some side effects that I do not understand, most likely because dtruss isn't following forks.

Simple example of the problem:

1. no sudo/dtruss - works:
    $ $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': No such file or directory

2. sudo+dtruss - work (but not good enough to reproduce this bug):
    $ sudo dtruss $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': No such file or directory
    lstat64("foo\0", 0x100100280, 0x100100280)		 = -1 Err#2
    unlink("foo\0", 0x100800000, 0x100800000)		 = -1 Err#2
    write_nocancel(0x2, "cannot remove 'foo'\0", 0x13)		 = 19 0

3. sudo+dtruss+sudo - doesn't trace "rm", sometimes shows the error message, sometimes doesn't. Using "-f" has no effect:

    $ sudo dtruss sudo -u $USER $D/rm foo 2>&1 | grep foo
    /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove 'foo': No such file or directory
    $ sudo dtruss sudo -u $USER $D/rm foo 2>&1 | grep foo
    $ sudo dtruss -f sudo -u $USER $D/rm foo 2>&1 | grep foo
    $ sudo dtruss -f sudo -u $USER $D/rm foo 2>&1 | grep foo


Any help is appreciated.

 -gordon





Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Wed, 23 Jan 2013 07:21:02 GMT) Full text and rfc822 format available.

Message #23 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 22 Jan 2013 23:19:29 -0800
It looks like there's no way to get the equivalent of strace, then.
That's too bad.  I guess you'll have to use GDB, then.




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Wed, 23 Jan 2013 19:16:01 GMT) Full text and rfc822 format available.

Message #26 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>, 13516 <at> debbugs.gnu.org, 
	Pádraig Brady <P <at> draigBrady.com>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Wed, 23 Jan 2013 14:13:43 -0500
Paul Eggert wrote, On 01/23/2013 02:19 AM:
> It looks like there's no way to get the equivalent of strace, then.
> That's too bad.  I guess you'll have to use GDB, then.

Here's what I get with GDB.

Seems like some weird case of endless recursion, that leads to file-descriptor exhaustion (if I understand the situation correctly).
(note: "cwd" is unreadable to the current user).

The beginning is normal:
#1  main() src/rm.c:349
#2  rm(file=0x7fff5fbffa00, x=0x7fff5fbff998) at src/remove.c:568
#3  rm_fts (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff998) at src/remove.c:462
#4  prompt (fts=0x100100080, ent=0x100100210, [...]) at src/remove.c:196
#5  is_empty_dir (fd_cwd=-3041965, dir=0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a") at system.h:301
#6  fdopendir (fd=5) at fdopendir.c:76

Then it loops in:
#7  fdopendir (fd=6) at fdopendir.c:76
#8  save_cwd (cwd=0x7fff5fbff6a8) at save-cwd.c:72
#9  rpl_getcwd (buf=0x0, size=0) at getcwd.c:251

(rpl_getcwd() calls fdopendir() if HAVE_OPENAT_SUPPORT in getcwd.c:80)


Until too many file descriptors are open, then:
#10  fdopendir (fd=254) at fdopendir.c:77
#11  openat_save_fail (errnum=24) at openat-die.c:37
#12  error (status=1, errnum=24, message=0x10001d4b1 "unable to record current working directory") at error.c:318
#13  error_tail (status=1, errnum=24, message=0x10001d4b1 "unable to record current working directory", args=0x7fff5fbdf4b0) at error.c:281
#14  exit ()


This is the complete stack-trace:

$ pwd
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/c
$ ls -lh
ls: .: Permission denied
$ gdb ../rm
GNU gdb 6.3.50-20050815 (Apple version gdb-1822) (Sun Aug  5 03:00:42 UTC 2012)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries .. done

(gdb) b exit
Breakpoint 1 at 0x20c49ba5c85283
(gdb) r -r /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/b
Starting program: /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm -r /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/b
Reading symbols for shared libraries +. done
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: unable to record current working directory: Too many open files

Breakpoint 1, 0x00007fff805c2283 in exit ()
(gdb) bt
#0  0x00007fff805c2283 in exit ()
#1  0x0000000100009b5f in error_tail (status=1, errnum=24, message=0x10001d4b1 "unable to record current working directory", args=0x7fff5fbdf2a0) at error.c:281
#2  0x0000000100009a41 in error (status=1, errnum=24, message=0x10001d4b1 "unable to record current working directory") at error.c:318
#3  0x0000000100005ea5 in openat_save_fail (errnum=24) at openat-die.c:37
#4  0x000000010000a5cc in fdopendir (fd=254) at fdopendir.c:77
#5  0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#6  0x0000000100008419 in save_cwd (cwd=0x7fff5fbdf518) at save-cwd.c:72
#7  0x000000010000a5b5 in fdopendir (fd=253) at fdopendir.c:76
#8  0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#9  0x0000000100008419 in save_cwd (cwd=0x7fff5fbdf728) at save-cwd.c:72
#10 0x000000010000a5b5 in fdopendir (fd=252) at fdopendir.c:76
#11 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#12 0x0000000100008419 in save_cwd (cwd=0x7fff5fbdf938) at save-cwd.c:72
#13 0x000000010000a5b5 in fdopendir (fd=251) at fdopendir.c:76
#14 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#15 0x0000000100008419 in save_cwd (cwd=0x7fff5fbdfb48) at save-cwd.c:72
#16 0x000000010000a5b5 in fdopendir (fd=250) at fdopendir.c:76
#17 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#18 0x0000000100008419 in save_cwd (cwd=0x7fff5fbdfd58) at save-cwd.c:72
#19 0x000000010000a5b5 in fdopendir (fd=249) at fdopendir.c:76
#20 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#21 0x0000000100008419 in save_cwd (cwd=0x7fff5fbdff68) at save-cwd.c:72
#22 0x000000010000a5b5 in fdopendir (fd=248) at fdopendir.c:76
#23 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#24 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0178) at save-cwd.c:72
#25 0x000000010000a5b5 in fdopendir (fd=247) at fdopendir.c:76
#26 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#27 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0388) at save-cwd.c:72
#28 0x000000010000a5b5 in fdopendir (fd=246) at fdopendir.c:76
#29 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#30 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0598) at save-cwd.c:72
#31 0x000000010000a5b5 in fdopendir (fd=245) at fdopendir.c:76
#32 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#33 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe07a8) at save-cwd.c:72
#34 0x000000010000a5b5 in fdopendir (fd=244) at fdopendir.c:76
#35 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#36 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe09b8) at save-cwd.c:72
#37 0x000000010000a5b5 in fdopendir (fd=243) at fdopendir.c:76
#38 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#39 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0bc8) at save-cwd.c:72
#40 0x000000010000a5b5 in fdopendir (fd=242) at fdopendir.c:76
#41 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#42 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0dd8) at save-cwd.c:72
#43 0x000000010000a5b5 in fdopendir (fd=241) at fdopendir.c:76
#44 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#45 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe0fe8) at save-cwd.c:72
#46 0x000000010000a5b5 in fdopendir (fd=240) at fdopendir.c:76
#47 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#48 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe11f8) at save-cwd.c:72
#49 0x000000010000a5b5 in fdopendir (fd=239) at fdopendir.c:76
#50 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#51 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1408) at save-cwd.c:72
#52 0x000000010000a5b5 in fdopendir (fd=238) at fdopendir.c:76
#53 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#54 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1618) at save-cwd.c:72
#55 0x000000010000a5b5 in fdopendir (fd=237) at fdopendir.c:76
#56 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#57 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1828) at save-cwd.c:72
#58 0x000000010000a5b5 in fdopendir (fd=236) at fdopendir.c:76
#59 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#60 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1a38) at save-cwd.c:72
#61 0x000000010000a5b5 in fdopendir (fd=235) at fdopendir.c:76
#62 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#63 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1c48) at save-cwd.c:72
#64 0x000000010000a5b5 in fdopendir (fd=234) at fdopendir.c:76
#65 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#66 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe1e58) at save-cwd.c:72
#67 0x000000010000a5b5 in fdopendir (fd=233) at fdopendir.c:76
#68 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#69 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2068) at save-cwd.c:72
#70 0x000000010000a5b5 in fdopendir (fd=232) at fdopendir.c:76
#71 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#72 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2278) at save-cwd.c:72
#73 0x000000010000a5b5 in fdopendir (fd=231) at fdopendir.c:76
#74 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#75 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2488) at save-cwd.c:72
#76 0x000000010000a5b5 in fdopendir (fd=230) at fdopendir.c:76
#77 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#78 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2698) at save-cwd.c:72
#79 0x000000010000a5b5 in fdopendir (fd=229) at fdopendir.c:76
#80 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#81 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe28a8) at save-cwd.c:72
#82 0x000000010000a5b5 in fdopendir (fd=228) at fdopendir.c:76
#83 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#84 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2ab8) at save-cwd.c:72
#85 0x000000010000a5b5 in fdopendir (fd=227) at fdopendir.c:76
#86 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#87 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2cc8) at save-cwd.c:72
#88 0x000000010000a5b5 in fdopendir (fd=226) at fdopendir.c:76
#89 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#90 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe2ed8) at save-cwd.c:72
#91 0x000000010000a5b5 in fdopendir (fd=225) at fdopendir.c:76
#92 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#93 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe30e8) at save-cwd.c:72
#94 0x000000010000a5b5 in fdopendir (fd=224) at fdopendir.c:76
#95 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#96 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe32f8) at save-cwd.c:72
#97 0x000000010000a5b5 in fdopendir (fd=223) at fdopendir.c:76
#98 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#99 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3508) at save-cwd.c:72
#100 0x000000010000a5b5 in fdopendir (fd=222) at fdopendir.c:76
#101 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#102 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3718) at save-cwd.c:72
#103 0x000000010000a5b5 in fdopendir (fd=221) at fdopendir.c:76
#104 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#105 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3928) at save-cwd.c:72
#106 0x000000010000a5b5 in fdopendir (fd=220) at fdopendir.c:76
#107 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#108 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3b38) at save-cwd.c:72
#109 0x000000010000a5b5 in fdopendir (fd=219) at fdopendir.c:76
#110 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#111 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3d48) at save-cwd.c:72
#112 0x000000010000a5b5 in fdopendir (fd=218) at fdopendir.c:76
#113 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#114 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe3f58) at save-cwd.c:72
#115 0x000000010000a5b5 in fdopendir (fd=217) at fdopendir.c:76
#116 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#117 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4168) at save-cwd.c:72
#118 0x000000010000a5b5 in fdopendir (fd=216) at fdopendir.c:76
#119 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#120 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4378) at save-cwd.c:72
#121 0x000000010000a5b5 in fdopendir (fd=215) at fdopendir.c:76
#122 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#123 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4588) at save-cwd.c:72
#124 0x000000010000a5b5 in fdopendir (fd=214) at fdopendir.c:76
#125 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#126 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4798) at save-cwd.c:72
#127 0x000000010000a5b5 in fdopendir (fd=213) at fdopendir.c:76
#128 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#129 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe49a8) at save-cwd.c:72
#130 0x000000010000a5b5 in fdopendir (fd=212) at fdopendir.c:76
#131 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#132 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4bb8) at save-cwd.c:72
#133 0x000000010000a5b5 in fdopendir (fd=211) at fdopendir.c:76
#134 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#135 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4dc8) at save-cwd.c:72
#136 0x000000010000a5b5 in fdopendir (fd=210) at fdopendir.c:76
#137 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#138 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe4fd8) at save-cwd.c:72
#139 0x000000010000a5b5 in fdopendir (fd=209) at fdopendir.c:76
#140 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#141 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe51e8) at save-cwd.c:72
#142 0x000000010000a5b5 in fdopendir (fd=208) at fdopendir.c:76
#143 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#144 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe53f8) at save-cwd.c:72
#145 0x000000010000a5b5 in fdopendir (fd=207) at fdopendir.c:76
#146 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#147 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe5608) at save-cwd.c:72
#148 0x000000010000a5b5 in fdopendir (fd=206) at fdopendir.c:76
#149 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#150 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe5818) at save-cwd.c:72
#151 0x000000010000a5b5 in fdopendir (fd=205) at fdopendir.c:76
#152 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#153 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe5a28) at save-cwd.c:72
#154 0x000000010000a5b5 in fdopendir (fd=204) at fdopendir.c:76
#155 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#156 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe5c38) at save-cwd.c:72
#157 0x000000010000a5b5 in fdopendir (fd=203) at fdopendir.c:76
#158 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#159 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe5e48) at save-cwd.c:72
#160 0x000000010000a5b5 in fdopendir (fd=202) at fdopendir.c:76
#161 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#162 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6058) at save-cwd.c:72
#163 0x000000010000a5b5 in fdopendir (fd=201) at fdopendir.c:76
#164 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#165 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6268) at save-cwd.c:72
#166 0x000000010000a5b5 in fdopendir (fd=200) at fdopendir.c:76
#167 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#168 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6478) at save-cwd.c:72
#169 0x000000010000a5b5 in fdopendir (fd=199) at fdopendir.c:76
#170 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#171 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6688) at save-cwd.c:72
#172 0x000000010000a5b5 in fdopendir (fd=198) at fdopendir.c:76
#173 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#174 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6898) at save-cwd.c:72
#175 0x000000010000a5b5 in fdopendir (fd=197) at fdopendir.c:76
#176 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#177 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6aa8) at save-cwd.c:72
#178 0x000000010000a5b5 in fdopendir (fd=196) at fdopendir.c:76
#179 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#180 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6cb8) at save-cwd.c:72
#181 0x000000010000a5b5 in fdopendir (fd=195) at fdopendir.c:76
#182 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#183 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe6ec8) at save-cwd.c:72
#184 0x000000010000a5b5 in fdopendir (fd=194) at fdopendir.c:76
#185 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#186 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe70d8) at save-cwd.c:72
#187 0x000000010000a5b5 in fdopendir (fd=193) at fdopendir.c:76
#188 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#189 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe72e8) at save-cwd.c:72
#190 0x000000010000a5b5 in fdopendir (fd=192) at fdopendir.c:76
#191 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#192 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe74f8) at save-cwd.c:72
#193 0x000000010000a5b5 in fdopendir (fd=191) at fdopendir.c:76
#194 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#195 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe7708) at save-cwd.c:72
#196 0x000000010000a5b5 in fdopendir (fd=190) at fdopendir.c:76
#197 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#198 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe7918) at save-cwd.c:72
#199 0x000000010000a5b5 in fdopendir (fd=189) at fdopendir.c:76
#200 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#201 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe7b28) at save-cwd.c:72
#202 0x000000010000a5b5 in fdopendir (fd=188) at fdopendir.c:76
#203 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#204 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe7d38) at save-cwd.c:72
#205 0x000000010000a5b5 in fdopendir (fd=187) at fdopendir.c:76
#206 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#207 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe7f48) at save-cwd.c:72
#208 0x000000010000a5b5 in fdopendir (fd=186) at fdopendir.c:76
#209 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#210 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8158) at save-cwd.c:72
#211 0x000000010000a5b5 in fdopendir (fd=185) at fdopendir.c:76
#212 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#213 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8368) at save-cwd.c:72
#214 0x000000010000a5b5 in fdopendir (fd=184) at fdopendir.c:76
#215 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#216 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8578) at save-cwd.c:72
#217 0x000000010000a5b5 in fdopendir (fd=183) at fdopendir.c:76
#218 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#219 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8788) at save-cwd.c:72
#220 0x000000010000a5b5 in fdopendir (fd=182) at fdopendir.c:76
#221 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#222 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8998) at save-cwd.c:72
#223 0x000000010000a5b5 in fdopendir (fd=181) at fdopendir.c:76
#224 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#225 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8ba8) at save-cwd.c:72
#226 0x000000010000a5b5 in fdopendir (fd=180) at fdopendir.c:76
#227 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#228 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8db8) at save-cwd.c:72
#229 0x000000010000a5b5 in fdopendir (fd=179) at fdopendir.c:76
#230 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#231 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe8fc8) at save-cwd.c:72
#232 0x000000010000a5b5 in fdopendir (fd=178) at fdopendir.c:76
#233 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#234 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe91d8) at save-cwd.c:72
#235 0x000000010000a5b5 in fdopendir (fd=177) at fdopendir.c:76
#236 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#237 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe93e8) at save-cwd.c:72
#238 0x000000010000a5b5 in fdopendir (fd=176) at fdopendir.c:76
#239 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#240 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe95f8) at save-cwd.c:72
#241 0x000000010000a5b5 in fdopendir (fd=175) at fdopendir.c:76
#242 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#243 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe9808) at save-cwd.c:72
#244 0x000000010000a5b5 in fdopendir (fd=174) at fdopendir.c:76
#245 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#246 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe9a18) at save-cwd.c:72
#247 0x000000010000a5b5 in fdopendir (fd=173) at fdopendir.c:76
#248 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#249 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe9c28) at save-cwd.c:72
#250 0x000000010000a5b5 in fdopendir (fd=172) at fdopendir.c:76
#251 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#252 0x0000000100008419 in save_cwd (cwd=0x7fff5fbe9e38) at save-cwd.c:72
#253 0x000000010000a5b5 in fdopendir (fd=171) at fdopendir.c:76
#254 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#255 0x0000000100008419 in save_cwd (cwd=0x7fff5fbea048) at save-cwd.c:72
#256 0x000000010000a5b5 in fdopendir (fd=170) at fdopendir.c:76
#257 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#258 0x0000000100008419 in save_cwd (cwd=0x7fff5fbea258) at save-cwd.c:72
#259 0x000000010000a5b5 in fdopendir (fd=169) at fdopendir.c:76
#260 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#261 0x0000000100008419 in save_cwd (cwd=0x7fff5fbea468) at save-cwd.c:72
#262 0x000000010000a5b5 in fdopendir (fd=168) at fdopendir.c:76
#263 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#264 0x0000000100008419 in save_cwd (cwd=0x7fff5fbea678) at save-cwd.c:72
#265 0x000000010000a5b5 in fdopendir (fd=167) at fdopendir.c:76
#266 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#267 0x0000000100008419 in save_cwd (cwd=0x7fff5fbea888) at save-cwd.c:72
#268 0x000000010000a5b5 in fdopendir (fd=166) at fdopendir.c:76
#269 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#270 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeaa98) at save-cwd.c:72
#271 0x000000010000a5b5 in fdopendir (fd=165) at fdopendir.c:76
#272 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#273 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeaca8) at save-cwd.c:72
#274 0x000000010000a5b5 in fdopendir (fd=164) at fdopendir.c:76
#275 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#276 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeaeb8) at save-cwd.c:72
#277 0x000000010000a5b5 in fdopendir (fd=163) at fdopendir.c:76
#278 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#279 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeb0c8) at save-cwd.c:72
#280 0x000000010000a5b5 in fdopendir (fd=162) at fdopendir.c:76
#281 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#282 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeb2d8) at save-cwd.c:72
#283 0x000000010000a5b5 in fdopendir (fd=161) at fdopendir.c:76
#284 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#285 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeb4e8) at save-cwd.c:72
#286 0x000000010000a5b5 in fdopendir (fd=160) at fdopendir.c:76
#287 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#288 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeb6f8) at save-cwd.c:72
#289 0x000000010000a5b5 in fdopendir (fd=159) at fdopendir.c:76
#290 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#291 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeb908) at save-cwd.c:72
#292 0x000000010000a5b5 in fdopendir (fd=158) at fdopendir.c:76
#293 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#294 0x0000000100008419 in save_cwd (cwd=0x7fff5fbebb18) at save-cwd.c:72
#295 0x000000010000a5b5 in fdopendir (fd=157) at fdopendir.c:76
#296 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#297 0x0000000100008419 in save_cwd (cwd=0x7fff5fbebd28) at save-cwd.c:72
#298 0x000000010000a5b5 in fdopendir (fd=156) at fdopendir.c:76
#299 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#300 0x0000000100008419 in save_cwd (cwd=0x7fff5fbebf38) at save-cwd.c:72
#301 0x000000010000a5b5 in fdopendir (fd=155) at fdopendir.c:76
#302 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#303 0x0000000100008419 in save_cwd (cwd=0x7fff5fbec148) at save-cwd.c:72
#304 0x000000010000a5b5 in fdopendir (fd=154) at fdopendir.c:76
#305 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#306 0x0000000100008419 in save_cwd (cwd=0x7fff5fbec358) at save-cwd.c:72
#307 0x000000010000a5b5 in fdopendir (fd=153) at fdopendir.c:76
#308 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#309 0x0000000100008419 in save_cwd (cwd=0x7fff5fbec568) at save-cwd.c:72
#310 0x000000010000a5b5 in fdopendir (fd=152) at fdopendir.c:76
#311 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#312 0x0000000100008419 in save_cwd (cwd=0x7fff5fbec778) at save-cwd.c:72
#313 0x000000010000a5b5 in fdopendir (fd=151) at fdopendir.c:76
#314 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#315 0x0000000100008419 in save_cwd (cwd=0x7fff5fbec988) at save-cwd.c:72
#316 0x000000010000a5b5 in fdopendir (fd=150) at fdopendir.c:76
#317 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#318 0x0000000100008419 in save_cwd (cwd=0x7fff5fbecb98) at save-cwd.c:72
#319 0x000000010000a5b5 in fdopendir (fd=149) at fdopendir.c:76
#320 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#321 0x0000000100008419 in save_cwd (cwd=0x7fff5fbecda8) at save-cwd.c:72
#322 0x000000010000a5b5 in fdopendir (fd=148) at fdopendir.c:76
#323 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#324 0x0000000100008419 in save_cwd (cwd=0x7fff5fbecfb8) at save-cwd.c:72
#325 0x000000010000a5b5 in fdopendir (fd=147) at fdopendir.c:76
#326 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#327 0x0000000100008419 in save_cwd (cwd=0x7fff5fbed1c8) at save-cwd.c:72
#328 0x000000010000a5b5 in fdopendir (fd=146) at fdopendir.c:76
#329 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#330 0x0000000100008419 in save_cwd (cwd=0x7fff5fbed3d8) at save-cwd.c:72
#331 0x000000010000a5b5 in fdopendir (fd=145) at fdopendir.c:76
#332 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#333 0x0000000100008419 in save_cwd (cwd=0x7fff5fbed5e8) at save-cwd.c:72
#334 0x000000010000a5b5 in fdopendir (fd=144) at fdopendir.c:76
#335 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#336 0x0000000100008419 in save_cwd (cwd=0x7fff5fbed7f8) at save-cwd.c:72
#337 0x000000010000a5b5 in fdopendir (fd=143) at fdopendir.c:76
#338 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#339 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeda08) at save-cwd.c:72
#340 0x000000010000a5b5 in fdopendir (fd=142) at fdopendir.c:76
#341 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#342 0x0000000100008419 in save_cwd (cwd=0x7fff5fbedc18) at save-cwd.c:72
#343 0x000000010000a5b5 in fdopendir (fd=141) at fdopendir.c:76
#344 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#345 0x0000000100008419 in save_cwd (cwd=0x7fff5fbede28) at save-cwd.c:72
#346 0x000000010000a5b5 in fdopendir (fd=140) at fdopendir.c:76
#347 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#348 0x0000000100008419 in save_cwd (cwd=0x7fff5fbee038) at save-cwd.c:72
#349 0x000000010000a5b5 in fdopendir (fd=139) at fdopendir.c:76
#350 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#351 0x0000000100008419 in save_cwd (cwd=0x7fff5fbee248) at save-cwd.c:72
#352 0x000000010000a5b5 in fdopendir (fd=138) at fdopendir.c:76
#353 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#354 0x0000000100008419 in save_cwd (cwd=0x7fff5fbee458) at save-cwd.c:72
#355 0x000000010000a5b5 in fdopendir (fd=137) at fdopendir.c:76
#356 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#357 0x0000000100008419 in save_cwd (cwd=0x7fff5fbee668) at save-cwd.c:72
#358 0x000000010000a5b5 in fdopendir (fd=136) at fdopendir.c:76
#359 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#360 0x0000000100008419 in save_cwd (cwd=0x7fff5fbee878) at save-cwd.c:72
#361 0x000000010000a5b5 in fdopendir (fd=135) at fdopendir.c:76
#362 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#363 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeea88) at save-cwd.c:72
#364 0x000000010000a5b5 in fdopendir (fd=134) at fdopendir.c:76
#365 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#366 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeec98) at save-cwd.c:72
#367 0x000000010000a5b5 in fdopendir (fd=133) at fdopendir.c:76
#368 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#369 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeeea8) at save-cwd.c:72
#370 0x000000010000a5b5 in fdopendir (fd=132) at fdopendir.c:76
#371 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#372 0x0000000100008419 in save_cwd (cwd=0x7fff5fbef0b8) at save-cwd.c:72
#373 0x000000010000a5b5 in fdopendir (fd=131) at fdopendir.c:76
#374 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#375 0x0000000100008419 in save_cwd (cwd=0x7fff5fbef2c8) at save-cwd.c:72
#376 0x000000010000a5b5 in fdopendir (fd=130) at fdopendir.c:76
#377 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#378 0x0000000100008419 in save_cwd (cwd=0x7fff5fbef4d8) at save-cwd.c:72
#379 0x000000010000a5b5 in fdopendir (fd=129) at fdopendir.c:76
#380 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#381 0x0000000100008419 in save_cwd (cwd=0x7fff5fbef6e8) at save-cwd.c:72
#382 0x000000010000a5b5 in fdopendir (fd=128) at fdopendir.c:76
#383 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#384 0x0000000100008419 in save_cwd (cwd=0x7fff5fbef8f8) at save-cwd.c:72
#385 0x000000010000a5b5 in fdopendir (fd=127) at fdopendir.c:76
#386 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#387 0x0000000100008419 in save_cwd (cwd=0x7fff5fbefb08) at save-cwd.c:72
#388 0x000000010000a5b5 in fdopendir (fd=126) at fdopendir.c:76
#389 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#390 0x0000000100008419 in save_cwd (cwd=0x7fff5fbefd18) at save-cwd.c:72
#391 0x000000010000a5b5 in fdopendir (fd=125) at fdopendir.c:76
#392 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#393 0x0000000100008419 in save_cwd (cwd=0x7fff5fbeff28) at save-cwd.c:72
#394 0x000000010000a5b5 in fdopendir (fd=124) at fdopendir.c:76
#395 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#396 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0138) at save-cwd.c:72
#397 0x000000010000a5b5 in fdopendir (fd=123) at fdopendir.c:76
#398 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#399 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0348) at save-cwd.c:72
#400 0x000000010000a5b5 in fdopendir (fd=122) at fdopendir.c:76
#401 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#402 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0558) at save-cwd.c:72
#403 0x000000010000a5b5 in fdopendir (fd=121) at fdopendir.c:76
#404 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#405 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0768) at save-cwd.c:72
#406 0x000000010000a5b5 in fdopendir (fd=120) at fdopendir.c:76
#407 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#408 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0978) at save-cwd.c:72
#409 0x000000010000a5b5 in fdopendir (fd=119) at fdopendir.c:76
#410 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#411 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0b88) at save-cwd.c:72
#412 0x000000010000a5b5 in fdopendir (fd=118) at fdopendir.c:76
#413 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#414 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0d98) at save-cwd.c:72
#415 0x000000010000a5b5 in fdopendir (fd=117) at fdopendir.c:76
#416 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#417 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf0fa8) at save-cwd.c:72
#418 0x000000010000a5b5 in fdopendir (fd=116) at fdopendir.c:76
#419 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#420 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf11b8) at save-cwd.c:72
#421 0x000000010000a5b5 in fdopendir (fd=115) at fdopendir.c:76
#422 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#423 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf13c8) at save-cwd.c:72
#424 0x000000010000a5b5 in fdopendir (fd=114) at fdopendir.c:76
#425 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#426 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf15d8) at save-cwd.c:72
#427 0x000000010000a5b5 in fdopendir (fd=113) at fdopendir.c:76
#428 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#429 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf17e8) at save-cwd.c:72
#430 0x000000010000a5b5 in fdopendir (fd=112) at fdopendir.c:76
#431 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#432 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf19f8) at save-cwd.c:72
#433 0x000000010000a5b5 in fdopendir (fd=111) at fdopendir.c:76
#434 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#435 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf1c08) at save-cwd.c:72
#436 0x000000010000a5b5 in fdopendir (fd=110) at fdopendir.c:76
#437 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#438 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf1e18) at save-cwd.c:72
#439 0x000000010000a5b5 in fdopendir (fd=109) at fdopendir.c:76
#440 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#441 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2028) at save-cwd.c:72
#442 0x000000010000a5b5 in fdopendir (fd=108) at fdopendir.c:76
#443 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#444 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2238) at save-cwd.c:72
#445 0x000000010000a5b5 in fdopendir (fd=107) at fdopendir.c:76
#446 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#447 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2448) at save-cwd.c:72
#448 0x000000010000a5b5 in fdopendir (fd=106) at fdopendir.c:76
#449 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#450 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2658) at save-cwd.c:72
#451 0x000000010000a5b5 in fdopendir (fd=105) at fdopendir.c:76
#452 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#453 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2868) at save-cwd.c:72
#454 0x000000010000a5b5 in fdopendir (fd=104) at fdopendir.c:76
#455 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#456 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2a78) at save-cwd.c:72
#457 0x000000010000a5b5 in fdopendir (fd=103) at fdopendir.c:76
#458 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#459 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2c88) at save-cwd.c:72
#460 0x000000010000a5b5 in fdopendir (fd=102) at fdopendir.c:76
#461 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#462 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf2e98) at save-cwd.c:72
#463 0x000000010000a5b5 in fdopendir (fd=101) at fdopendir.c:76
#464 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#465 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf30a8) at save-cwd.c:72
#466 0x000000010000a5b5 in fdopendir (fd=100) at fdopendir.c:76
#467 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#468 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf32b8) at save-cwd.c:72
#469 0x000000010000a5b5 in fdopendir (fd=99) at fdopendir.c:76
#470 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#471 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf34c8) at save-cwd.c:72
#472 0x000000010000a5b5 in fdopendir (fd=98) at fdopendir.c:76
#473 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#474 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf36d8) at save-cwd.c:72
#475 0x000000010000a5b5 in fdopendir (fd=97) at fdopendir.c:76
#476 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#477 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf38e8) at save-cwd.c:72
#478 0x000000010000a5b5 in fdopendir (fd=96) at fdopendir.c:76
#479 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#480 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf3af8) at save-cwd.c:72
#481 0x000000010000a5b5 in fdopendir (fd=95) at fdopendir.c:76
#482 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#483 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf3d08) at save-cwd.c:72
#484 0x000000010000a5b5 in fdopendir (fd=94) at fdopendir.c:76
#485 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#486 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf3f18) at save-cwd.c:72
#487 0x000000010000a5b5 in fdopendir (fd=93) at fdopendir.c:76
#488 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#489 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4128) at save-cwd.c:72
#490 0x000000010000a5b5 in fdopendir (fd=92) at fdopendir.c:76
#491 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#492 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4338) at save-cwd.c:72
#493 0x000000010000a5b5 in fdopendir (fd=91) at fdopendir.c:76
#494 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#495 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4548) at save-cwd.c:72
#496 0x000000010000a5b5 in fdopendir (fd=90) at fdopendir.c:76
#497 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#498 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4758) at save-cwd.c:72
#499 0x000000010000a5b5 in fdopendir (fd=89) at fdopendir.c:76
#500 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#501 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4968) at save-cwd.c:72
#502 0x000000010000a5b5 in fdopendir (fd=88) at fdopendir.c:76
#503 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#504 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4b78) at save-cwd.c:72
#505 0x000000010000a5b5 in fdopendir (fd=87) at fdopendir.c:76
#506 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#507 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4d88) at save-cwd.c:72
#508 0x000000010000a5b5 in fdopendir (fd=86) at fdopendir.c:76
#509 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#510 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf4f98) at save-cwd.c:72
#511 0x000000010000a5b5 in fdopendir (fd=85) at fdopendir.c:76
#512 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#513 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf51a8) at save-cwd.c:72
#514 0x000000010000a5b5 in fdopendir (fd=84) at fdopendir.c:76
#515 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#516 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf53b8) at save-cwd.c:72
#517 0x000000010000a5b5 in fdopendir (fd=83) at fdopendir.c:76
#518 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#519 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf55c8) at save-cwd.c:72
#520 0x000000010000a5b5 in fdopendir (fd=82) at fdopendir.c:76
#521 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#522 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf57d8) at save-cwd.c:72
#523 0x000000010000a5b5 in fdopendir (fd=81) at fdopendir.c:76
#524 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#525 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf59e8) at save-cwd.c:72
#526 0x000000010000a5b5 in fdopendir (fd=80) at fdopendir.c:76
#527 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#528 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf5bf8) at save-cwd.c:72
#529 0x000000010000a5b5 in fdopendir (fd=79) at fdopendir.c:76
#530 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#531 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf5e08) at save-cwd.c:72
#532 0x000000010000a5b5 in fdopendir (fd=78) at fdopendir.c:76
#533 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#534 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6018) at save-cwd.c:72
#535 0x000000010000a5b5 in fdopendir (fd=77) at fdopendir.c:76
#536 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#537 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6228) at save-cwd.c:72
#538 0x000000010000a5b5 in fdopendir (fd=76) at fdopendir.c:76
#539 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#540 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6438) at save-cwd.c:72
#541 0x000000010000a5b5 in fdopendir (fd=75) at fdopendir.c:76
#542 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#543 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6648) at save-cwd.c:72
#544 0x000000010000a5b5 in fdopendir (fd=74) at fdopendir.c:76
#545 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#546 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6858) at save-cwd.c:72
#547 0x000000010000a5b5 in fdopendir (fd=73) at fdopendir.c:76
#548 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#549 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6a68) at save-cwd.c:72
#550 0x000000010000a5b5 in fdopendir (fd=72) at fdopendir.c:76
#551 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#552 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6c78) at save-cwd.c:72
#553 0x000000010000a5b5 in fdopendir (fd=71) at fdopendir.c:76
#554 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#555 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf6e88) at save-cwd.c:72
#556 0x000000010000a5b5 in fdopendir (fd=70) at fdopendir.c:76
#557 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#558 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf7098) at save-cwd.c:72
#559 0x000000010000a5b5 in fdopendir (fd=69) at fdopendir.c:76
#560 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#561 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf72a8) at save-cwd.c:72
#562 0x000000010000a5b5 in fdopendir (fd=68) at fdopendir.c:76
#563 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#564 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf74b8) at save-cwd.c:72
#565 0x000000010000a5b5 in fdopendir (fd=67) at fdopendir.c:76
#566 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#567 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf76c8) at save-cwd.c:72
#568 0x000000010000a5b5 in fdopendir (fd=66) at fdopendir.c:76
#569 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#570 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf78d8) at save-cwd.c:72
#571 0x000000010000a5b5 in fdopendir (fd=65) at fdopendir.c:76
#572 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#573 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf7ae8) at save-cwd.c:72
#574 0x000000010000a5b5 in fdopendir (fd=64) at fdopendir.c:76
#575 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#576 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf7cf8) at save-cwd.c:72
#577 0x000000010000a5b5 in fdopendir (fd=63) at fdopendir.c:76
#578 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#579 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf7f08) at save-cwd.c:72
#580 0x000000010000a5b5 in fdopendir (fd=62) at fdopendir.c:76
#581 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#582 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8118) at save-cwd.c:72
#583 0x000000010000a5b5 in fdopendir (fd=61) at fdopendir.c:76
#584 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#585 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8328) at save-cwd.c:72
#586 0x000000010000a5b5 in fdopendir (fd=60) at fdopendir.c:76
#587 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#588 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8538) at save-cwd.c:72
#589 0x000000010000a5b5 in fdopendir (fd=59) at fdopendir.c:76
#590 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#591 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8748) at save-cwd.c:72
#592 0x000000010000a5b5 in fdopendir (fd=58) at fdopendir.c:76
#593 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#594 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8958) at save-cwd.c:72
#595 0x000000010000a5b5 in fdopendir (fd=57) at fdopendir.c:76
#596 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#597 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8b68) at save-cwd.c:72
#598 0x000000010000a5b5 in fdopendir (fd=56) at fdopendir.c:76
#599 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#600 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8d78) at save-cwd.c:72
#601 0x000000010000a5b5 in fdopendir (fd=55) at fdopendir.c:76
#602 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#603 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf8f88) at save-cwd.c:72
#604 0x000000010000a5b5 in fdopendir (fd=54) at fdopendir.c:76
#605 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#606 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf9198) at save-cwd.c:72
#607 0x000000010000a5b5 in fdopendir (fd=53) at fdopendir.c:76
#608 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#609 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf93a8) at save-cwd.c:72
#610 0x000000010000a5b5 in fdopendir (fd=52) at fdopendir.c:76
#611 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#612 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf95b8) at save-cwd.c:72
#613 0x000000010000a5b5 in fdopendir (fd=51) at fdopendir.c:76
#614 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#615 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf97c8) at save-cwd.c:72
#616 0x000000010000a5b5 in fdopendir (fd=50) at fdopendir.c:76
#617 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#618 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf99d8) at save-cwd.c:72
#619 0x000000010000a5b5 in fdopendir (fd=49) at fdopendir.c:76
#620 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#621 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf9be8) at save-cwd.c:72
#622 0x000000010000a5b5 in fdopendir (fd=48) at fdopendir.c:76
#623 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#624 0x0000000100008419 in save_cwd (cwd=0x7fff5fbf9df8) at save-cwd.c:72
#625 0x000000010000a5b5 in fdopendir (fd=47) at fdopendir.c:76
#626 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#627 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfa008) at save-cwd.c:72
#628 0x000000010000a5b5 in fdopendir (fd=46) at fdopendir.c:76
#629 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#630 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfa218) at save-cwd.c:72
#631 0x000000010000a5b5 in fdopendir (fd=45) at fdopendir.c:76
#632 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#633 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfa428) at save-cwd.c:72
#634 0x000000010000a5b5 in fdopendir (fd=44) at fdopendir.c:76
#635 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#636 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfa638) at save-cwd.c:72
#637 0x000000010000a5b5 in fdopendir (fd=43) at fdopendir.c:76
#638 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#639 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfa848) at save-cwd.c:72
#640 0x000000010000a5b5 in fdopendir (fd=42) at fdopendir.c:76
#641 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#642 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfaa58) at save-cwd.c:72
#643 0x000000010000a5b5 in fdopendir (fd=41) at fdopendir.c:76
#644 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#645 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfac68) at save-cwd.c:72
#646 0x000000010000a5b5 in fdopendir (fd=40) at fdopendir.c:76
#647 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#648 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfae78) at save-cwd.c:72
#649 0x000000010000a5b5 in fdopendir (fd=39) at fdopendir.c:76
#650 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#651 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfb088) at save-cwd.c:72
#652 0x000000010000a5b5 in fdopendir (fd=38) at fdopendir.c:76
#653 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#654 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfb298) at save-cwd.c:72
#655 0x000000010000a5b5 in fdopendir (fd=37) at fdopendir.c:76
#656 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#657 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfb4a8) at save-cwd.c:72
#658 0x000000010000a5b5 in fdopendir (fd=36) at fdopendir.c:76
#659 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#660 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfb6b8) at save-cwd.c:72
#661 0x000000010000a5b5 in fdopendir (fd=35) at fdopendir.c:76
#662 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#663 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfb8c8) at save-cwd.c:72
#664 0x000000010000a5b5 in fdopendir (fd=34) at fdopendir.c:76
#665 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#666 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfbad8) at save-cwd.c:72
#667 0x000000010000a5b5 in fdopendir (fd=33) at fdopendir.c:76
#668 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#669 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfbce8) at save-cwd.c:72
#670 0x000000010000a5b5 in fdopendir (fd=32) at fdopendir.c:76
#671 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#672 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfbef8) at save-cwd.c:72
#673 0x000000010000a5b5 in fdopendir (fd=31) at fdopendir.c:76
#674 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#675 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfc108) at save-cwd.c:72
#676 0x000000010000a5b5 in fdopendir (fd=30) at fdopendir.c:76
#677 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#678 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfc318) at save-cwd.c:72
#679 0x000000010000a5b5 in fdopendir (fd=29) at fdopendir.c:76
#680 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#681 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfc528) at save-cwd.c:72
#682 0x000000010000a5b5 in fdopendir (fd=28) at fdopendir.c:76
#683 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#684 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfc738) at save-cwd.c:72
#685 0x000000010000a5b5 in fdopendir (fd=27) at fdopendir.c:76
#686 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#687 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfc948) at save-cwd.c:72
#688 0x000000010000a5b5 in fdopendir (fd=26) at fdopendir.c:76
#689 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#690 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfcb58) at save-cwd.c:72
#691 0x000000010000a5b5 in fdopendir (fd=25) at fdopendir.c:76
#692 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#693 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfcd68) at save-cwd.c:72
#694 0x000000010000a5b5 in fdopendir (fd=24) at fdopendir.c:76
#695 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#696 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfcf78) at save-cwd.c:72
#697 0x000000010000a5b5 in fdopendir (fd=23) at fdopendir.c:76
#698 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#699 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfd188) at save-cwd.c:72
#700 0x000000010000a5b5 in fdopendir (fd=22) at fdopendir.c:76
#701 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#702 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfd398) at save-cwd.c:72
#703 0x000000010000a5b5 in fdopendir (fd=21) at fdopendir.c:76
#704 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#705 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfd5a8) at save-cwd.c:72
#706 0x000000010000a5b5 in fdopendir (fd=20) at fdopendir.c:76
#707 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#708 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfd7b8) at save-cwd.c:72
#709 0x000000010000a5b5 in fdopendir (fd=19) at fdopendir.c:76
#710 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#711 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfd9c8) at save-cwd.c:72
#712 0x000000010000a5b5 in fdopendir (fd=18) at fdopendir.c:76
#713 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#714 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfdbd8) at save-cwd.c:72
#715 0x000000010000a5b5 in fdopendir (fd=17) at fdopendir.c:76
#716 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#717 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfdde8) at save-cwd.c:72
#718 0x000000010000a5b5 in fdopendir (fd=16) at fdopendir.c:76
#719 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#720 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfdff8) at save-cwd.c:72
#721 0x000000010000a5b5 in fdopendir (fd=15) at fdopendir.c:76
#722 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#723 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfe208) at save-cwd.c:72
#724 0x000000010000a5b5 in fdopendir (fd=14) at fdopendir.c:76
#725 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#726 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfe418) at save-cwd.c:72
#727 0x000000010000a5b5 in fdopendir (fd=13) at fdopendir.c:76
#728 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#729 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfe628) at save-cwd.c:72
#730 0x000000010000a5b5 in fdopendir (fd=12) at fdopendir.c:76
#731 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#732 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfe838) at save-cwd.c:72
#733 0x000000010000a5b5 in fdopendir (fd=11) at fdopendir.c:76
#734 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#735 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfea48) at save-cwd.c:72
#736 0x000000010000a5b5 in fdopendir (fd=10) at fdopendir.c:76
#737 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#738 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfec58) at save-cwd.c:72
#739 0x000000010000a5b5 in fdopendir (fd=9) at fdopendir.c:76
#740 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#741 0x0000000100008419 in save_cwd (cwd=0x7fff5fbfee68) at save-cwd.c:72
#742 0x000000010000a5b5 in fdopendir (fd=8) at fdopendir.c:76
#743 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#744 0x0000000100008419 in save_cwd (cwd=0x7fff5fbff078) at save-cwd.c:72
#745 0x000000010000a5b5 in fdopendir (fd=7) at fdopendir.c:76
#746 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#747 0x0000000100008419 in save_cwd (cwd=0x7fff5fbff288) at save-cwd.c:72
#748 0x000000010000a5b5 in fdopendir (fd=6) at fdopendir.c:76
#749 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#750 0x0000000100008419 in save_cwd (cwd=0x7fff5fbff498) at save-cwd.c:72
#751 0x000000010000a5b5 in fdopendir (fd=5) at fdopendir.c:76
#752 0x000000010000f3a9 in rpl_getcwd (buf=0x0, size=0) at getcwd.c:251
#753 0x0000000100008419 in save_cwd (cwd=0x7fff5fbff6a8) at save-cwd.c:72
#754 0x000000010000a5b5 in fdopendir (fd=4) at fdopendir.c:76
#755 0x0000000100001963 in is_empty_dir (fd_cwd=-3041965, dir=0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a") at system.h:301
#756 0x0000000100001c14 in prompt (fts=0x100100080, ent=0x100100210, is_dir=true, x=0x7fff5fbff998, mode=PA_DESCEND_INTO_DIR, is_empty_p=0x7fff5fbff898) at src/remove.c:196
#757 0x0000000100001679 in rm_fts (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff998) at src/remove.c:462
#758 0x0000000100001315 in rm (file=0x7fff5fbffa00, x=0x7fff5fbff998) at src/remove.c:568
#759 0x0000000100000ff7 in main (argc=4, argv=0x7fff5fbff9f0) at src/rm.c:349
(gdb) 




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Thu, 24 Jan 2013 17:04:01 GMT) Full text and rfc822 format available.

Message #29 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Thu, 24 Jan 2013 09:03:27 -0800
Thanks, could you please try the following patch?
This is a gnulib patch, so it also fixes modules/fdopendir --
you needn't worry about that part of the patch,
as it doesn't apply to coreutils.
I'm CC'ing this possible patch to bug-gnulib to give
the Gnulib people a heads-up.

By the way, do you happen to know why OS X doesn't
yet support fdopendir?  It's been in the standard for ages.
Do the OSX maintainers plan to implement it eventually?

----

Break a recursive loop between fdopendir and save_cwd.
Reported for OS X 10.8 by Assaf Gordon in <http://bugs.gnu.org/13516>.
* lib/fdopendir.c [!HAVE_FDOPENDIR]: Don't include save-cwd.h.
(fdopendir): Don't try to invoke getcwd via save_cwd,
since it invokes us.  Instead, merely open the working directory
and return a failure indication if that fails.
(fdopendir_with_dup): Second arg is now a fd (or -1), not a
struct saved_cwd * (or 0).  All uses changed.
* modules/fdopendir (Depends-on): Remove save-cwd.
diff --git a/lib/fdopendir.c b/lib/fdopendir.c
index 63e06b9..25e984b 100644
--- a/lib/fdopendir.c
+++ b/lib/fdopendir.c
@@ -27,7 +27,6 @@

 # include "openat.h"
 # include "openat-priv.h"
-# include "save-cwd.h"

 # if GNULIB_DIRENT_SAFER
 #  include "dirent--.h"
@@ -37,15 +36,15 @@
 #  define REPLACE_FCHDIR 0
 # endif

-static DIR *fdopendir_with_dup (int, int, struct saved_cwd const *);
-static DIR *fd_clone_opendir (int, struct saved_cwd const *);
+static DIR *fdopendir_with_dup (int, int, int);
+static DIR *fd_clone_opendir (int, int);

 /* Replacement for POSIX fdopendir.

    First, try to simulate it via opendir ("/proc/self/fd/...").  Failing
    that, simulate it by using fchdir metadata, or by doing
-   save_cwd/fchdir/opendir(".")/restore_cwd.
-   If either the save_cwd or the restore_cwd fails (relatively unlikely),
+   open(".")/fchdir/opendir(".")/fchdir.
+   If the final fchdir fails (relatively unlikely),
    then give a diagnostic and exit nonzero.

    If successful, the resulting stream is based on FD in
@@ -65,19 +64,19 @@ static DIR *fd_clone_opendir (int, struct saved_cwd const *);
 DIR *
 fdopendir (int fd)
 {
-  DIR *dir = fdopendir_with_dup (fd, -1, NULL);
+  DIR *dir = fdopendir_with_dup (fd, -1, -1);

   if (! REPLACE_FCHDIR && ! dir)
     {
       int saved_errno = errno;
       if (EXPECTED_ERRNO (saved_errno))
         {
-          struct saved_cwd cwd;
-          if (save_cwd (&cwd) != 0)
-            openat_save_fail (errno);
-          dir = fdopendir_with_dup (fd, -1, &cwd);
+          int cwd = open (".", O_SEARCH);
+          if (cwd < 0)
+            return 0;
+          dir = fdopendir_with_dup (fd, -1, cwd);
           saved_errno = errno;
-          free_cwd (&cwd);
+          close (cwd);
           errno = saved_errno;
         }
     }
@@ -93,11 +92,11 @@ fdopendir (int fd)
    That way, barring race conditions, fd_clone_opendir returns a
    stream whose file descriptor is FD.

-   If REPLACE_CHDIR or CWD is null, use opendir ("/proc/self/fd/...",
+   If REPLACE_CHDIR or CWD < 0, use opendir ("/proc/self/fd/...",
    falling back on fchdir metadata.  Otherwise, CWD is a saved version
-   of the working directory; use fchdir/opendir(".")/restore_cwd(CWD).  */
+   of the working directory; use fchdir/opendir(".")/fchdir(CWD).  */
 static DIR *
-fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd)
+fdopendir_with_dup (int fd, int older_dupfd, int cwd)
 {
   int dupfd = dup (fd);
   if (dupfd < 0 && errno == EMFILE)
@@ -137,9 +136,9 @@ fdopendir_with_dup (int fd, int older_dupfd, struct saved_cwd const *cwd)
    the caller's responsibility both to close FD and (if the result is
    not null) to closedir the result.  */
 static DIR *
-fd_clone_opendir (int fd, struct saved_cwd const *cwd)
+fd_clone_opendir (int fd, int cwd)
 {
-  if (REPLACE_FCHDIR || ! cwd)
+  if (REPLACE_FCHDIR || cwd < 0)
     {
       DIR *dir = NULL;
       int saved_errno = EOPNOTSUPP;
@@ -170,7 +169,7 @@ fd_clone_opendir (int fd, struct saved_cwd const *cwd)
         {
           DIR *dir = opendir (".");
           int saved_errno = errno;
-          if (restore_cwd (cwd) != 0)
+          if (fchdir (cwd) != 0)
             openat_restore_fail (errno);
           errno = saved_errno;
           return dir;
diff --git a/modules/fdopendir b/modules/fdopendir
index ee9a875..3d99472 100644
--- a/modules/fdopendir
+++ b/modules/fdopendir
@@ -15,7 +15,6 @@ fchdir          [test $HAVE_FDOPENDIR = 0]
 fstat           [test $HAVE_FDOPENDIR = 0]
 openat-die      [test $HAVE_FDOPENDIR = 0]
 opendir         [test $HAVE_FDOPENDIR = 0]
-save-cwd        [test $HAVE_FDOPENDIR = 0]

 configure.ac:
 gl_FUNC_FDOPENDIR




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Thu, 24 Jan 2013 20:36:01 GMT) Full text and rfc822 format available.

Message #32 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org, Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Thu, 24 Jan 2013 15:35:29 -0500
Hello,

Paul Eggert wrote, On 01/24/2013 12:03 PM:
> Thanks, could you please try the following patch?
> This is a gnulib patch, so it also fixes modules/fdopendir --
> you needn't worry about that part of the patch,
> as it doesn't apply to coreutils.
> I'm CC'ing this possible patch to bug-gnulib to give
> the Gnulib people a heads-up.

With this patch, the recursive loop is gone, but it leads to another bug: descending into the directory (due to "-r") doesn't work.

Example:
==========
##
## The 'setup'
##
$ echo $D
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src
$ pwd
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/c
$ ls -ld .
d-wx--xr-x  2 admin  staff  68 Jan 24 14:27 .
$ ls -lh
ls: .: Permission denied

## target directory is empty - works OK
$ mkdir $D/a
$ $D/rm -r $D/a

## target directory is not empty (and current directory unreadable) - fails
$ mkdir -p $D/a/1
$ $D/rm -r $D/a
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove '/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a': Permission denied

## Trying again from a readable directory - works.
$ cd $D
$ $D/rm -r $D/a
==========

The immediate error happens in "unlinkat()", but I'm guessing the deeper cause is that somehow "a" is being deleted before "a/1" ?
===
$ pwd
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/c
$ ls -lh
ls: .: Permission denied
$ ls -ld $D/a
drwxr-xr-x  3 admin  staff  102 Jan 24 15:15 /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a
$ ls -ld $D/a/1
drwxr-xr-x  2 admin  staff  68 Jan 24 15:15 /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a/1
$ gdb /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm
(gdb) b unlinkat
(gdb) r -r /Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a

##
## Just before the call to "unlinkat"
##
Breakpoint 1, excise (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff9f0, is_dir=true) at remove.c:369
369	  if (unlinkat (fts->fts_cwd_fd, ent->fts_accpath, flag) == 0)
(gdb) bt
#0  excise (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff9f0, is_dir=true) at remove.c:369
#1  0x0000000100003244 in rm_fts (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff9f0) at remove.c:509
#2  0x0000000100003487 in rm (file=0x7fff5fbffa70, x=0x7fff5fbff9f0) at remove.c:568
#3  0x0000000100001b10 in main (argc=3, argv=0x7fff5fbffa60) at rm.c:349
(gdb) p *fts
$1 = {
  fts_cur = 0x100100210, 
  fts_child = 0x0, 
  fts_array = 0x0, 
  fts_dev = 234881026, 
  fts_path = 0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a", 
  fts_rfd = 0, 
  fts_cwd_fd = -3041965, 
  fts_pathlen = 1280, 
  fts_nitems = 0, 
  fts_compar = 0, 
  fts_options = 28, 
  fts_leaf_optimization_works_ht = 0x0, 
  fts_cycle = {
    ht = 0x100100460, 
    state = 0x100100460
  }, 
  fts_fd_ring = {
    ir_data = {-1, -1, -1, -1}, 
    ir_default_val = -1, 
    ir_front = 0, 
    ir_back = 0, 
    ir_empty = true
  }
}
(gdb) p *ent
$2 = {
  fts_cycle = 0x0, 
  fts_parent = 0x100100100, 
  fts_link = 0x0, 
  fts_dirp = 0x0, 
  fts_number = 0, 
  fts_pointer = 0x0, 
  fts_accpath = 0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a", 
  fts_path = 0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a", 
  fts_errno = 13, 
  fts_symfd = 0, 
  fts_pathlen = 52, 
  fts_fts = 0x100100080, 
  fts_level = 0, 
  fts_namelen = 1, 
  fts_n_dirs_remaining = 1, 
  fts_info = 4, 
  fts_flags = 0, 
  fts_instr = 3, 
  fts_statp = {{
      st_dev = 234881026, 
      st_mode = 16877, 
      st_nlink = 3, 
      st_ino = 4157629, 
      st_uid = 502, 
      st_gid = 20, 
      st_rdev = 0, 
      st_atimespec = {
        tv_sec = 1359058544, 
        tv_nsec = 0
      }, 
      st_mtimespec = {
        tv_sec = 1359058544, 
        tv_nsec = 0
      }, 
      st_ctimespec = {
        tv_sec = 1359058544, 
        tv_nsec = 0
      }, 
      st_birthtimespec = {
        tv_sec = 1359058544, 
        tv_nsec = 0
      }, 
      st_size = 102, 
      st_blocks = 0, 
      st_blksize = 4096, 
      st_flags = 0, 
      st_gen = 0, 
      st_lspare = 0, 
      st_qspare = {0, 0}
    }}, 
  fts_name = "a"
}
(gdb) p flag
$3 = 1

##
## Inside "unlinkat()", (assuming "CALL_FUNC" calls MacOS's "unlink(2)" ?) - this fails.
##
(gdb) n
Breakpoint 2, unlinkat (fd=-3041965, file=0x100800000 "/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a", flag=1) at at-func.c:72
72	  VALIDATE_FLAG (flag);
(gdb) n
74	  if (fd == AT_FDCWD || IS_ABSOLUTE_FILE_NAME (file))
(gdb) n
75	    return CALL_FUNC (file);
(gdb) n
72	  VALIDATE_FLAG (flag);
(gdb) n

##
## The rest is error handling in remove.c/rm.c
##
excise (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff9f0, is_dir=true) at remove.c:384
384	  if (errno == EROFS)
(gdb) n
392	  if (ignorable_missing (x, errno))
(gdb) n
400	  if (ent->fts_info == FTS_DNR
(gdb) n
404	    errno = ent->fts_errno;
(gdb) n
405	  error (0, errno, _("cannot remove %s"), quote (ent->fts_path));
(gdb) n
/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/rm: cannot remove '/Users/admin/Projects/coreutils-8.20.90-e27bfd/src/a': Permission denied
406	  mark_ancestor_dirs (ent);
(gdb) n
407	  return RM_ERROR;
(gdb) n
377	      return RM_OK;
(gdb) n
rm_fts (fts=0x100100080, ent=0x100100210, x=0x7fff5fbff9f0) at remove.c:434
434	          return RM_ERROR;
(gdb) n
rm (file=0x7fff5fbffa70, x=0x7fff5fbff9f0) at remove.c:570
570	          assert (VALID_STATUS (s));
(gdb) n
571	          UPDATE_STATUS (rm_status, s);
(gdb) n
557	          ent = fts_read (fts);
(gdb) n
558	          if (ent == NULL)
(gdb) n
560	              if (errno != 0)
(gdb) n
574	      if (fts_close (fts) != 0)
(gdb) n
581	  return rm_status;
(gdb) n
main (argc=3, argv=0x7fff5fbffa60) at rm.c:350
350	  assert (VALID_STATUS (status));
(gdb) n
351	  exit (status == RM_ERROR ? EXIT_FAILURE : EXIT_SUCCESS);
(gdb) n

Program exited with code 01.
(gdb) 


===


> 
> By the way, do you happen to know why OS X doesn't
> yet support fdopendir?  It's been in the standard for ages.
> Do the OSX maintainers plan to implement it eventually?
> 

I'm not familiar with OS-X, and rarely use it.
I just happen to have a Mac Mini and wanted to put the latest GNU software on it...






Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Mon, 28 Jan 2013 02:35:02 GMT) Full text and rfc822 format available.

Message #35 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Assaf Gordon <assafgordon <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Gnulib Bugs <bug-gnulib <at> gnu.org>,
	Global Odey <globaloverdose <at> gmail.com>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Sun, 27 Jan 2013 18:34:28 -0800
On 01/24/2013 12:35 PM, Assaf Gordon wrote:

> With this patch, the recursive loop is gone, but it leads to another bug: descending into the directory (due to "-r") doesn't work.

Thanks, can you please try this patch instead?
It's a bit more drastic, but I hope it fixes the loop
without introducing that other bug.
This is a gnulib patch, so it fixes a 'ChangeLog'
file that you don't have -- please don't worry about that part.

---
 ChangeLog    | 6 ++++++
 lib/getcwd.c | 6 +++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index bb7a142..6db18b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2013-01-27  Paul Eggert  <eggert <at> cs.ucla.edu>
 
+	getcwd: break a recursive loop between fdopendir and save_cwd
+	Reported for Mac OS X 10.6.8 by Assaf Gordon in
+	<http://bugs.gnu.org/13516>.
+	* lib/getcwd.c (HAVE_OPENAT_SUPPORT): Do not define if
+	!HAVE_OPENAT && !HAVE_FDOPENDIR.
+
 	futimens-tests, utimens-tests: Depend on gettext.
 	This works around a problem introduced in my 2013-01-12 patch,
 	which added @LIBINTL@ to these modules.
diff --git a/lib/getcwd.c b/lib/getcwd.c
index a4cbe01..4b78138 100644
--- a/lib/getcwd.c
+++ b/lib/getcwd.c
@@ -28,9 +28,9 @@
 #include <fcntl.h> /* For AT_FDCWD on Solaris 9.  */
 
 /* If this host provides the openat function or if we're using the
-   gnulib replacement function, then enable code below to make getcwd
-   more efficient and robust.  */
-#if defined HAVE_OPENAT || defined GNULIB_OPENAT
+   gnulib replacement function with a native fdopendir, then enable
+   code below to make getcwd more efficient and robust.  */
+#if defined HAVE_OPENAT || (defined GNULIB_OPENAT && defined HAVE_FDOPENDIR)
 # define HAVE_OPENAT_SUPPORT 1
 #else
 # define HAVE_OPENAT_SUPPORT 0
-- 
1.7.11.7






Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Mon, 28 Jan 2013 18:06:02 GMT) Full text and rfc822 format available.

Message #38 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Global Odey <globaloverdose <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Mon, 28 Jan 2013 11:55:45 -0600
[Message part 1 (text/plain, inline)]
On 1/27/13 8:34 PM, Paul Eggert wrote:
> Thanks, can you please try this patch instead? It's a bit more 
> drastic, but I hope it fixes the loop without introducing that other bug.

Thank you. Your patch does the trick on OS X 10.8.2, however, it causes 
test-getcwd.sh to fail now.

Global Odey
[test-getcwd.sh.log (text/plain, attachment)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Mon, 28 Jan 2013 22:28:01 GMT) Full text and rfc822 format available.

Message #41 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: Global Odey <globaloverdose <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Paul Eggert <eggert <at> cs.ucla.edu>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Mon, 28 Jan 2013 17:26:47 -0500
Global Odey wrote, On 01/28/2013 12:55 PM:
> On 1/27/13 8:34 PM, Paul Eggert wrote:
>> Thanks, can you please try this patch instead? It's a bit more drastic, but I hope it fixes the loop without introducing that other bug.
> 
> Thank you. Your patch does the trick on OS X 10.8.2, however, it causes test-getcwd.sh to fail now.
> 

Same for me, on Mac OS 10.6.8 (Darwin 10.8):
tests/rm/unread3 succeeds, but gnulib-tests/test-getcwd.sh fails with exit code 47 .






Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 29 Jan 2013 00:49:01 GMT) Full text and rfc822 format available.

Message #44 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Global Odey <globaloverdose <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Mon, 28 Jan 2013 16:47:51 -0800
[Message part 1 (text/plain, inline)]
On 01/28/2013 09:55 AM, Global Odey wrote:
> it causes test-getcwd.sh to fail now.

OK, how about the attached patch instead?
Unless you have developer tools such as autoconf, please
patch just lib/getcwd.c and gnulib-tests/test-getcwd.c;
don't apply the patch to getcwd-abort-bug.m4.
[fdopendir1.txt (text/plain, attachment)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Tue, 29 Jan 2013 17:13:01 GMT) Full text and rfc822 format available.

Message #47 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Global Odey <globaloverdose <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 29 Jan 2013 11:11:30 -0600
[Message part 1 (text/plain, inline)]
On 1/28/13 6:47 PM, Paul Eggert wrote:
> OK, how about the attached patch instead?
After correcting a minor issue (*/tests/test-getcwd.c needed to be 
changed to */gnulib-tests/test-getcwd.c in the last patch), 
tests/rm/unread3.sh continues to pass while gnulib-tests/test-getcwd.sh 
still fails.

Thanks

Global Odey
[test-getcwd.sh.log (text/plain, attachment)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Wed, 30 Jan 2013 07:27:01 GMT) Full text and rfc822 format available.

Message #50 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Global Odey <globaloverdose <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Tue, 29 Jan 2013 23:25:31 -0800
On 01/29/2013 09:11 AM, Global Odey wrote:
> + test-getcwd
> + Exit 7

Evidently the test-getcwd program is encountering
the failure marked "fail = 7;" in that program.
Can you use GDB to debug the situation?
Try running something like this:

gdb test-getcwd
b getcwd
r
fin
p errno

That sort of thing.




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Thu, 31 Jan 2013 00:00:03 GMT) Full text and rfc822 format available.

Message #53 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Global Odey <globaloverdose <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Wed, 30 Jan 2013 17:59:13 -0600
On 1/30/13 1:25 AM, Paul Eggert wrote:
> Can you use GDB to debug the situation?
No. That is, I'm willing but apparently not able.
> Try running something like this:
>
> gdb test-getcwd
> b getcwd
> r
> fin
> p errno
GDB didn't seem to offer up much. It was able to find getcwd (after 
loading shared libraries) and set the breakpoint but it would exit out 
(still with error code 7) before reaching the break. After looking 
through test-getcwd.c, though, I don't know how that's possible. I can 
say for sure that when GDB was setting the breakpoint, it was finding 
libc's getcwd, not GNUlib's (based on its address).
>
> That sort of thing.
Hopefully, this qualifies: Because I was unable to get anything else out 
of GDB (that was literally my first time ever using the program), I 
resorted to directly editing test-getcwd.c a few times and determined 
that errno gets set to ENOENT before triggering the failure.

Global Odey




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Thu, 31 Jan 2013 01:21:01 GMT) Full text and rfc822 format available.

Message #56 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Global Odey <globaloverdose <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Wed, 30 Jan 2013 17:19:38 -0800
On 01/30/2013 03:59 PM, Global Odey wrote:
> On 1/30/13 1:25 AM, Paul Eggert wrote:
>> Can you use GDB to debug the situation?
> No. That is, I'm willing but apparently not able.
>> Try running something like this:
>>
>> gdb test-getcwd
>> b getcwd
>> r
>> fin
>> p errno

> GDB didn't seem to offer up much. It was able to find getcwd (after loading shared libraries)
> and set the breakpoint but it would exit out (still with error code 7) before reaching the break.

What happens if you put a breakpoint on rpl_getcwd instead?  Use "b rpl_getcwd".
That should get Gnulib's getcwd instead of libc's.





Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Sat, 02 Feb 2013 01:42:02 GMT) Full text and rfc822 format available.

Message #59 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Global Odey <globaloverdose <at> gmail.com>
To: Paul Eggert <eggert <at> cs.ucla.edu>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Fri, 01 Feb 2013 19:40:02 -0600
[Message part 1 (text/plain, inline)]
On 1/30/13 7:19 PM, Paul Eggert wrote:
> What happens if you put a breakpoint on rpl_getcwd instead?  Use "b rpl_getcwd".
> That should get Gnulib's getcwd instead of libc's.
Okay that certainly got me on the right track. I tried a lot of 
different things without finding the exact cause of the error so I'll 
pass on a few things that stood out to me and maybe that will help make 
more sense out of things on your end.

Ultimately, I used a breakpoint at line 196 of test-getcwd.c (see below) 
quite a bit.

   192     if (dotdot_max <= cwd_len - initial_cwd_len)
   193        {
   194          if (dotdot_max + DIR_NAME_SIZE < cwd_len - initial_cwd_len)
   195            break;
-> 196          c = getcwd (buf, cwd_len + 1);
   197          if (!c)
   198            {
   199              if (! (errno == ERANGE || errno == ENOENT

The main reason was that I very quickly got lost trying follow getcwd 
(in getcwd.c) so I tried to stop things right before getcwd was called 
and that's when a few interesting things showed up. To start with, the 
value of buf was always 1023 characters long despite the array having a 
size of 4125. I don't know if it's related but it stands out to me that 
PATH_MAX is set to 1024. The way the path was made to always be 1023 
characters was interesting, too. Rather than truncating the very end of 
the path, it would start by truncating the name of the first directory 
and then go on to the next one if the name of the first directory wasn't 
long enough. So what should have been 
"/reallylongdirectoryname/confdir3.../confdir3" would end up as 
"/reallylongdire/confdir3.../confdir3" and 
"/a/b/c/d/e/f/g/h/i/j/confdir3.../confdir3" became 
"//d/e/f/g/h/i/j/confdir3.../confdir3".

Looking at some of the other variables only brought more confusion. 
cwd_len (getcwd's second argument on line 196) turned out to have the 
same value as initial_cwd_len so I don't know what line 160 was doing. I 
was expecting cwd_len to be at least 1023 to match buf. Trying to figure 
out how the program even got to this point, I checked the value of 
dotdot_max (used on line 192) which should have been 3072 and instead it 
was 0. The values of dotdot_max and cwd_len both depend on 
DIR_NAME_SIZE. Is this being unset by another function? It's definitely 
defined above (line 116) and successfully used in setting the array size 
of buf (line 141).


On another note, I've actually gotten to the bottom of a few, ancillary 
things:

First, I was wrong on my assumptions of what Darwin is and is not. Even 
though eg. Google's autocomplete seems to think "Darwin kernel" is a 
legitimate phrase, according to Wikipedia, Darwin is the Unix-based OS 
that OS X (also an OS) is built upon. The kernel is called XNU and is a 
combination of the Mach and FreeBSD kernels which is why you'll often 
see it referenced as simply the Mach kernel. To me, this makes OS X look 
more like a distro where instead of being built on top of GNU/Linux with 
a Linux kernel, it's built on top of Darwin with an XNU kernel. My 
points on versioning between OS X and Darwin and the ridiculousness of 
that FAQ still stand, though.

Paul, earlier in this thread you asked why Apple hadn't yet implemented 
fdopendir. My best guess is that Apple will have it implemented the day 
The Open Group settles on a UNIX 1x specification. Apple claims (and is 
certified for) 100% conformance to UNIX 03 which is based on SUS 3 / 
POSIX.1-2001. Even though there is a SUS 4 / POSIX.1-2008, there doesn't 
seem to be any corresponding UNIX branding so, hopefully, as soon as The 
Open Group figures out how they want to certify compliance (and how much 
they want to charge), there will be an fdopendir in the following 
release of OS X. Also, if you don't already know about it, 
opensource.apple.com has a ton of information on mostly Darwin including 
all of the (open) source code for every version of OS X.

Assaf, you might give LLDB (the debugger for LLVM/Clang) a try. Apple's 
version of GDB is about 8 years old now. I tried the latest version of 
GDB (even with the latest GCC) and, suffice to say, it is utterly broken 
on OS X. Still, wanting something newer, I tried LLDB using this guide 
here <lldb.llvm.org/lldb-gdb.html> for reference and it seemed to work 
pretty well (but then again, I don't really know what I'm doing so ymmv).

Global Odey
[Message part 2 (text/html, inline)]

Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Mon, 04 Feb 2013 05:35:01 GMT) Full text and rfc822 format available.

Message #62 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Paul Eggert <eggert <at> cs.ucla.edu>
To: Global Odey <globaloverdose <at> gmail.com>
Cc: 13516 <at> debbugs.gnu.org, Assaf Gordon <assafgordon <at> gmail.com>,
	Gnulib Bugs <bug-gnulib <at> gnu.org>
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Sun, 03 Feb 2013 21:33:32 -0800
On 02/01/2013 05:40 PM, Global Odey wrote:
> Okay that certainly got me on the right track. I tried a lot of different things without finding
> the exact cause of the error so I'll pass on a few things that stood out to me and maybe that will
> help make more sense out of things on your end.

I'm afraid I'm still puzzled.  Still, the patch improves things, since it fixes
what appears to be a serious bug (recursive runaway) while introducing a relatively
minor problem (getcwd doesn't work in unreadable directories).  Overall, that's
a win, even if we can improve it further later, so I pushed the fix into gnulib
here:

http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=ca369c8d661a10d8a0ae3d712e7dfa91664921f1




Information forwarded to bug-coreutils <at> gnu.org:
bug#13516; Package coreutils. (Thu, 18 Oct 2018 23:27:02 GMT) Full text and rfc822 format available.

Message #65 received at 13516 <at> debbugs.gnu.org (full text, mbox):

From: Assaf Gordon <assafgordon <at> gmail.com>
To: 13516 <at> debbugs.gnu.org
Subject: Re: bug#13516: tests/rm/unread3 fails on Mac OS X 10.8
Date: Thu, 18 Oct 2018 17:25:48 -0600
close 13516
stop

(triaging old bugS)

Hello,

On 03/02/13 10:33 PM, Paul Eggert wrote:
> On 02/01/2013 05:40 PM, Global Odey wrote:
> I'm afraid I'm still puzzled.  Still, the patch improves things, since it fixes
> what appears to be a serious bug [...]
>
> http://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=ca369c8d661a10d8a0ae3d712e7dfa91664921f1

With no further follow-ups in 5 years,
and Mac OS X 10.8 being out of date,
I'm closing this bug.

-assaf







bug closed, send any further explanations to 13516 <at> debbugs.gnu.org and Assaf Gordon <assafgordon <at> gmail.com> Request was from Assaf Gordon <assafgordon <at> gmail.com> to control <at> debbugs.gnu.org. (Thu, 18 Oct 2018 23:27:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 16 Nov 2018 12:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 167 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.