Skip Menu |
 

This queue is for tickets about the File-Path CPAN distribution.

Report information
The Basics
Id: 94209
Status: resolved
Priority: 0/
Queue: File-Path

People
Owner: RICHE [...] cpan.org
Requestors: ppisar [...] redhat.com
Cc: jkeenan [...] cpan.org
AdminCc:

Bug Information
Severity: (no value)
Broken in: 2.09
Fixed in: (no value)



Subject: remove_tree() is not thread-safe due to chdir
MIME-Version: 1.0
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
Message-ID: <rt-4.0.18-29853-1395841279-96.0-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 780
Download (untitled) / with headers
text/plain 780b
I have a multi-threaded program which calls make_path() and remove_tree(). I observed some occasional failure from subprocesses about missing working directory. Now I got a croak from remove_tree() that removing directory is not empty. It happened that one thread started remove_tree() which made chdir(), then the other thread called and finished make_path(), and finally, the former thread continued in remove_tree() which failed because concurrent make_path() created relative directory tree into working directory changed by remove_tree(). All this is tread-unsafety is due to using chdir(). Working directory is a process attribute shared between threads. It would be nice to reimplement File::Path without changing working directory. Or at least document this deficiency.
X-Scanned-BY: MIMEDefang 2.68 on 10.5.11.25
MIME-Version: 1.0
X-Spam-Status: No, score=-8.911 tagged_above=-99.9 required=10 tests=[BAYES_00=-1.9, FROM_OUR_RT=-2, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
X-Authentication-Warning: dhcp-0-146.brq.redhat.com: petr set sender to ppisar [...] redhat.com using -f
In-Reply-To: <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org>
Content-Disposition: inline
X-Spam-Flag: NO
X-RT-Interface: API
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org>
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
Message-ID: <20140326145107.GA2050 [...] dhcp-0-146.brq.redhat.com>
Content-Type: multipart/signed; boundary="2fHTh5uZTiUOsy+g"; micalg="pgp-sha256"; protocol="application/pgp-signature"
X-Spam-Score: -8.911
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id 58DB124062E for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Wed, 26 Mar 2014 10:51:22 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zLBtQEqzEgTl for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Wed, 26 Mar 2014 10:51:21 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id BC1D124062C for <bug-File-Path [...] rt.cpan.org>; Wed, 26 Mar 2014 10:51:20 -0400 (EDT)
Received: (qmail 30313 invoked by alias); 26 Mar 2014 14:51:19 -0000
Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Wed, 26 Mar 2014 07:51:16 -0700
Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s2QEpCsU026627 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <bug-File-Path [...] rt.cpan.org>; Wed, 26 Mar 2014 10:51:12 -0400
Received: from dhcp-0-146.brq.redhat.com (unused-4-140.brq.redhat.com [10.34.4.140]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s2QEpA0h016178 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <bug-File-Path [...] rt.cpan.org>; Wed, 26 Mar 2014 10:51:11 -0400
Received: from dhcp-0-146.brq.redhat.com (localhost.localdomain [127.0.0.1]) by dhcp-0-146.brq.redhat.com (8.14.8/8.14.5) with ESMTP id s2QEp9H7017124 for <bug-File-Path [...] rt.cpan.org>; Wed, 26 Mar 2014 15:51:09 +0100
Received: (from petr [...] localhost) by dhcp-0-146.brq.redhat.com (8.14.8/8.14.8/Submit) id s2QEp9g6017123 for bug-File-Path [...] rt.cpan.org; Wed, 26 Mar 2014 15:51:09 +0100
Delivered-To: cpan-bug+File-Path [...] hipster.bestpractical.com
Subject: Re: [rt.cpan.org #94209] AutoReply: remove_tree() is not thread-safe due to chdir
User-Agent: Mutt/1.5.21 (2010-09-15)
Return-Path: <ppisar [...] redhat.com>
X-Spam-Check-BY: la.mx.develooper.com
X-Original-To: cpan-bug+File-Path [...] hipster.bestpractical.com
X-RT-Mail-Extension: file-path
Date: Wed, 26 Mar 2014 15:51:08 +0100
X-Spam-Level:
To: Bugs in File-Path via RT <bug-File-Path [...] rt.cpan.org>
From: Petr Pisar <ppisar [...] redhat.com>
RT-Message-ID: <rt-4.0.18-31538-1395845483-279.94209-0-0 [...] rt.cpan.org>
Content-Length: 0
content-type: text/plain; charset="utf-8"
Content-Disposition: inline
X-RT-Original-Encoding: utf-8
Content-Length: 135
Download (untitled) / with headers
text/plain 135b
This issue has already been reported into perl RT without any reply. (https://rt.perl.org/Public/Bug/Display.html?id=112008). -- Petr
Content-Type: application/pgp-signature
Content-Length: 230
Download (untitled)
application/pgp-signature 230b

Message body not shown because it is not plain text.

X-Scanned-BY: MIMEDefang 2.68 on 10.5.11.23
MIME-Version: 1.0
X-Spam-Status: No, score=-8.911 tagged_above=-99.9 required=10 tests=[BAYES_00=-1.9, FROM_OUR_RT=-2, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
X-Authentication-Warning: dhcp-0-146.brq.redhat.com: petr set sender to ppisar [...] redhat.com using -f
In-Reply-To: <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org>
Content-Disposition: inline
X-Spam-Flag: NO
X-RT-Interface: API
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org>
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
Message-ID: <20140327064652.GA1858 [...] dhcp-0-146.brq.redhat.com>
Content-Type: multipart/signed; boundary="YiEDa0DAkWCtVeE4"; micalg="pgp-sha256"; protocol="application/pgp-signature"
X-Spam-Score: -8.911
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id A26A224059F for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Thu, 27 Mar 2014 02:47:06 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CAN8pNyPX2ea for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Thu, 27 Mar 2014 02:47:05 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id 2B7E424024A for <bug-File-Path [...] rt.cpan.org>; Thu, 27 Mar 2014 02:47:04 -0400 (EDT)
Received: (qmail 29297 invoked by alias); 27 Mar 2014 06:47:03 -0000
Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Wed, 26 Mar 2014 23:47:01 -0700
Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s2R6kvVH024225 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for <bug-File-Path [...] rt.cpan.org>; Thu, 27 Mar 2014 02:46:58 -0400
Received: from dhcp-0-146.brq.redhat.com (unused-4-140.brq.redhat.com [10.34.4.140]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s2R6ktxJ007815 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for <bug-File-Path [...] rt.cpan.org>; Thu, 27 Mar 2014 02:46:57 -0400
Received: from dhcp-0-146.brq.redhat.com (localhost.localdomain [127.0.0.1]) by dhcp-0-146.brq.redhat.com (8.14.8/8.14.5) with ESMTP id s2R6ksvv000662 for <bug-File-Path [...] rt.cpan.org>; Thu, 27 Mar 2014 07:46:54 +0100
Received: (from petr [...] localhost) by dhcp-0-146.brq.redhat.com (8.14.8/8.14.8/Submit) id s2R6ksUg000661 for bug-File-Path [...] rt.cpan.org; Thu, 27 Mar 2014 07:46:54 +0100
Delivered-To: cpan-bug+File-Path [...] hipster.bestpractical.com
Subject: Re: [rt.cpan.org #94209] AutoReply: remove_tree() is not thread-safe due to chdir
User-Agent: Mutt/1.5.21 (2010-09-15)
Return-Path: <ppisar [...] redhat.com>
X-Spam-Check-BY: la.mx.develooper.com
X-Original-To: cpan-bug+File-Path [...] hipster.bestpractical.com
X-RT-Mail-Extension: file-path
Date: Thu, 27 Mar 2014 07:46:53 +0100
X-Spam-Level:
To: Bugs in File-Path via RT <bug-File-Path [...] rt.cpan.org>
From: Petr Pisar <ppisar [...] redhat.com>
RT-Message-ID: <rt-4.0.18-7037-1395902827-1830.94209-0-0 [...] rt.cpan.org>
Content-Length: 0
content-type: text/plain; charset="utf-8"
Content-Disposition: inline
X-RT-Original-Encoding: utf-8
Content-Length: 66
File::Path::Tiny does not fiddle with working directory. -- Petr
Content-Type: application/pgp-signature
Content-Length: 230
Download (untitled)
application/pgp-signature 230b

Message body not shown because it is not plain text.

MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-29853-1395841279-96.0-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <rt-4.0.18-29853-1395841279-96.0-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-16964-1436622692-419.94209-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 2246
Download (untitled) / with headers
text/plain 2.1k
On Wed Mar 26 09:41:20 2014, ppisar wrote: Show quoted text
> I have a multi-threaded program which calls make_path() and > remove_tree(). I observed some occasional failure from subprocesses > about missing working directory. Now I got a croak from remove_tree() > that removing directory is not empty. > > It happened that one thread started remove_tree() which made chdir(), > then the other thread called and finished make_path(), and finally, > the former thread continued in remove_tree() which failed because > concurrent make_path() created relative directory tree into working > directory changed by remove_tree(). > > All this is tread-unsafety is due to using chdir(). Working directory > is a process attribute shared between threads. > > It would be nice to reimplement File::Path without changing working > directory. Or at least document this deficiency.
Richard Elberger and I have become co-maintainers of File-Path on CPAN, so the library is now under active maintenance. This problem is definitely on our radar. Having given some study to this issues (which is also the subject of https://rt.cpan.org/Ticket/Display.html?id=99230), I think the *best* solution is to re-implement sub remove_tree() to remove its internal reliance on 'chdir'. But to do that, we -- and by that I mean not just the maintainers but all who have contributed to these RTs -- have to understand why 'chdir' was used as part of the implementation of remove_tree in the first place. As best I can tell, this was the commit to Perl 5 source code which first introduced this implementation: ##### commit 0b3d36bd61fec90809936fcf1a90441d970d875e Author: David Landgren <david@landgren.net> Date: Sat Sep 8 12:46:15 2007 +0200 sync blead with File-Path 2.00_11 Message-ID: <46E26157.4050307@landgren.net> p4raw-id: //depot/perl@31819 ##### David Landgren presumably had good reason to take this approach. So we have to understand what benefits that brought us in order to retain them as best as we can while we address the costs it also brought us. Since all of the above, is non-trivial, I recommend that in the short-run we adopt a *second best* solution of simply documenting the lack of thread safety. Thank you very much. Jim Keenan
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-31538-1395845483-279.94209-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
X-RT-Interface: Web
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org> <20140326145107.GA2050 [...] dhcp-0-146.brq.redhat.com> <rt-4.0.18-31538-1395845483-279.94209-0-0 [...] rt.cpan.org>
Content-Type: multipart/mixed; boundary="----------=_1436622980-16964-3"
Message-ID: <rt-4.0.18-16964-1436622980-272.94209-0-0 [...] rt.cpan.org>
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 0
Content-Disposition: inline
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 218
Download (untitled) / with headers
text/plain 218b
On Wed Mar 26 10:51:23 2014, ppisar wrote: Show quoted text
> This issue has already been reported into perl RT without any reply. > (https://rt.perl.org/Public/Bug/Display.html?id=112008). > > -- Petr
Attaching text of that report.
MIME-Version: 1.0
Subject: rt_perl_org_112008.txt
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Type: text/plain; charset="utf-8"; name="rt_perl_org_112008.txt"
Content-Disposition: inline; filename="rt_perl_org_112008.txt"
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
Content-Length: 5702
This is a bug report for perl from steve@rhythm.com, generated with the help of perlbug 1.39 running under perl 5.14.2. ----------------------------------------------------------------- [Please describe your issue here] On Linux, threads are typically created with pthread_create which eventually ends up being a clone() call with CLONE_FS set which means all threads share one /proc/self/cwd. The code within File::Path does a chdir(). If a another thread does a chdir() files might be deleted that are not suppose to be deleted because the rmtree will not be in the directory that it expects to be in. I wrote a simple test case which shows the wrong files being deleted: Deleting /tmp/test/junk Thread 1 terminated abnormally: previous directory .. changed before entering /tmp/test/junk/1/2, expected dev=2051 inode=4105812, actual dev=2051 ino=4105807, aborting. at ./rmtree.pl line 56 thread 1 CWD: /tmp/test/precious/1 found 971 files in /tmp/test/junk found 29 files in /tmp/test/precious I have replicated this problem on linux with perl v5.10.0 and v5.14.2. OS X perl v5.10.0 also exhibits this issue. Here is the test program: #!/usr/bin/perl use File::Path qw( rmtree mkpath); use File::Find; use Cwd 'getcwd'; use threads; mkpath("/tmp/test/precious/1/2",0755); mkpath("/tmp/test/junk/1/2",0755); for( $x = 0 ;$x < 1000 ; $x++){ open(F,">/tmp/test/junk/1/2/file$x"); open(F,">/tmp/test/precious/1/2/file$x"); } chdir("/tmp"); threads->new(\&sub1); threads->new(\&sub2); $_->join() for threads->list(); print "CWD: " . getcwd() . "\n"; sub wanted { if( -f $_){ $count++; } } foreach my $dir ( qw(/tmp/test/junk /tmp/test/precious)){ $count = 0 ; find(\&wanted, $dir); print "found $count files in $dir\n"; } sub sub2(){ while($z < 1000 ){ chdir("/tmp/test/precious/1/2"); $z++; } } sub sub1(){ _delDir("/tmp/test/junk"); print "THREAD CWD 2: " . getcwd() . "\n"; $isdone = 1; } sub _delDir { my ( $dir ) = @_; my $rmTreeErrors; if ( $dir and ( -d $dir ) ) { print ( "Deleting $dir\n" ); rmtree( $dir, { verbose => 0, error => \$rmTreeErrors } ); foreach my $rmTreeErr ( @{ $rmTreeErrors } ) { my ( $file, $message ) = each %{ $rmTreeErr }; if ( $file eq '' ) { print ( "Problem with rmtree($dir): $message\n" ); } else { print ( "Error in rmtree($dir): Problem deleting $file -- $message\n" ); } } } return $rmTreeErrors; } [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=library severity=medium module=File::Path --- Site configuration information for perl 5.14.2: Configured by steve at Mon Mar 26 13:11:01 PDT 2012. Summary of my perl5 (revision 5 version 14 subversion 2) configuration: Platform: osname=linux, osvers=2.6.27.23-10rh, archname=linux-linux-thread uname='linux lid9 2.6.27.23-10rh #4 smp wed dec 28 16:40:10 pst 2011 x86_64 x86_64 x86_64 gnulinux ' config_args='-ds -e' hint=previous, useposix=true, d_sigaction=define useithreads=define, usemultiplicity=undef useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef use64bitint=define, use64bitall=define, uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64' ccversion='', gccversion='4.3.2 [gcc-4_3-branch revision 141291]', gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=8, prototype=define Linker and Libraries: ld='cc', ldflags =' -fstack-protector -lpthread' libpth=/usr/local/lib /lib/../lib64 /usr/lib/../lib64 /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64 libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc -lgdbm_compat perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.9.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.9' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -fstack-protector -lpthread' Locally applied patches: --- @INC for perl 5.14.2: /usr/lsd/lib/perl /usr/local/prod/perl /usr/local/rnh/perl /opt/perl-5.14.2/lib/site_perl/5.14.2/linux-linux /opt/perl-5.14.2/lib/site_perl/5.14.2 /opt/perl-5.14.2/lib/5.14.2/linux-linux /opt/perl-5.14.2/lib/5.14.2 . --- Environment for perl 5.14.2: HOME=/home/steve LANG=C LANGUAGE (unset) LD_LIBRARY_PATH=/opt/randh/mesa-7.4.3/lib64:/opt/randh/mesa-7.4.3/lib:/usr/lib64/mpi/gcc/openmpi/lib64 LOGDIR (unset) PATH=/opt/perl-5.14.2/bin:/home/steve/bin.Linux_i686:/usr/apps/ffmpeg/ffmpeg-git20111012/bin:/muse/bin:/usr/apps/bin:/usr/local/prod/bin:/usr/local/rnh/bin:/usr/site/bin:/usr/local/bin:/opt/kde3/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11:/usr/lsd/bin:/opt/gnome/bin:/usr/games:. PERL5LIB=/usr/lsd/lib/perl:/usr/local/prod/perl:/usr/local/rnh/perl PERL_BADLANG (unset) SHELL=/bin/tcsh
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-16964-1436622980-272.94209-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org> <20140326145107.GA2050 [...] dhcp-0-146.brq.redhat.com> <rt-4.0.18-31538-1395845483-279.94209-0-0 [...] rt.cpan.org> <rt-4.0.18-16964-1436622980-272.94209-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-29610-1444564665-312.94209-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 611
Download (untitled) / with headers
text/plain 611b
On Sat Jul 11 09:56:20 2015, JKEENAN wrote: Show quoted text
> On Wed Mar 26 10:51:23 2014, ppisar wrote:
> > This issue has already been reported into perl RT without any reply. > > (https://rt.perl.org/Public/Bug/Display.html?id=112008). > > > > -- Petr
> > Attaching text of that report.
For quite some time this limitation has been documented under: BUGS AND LIMITATIONS > MULTITHREAD APPLICATIONS I think we need to change the following text: The implementation that surfaces this limitation may change in a future release. to: The implementation that surfaces this limitation will not be changed.
MIME-Version: 1.0
In-Reply-To: <rt-4.0.18-29610-1444564665-312.94209-0-0 [...] rt.cpan.org>
X-Mailer: MIME-tools 5.504 (Entity 5.504)
Content-Disposition: inline
X-RT-Interface: Web
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org> <20140326145107.GA2050 [...] dhcp-0-146.brq.redhat.com> <rt-4.0.18-31538-1395845483-279.94209-0-0 [...] rt.cpan.org> <rt-4.0.18-16964-1436622980-272.94209-0-0 [...] rt.cpan.org> <rt-4.0.18-29610-1444564665-312.94209-0-0 [...] rt.cpan.org>
Content-Type: text/plain; charset="utf-8"
Message-ID: <rt-4.0.18-29610-1444565163-1543.94209-0-0 [...] rt.cpan.org>
Content-Transfer-Encoding: binary
X-RT-Original-Encoding: utf-8
X-RT-Encrypt: 0
X-RT-Sign: 0
Content-Length: 193
Download (untitled) / with headers
text/plain 193b
X-Scanned-BY: MIMEDefang 2.68 on 10.5.11.22
MIME-Version: 1.0
X-Spam-Status: No, score=-10.729 tagged_above=-99.9 required=10 tests=[AWL=0.182, BAYES_00=-1.9, FROM_OUR_RT=-4, RCVD_IN_DNSWL_HI=-5, SPF_HELO_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
X-Authentication-Warning: dhcp-0-146.brq.redhat.com: petr set sender to ppisar [...] redhat.com using -f
In-Reply-To: <rt-4.0.18-29610-1444564665-320.94209-6-0 [...] rt.cpan.org>
Content-Disposition: inline
X-Spam-Flag: NO
X-RT-Interface: API
References: <RT-Ticket-94209 [...] rt.cpan.org> <rt-4.0.18-29853-1395841280-1591.94209-3-0 [...] rt.cpan.org> <20140326145107.GA2050 [...] dhcp-0-146.brq.redhat.com> <rt-4.0.18-31538-1395845483-279.94209-6-0 [...] rt.cpan.org> <rt-4.0.18-16964-1436622980-272.94209-6-0 [...] rt.cpan.org> <rt-4.0.18-29610-1444564665-320.94209-6-0 [...] rt.cpan.org>
X-Virus-Scanned: Debian amavisd-new at bestpractical.com
Message-ID: <20151012081532.GB2102 [...] dhcp-0-146.brq.redhat.com>
Content-Type: multipart/signed; boundary="4SFOXa2GPu3tIq4H"; micalg="pgp-sha256"; protocol="application/pgp-signature"
X-Spam-Score: -10.729
Received: from localhost (localhost [127.0.0.1]) by hipster.bestpractical.com (Postfix) with ESMTP id C23A024009B for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Mon, 12 Oct 2015 04:15:51 -0400 (EDT)
Received: from hipster.bestpractical.com ([127.0.0.1]) by localhost (hipster.bestpractical.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id P6ihPqiu+scC for <cpan-bug+File-Path [...] hipster.bestpractical.com>; Mon, 12 Oct 2015 04:15:48 -0400 (EDT)
Received: from la.mx.develooper.com (x1.develooper.com [207.171.7.70]) by hipster.bestpractical.com (Postfix) with SMTP id E5A67240093 for <bug-File-Path [...] rt.cpan.org>; Mon, 12 Oct 2015 04:15:47 -0400 (EDT)
Received: (qmail 5106 invoked by alias); 12 Oct 2015 08:15:47 -0000
Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by la.mx.develooper.com (qpsmtpd/0.28) with ESMTP; Mon, 12 Oct 2015 01:15:40 -0700
Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id F065B8EA43 for <bug-File-Path [...] rt.cpan.org>; Mon, 12 Oct 2015 08:15:36 +0000 (UTC)
Received: from dhcp-0-146.brq.redhat.com (unused-4-180.brq.redhat.com [10.34.4.180]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id t9C8FZTd007449 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for <bug-File-Path [...] rt.cpan.org>; Mon, 12 Oct 2015 04:15:36 -0400
Received: from dhcp-0-146.brq.redhat.com (localhost.localdomain [127.0.0.1]) by dhcp-0-146.brq.redhat.com (8.15.2/8.14.5) with ESMTP id t9C8FYLH030384 for <bug-File-Path [...] rt.cpan.org>; Mon, 12 Oct 2015 10:15:34 +0200
Received: (from petr [...] localhost) by dhcp-0-146.brq.redhat.com (8.15.2/8.15.2/Submit) id t9C8FXao030383 for bug-File-Path [...] rt.cpan.org; Mon, 12 Oct 2015 10:15:33 +0200
Delivered-To: cpan-bug+File-Path [...] hipster.bestpractical.com
Subject: Re: [rt.cpan.org #94209] remove_tree() is not thread-safe due to chdir
User-Agent: Mutt/1.5.24 (2015-08-30)
Return-Path: <ppisar [...] redhat.com>
X-Spam-Check-BY: la.mx.develooper.com
X-Original-To: cpan-bug+File-Path [...] hipster.bestpractical.com
X-RT-Mail-Extension: file-path
Date: Mon, 12 Oct 2015 10:15:33 +0200
X-Spam-Level:
To: Richard Elberger via RT <bug-File-Path [...] rt.cpan.org>
From: Petr Pisar <ppisar [...] redhat.com>
RT-Message-ID: <rt-4.0.18-10123-1444637752-250.94209-0-0 [...] rt.cpan.org>
Content-Length: 0
content-type: text/plain; charset="utf-8"
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
X-RT-Original-Encoding: utf-8
Content-Length: 255
Download (untitled) / with headers
text/plain 255b
On Sun, Oct 11, 2015 at 07:57:51AM -0400, Richard Elberger via RT wrote: Show quoted text
> For quite some time this limitation has been documented under: > > BUGS AND LIMITATIONS > MULTITHREAD APPLICATIONS >
Thanks. The text is there since File-Path-2.10_005. -- Petr
Content-Type: application/pgp-signature; name="signature.asc"
Content-Length: 213
Download signature.asc
application/pgp-signature 213b

Message body not shown because it is not plain text.



This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.