coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cp: behavior regression in 8.23


From: TAMUKI Shoichi
Subject: cp: behavior regression in 8.23
Date: Fri, 30 Jan 2015 20:11:42 +0900

Hello,

I upgraded coreutils from 8.22 to 8.23 and when I copied a directory
using cp command with -a option, I noticed a behavior regression of
the copy operation.

This issue is reproducible on ext[234] w/o dir_index feature, btrfs,
and xfs filesystems.

Here is a directory 2014 in ~/work directory:

tamuki@wombat:~/work$ ls -fliR --fu
.:
total 16384
1828773 drwxr-xr-x  3 tamuki users 4096 Tue Jan  6 14:10:26 2015 ./
1573247 drwx--x--x 65 tamuki users 8192 Tue Jan  6 14:10:09 2015 ../
1828789 drwxr-xr-x  2 tamuki users 4096 Tue Jan  6 13:42:44 2015 2014/

./2014:
total 57344
1828789 drwxr-xr-x 2 tamuki users 4096 Tue Jan  6 13:42:44 2015 ./
1828773 drwxr-xr-x 3 tamuki users 4096 Tue Jan  6 14:10:26 2015 ../
1828792 -rw-r--r-- 1 tamuki users    8 Fri Jan 24 14:37:45 2014 January
1828810 -rw-r--r-- 1 tamuki users    9 Sat Feb 15 18:05:27 2014 February
1828822 -rw-r--r-- 1 tamuki users    6 Sun Mar 23 11:35:16 2014 March
1828779 -rw-r--r-- 1 tamuki users    6 Fri Apr 18 12:38:28 2014 April
1828797 -rw-r--r-- 1 tamuki users    4 Wed May 14 09:53:07 2014 May
1828782 -rw-r--r-- 1 tamuki users    5 Fri Jun 20 11:24:12 2014 June
1828824 -rw-r--r-- 1 tamuki users    5 Sat Jul 19 08:42:28 2014 July
1828821 -rw-r--r-- 1 tamuki users    7 Tue Aug 12 15:07:39 2014 August
1828781 -rw-r--r-- 1 tamuki users   10 Tue Sep  2 22:40:33 2014 September
1828793 -rw-r--r-- 1 tamuki users    8 Tue Oct 14 13:52:18 2014 October
1828820 -rw-r--r-- 1 tamuki users    9 Fri Nov 28 10:52:36 2014 November
1828823 -rw-r--r-- 1 tamuki users    9 Tue Dec 16 13:24:33 2014 December

Now, copy the directory using cp command with -a option.  The former
is the cp from 8.22, and the latter is the cp from 8.23.

tamuki@wombat:~/work$ ~/coreutils-8.22/work/bin/cp -a 2014 coreutils-8.22
tamuki@wombat:~/work$ ~/coreutils-8.23/work/bin/cp -a 2014 coreutils-8.23

Here is the result:

tamuki@wombat:~/work$ ls -fliR --fu
.:
total 24576
1828773 drwxr-xr-x  5 tamuki users 4096 Tue Jan  6 14:11:39 2015 ./
1573247 drwx--x--x 65 tamuki users 8192 Tue Jan  6 14:10:09 2015 ../
1828789 drwxr-xr-x  2 tamuki users 4096 Tue Jan  6 13:42:44 2015 2014/
2048303 drwxr-xr-x  2 tamuki users 4096 Tue Jan  6 13:42:44 2015 coreutils-8.22/
2048304 drwxr-xr-x  2 tamuki users 4096 Tue Jan  6 13:42:44 2015 coreutils-8.23/

./2014:
total 57344
1828789 drwxr-xr-x 2 tamuki users 4096 Tue Jan  6 13:42:44 2015 ./
1828773 drwxr-xr-x 5 tamuki users 4096 Tue Jan  6 14:11:39 2015 ../
1828792 -rw-r--r-- 1 tamuki users    8 Fri Jan 24 14:37:45 2014 January
1828810 -rw-r--r-- 1 tamuki users    9 Sat Feb 15 18:05:27 2014 February
1828822 -rw-r--r-- 1 tamuki users    6 Sun Mar 23 11:35:16 2014 March
1828779 -rw-r--r-- 1 tamuki users    6 Fri Apr 18 12:38:28 2014 April
1828797 -rw-r--r-- 1 tamuki users    4 Wed May 14 09:53:07 2014 May
1828782 -rw-r--r-- 1 tamuki users    5 Fri Jun 20 11:24:12 2014 June
1828824 -rw-r--r-- 1 tamuki users    5 Sat Jul 19 08:42:28 2014 July
1828821 -rw-r--r-- 1 tamuki users    7 Tue Aug 12 15:07:39 2014 August
1828781 -rw-r--r-- 1 tamuki users   10 Tue Sep  2 22:40:33 2014 September
1828793 -rw-r--r-- 1 tamuki users    8 Tue Oct 14 13:52:18 2014 October
1828820 -rw-r--r-- 1 tamuki users    9 Fri Nov 28 10:52:36 2014 November
1828823 -rw-r--r-- 1 tamuki users    9 Tue Dec 16 13:24:33 2014 December

./coreutils-8.22:
total 57344
2048303 drwxr-xr-x 2 tamuki users 4096 Tue Jan  6 13:42:44 2015 ./
1828773 drwxr-xr-x 5 tamuki users 4096 Tue Jan  6 14:11:39 2015 ../
2020355 -rw-r--r-- 1 tamuki users    8 Fri Jan 24 14:37:45 2014 January
2020357 -rw-r--r-- 1 tamuki users    9 Sat Feb 15 18:05:27 2014 February
2020358 -rw-r--r-- 1 tamuki users    6 Sun Mar 23 11:35:16 2014 March
2020359 -rw-r--r-- 1 tamuki users    6 Fri Apr 18 12:38:28 2014 April
2020360 -rw-r--r-- 1 tamuki users    4 Wed May 14 09:53:07 2014 May
2020361 -rw-r--r-- 1 tamuki users    5 Fri Jun 20 11:24:12 2014 June
2020362 -rw-r--r-- 1 tamuki users    5 Sat Jul 19 08:42:28 2014 July
2020363 -rw-r--r-- 1 tamuki users    7 Tue Aug 12 15:07:39 2014 August
2020364 -rw-r--r-- 1 tamuki users   10 Tue Sep  2 22:40:33 2014 September
2020365 -rw-r--r-- 1 tamuki users    8 Tue Oct 14 13:52:18 2014 October
2020366 -rw-r--r-- 1 tamuki users    9 Fri Nov 28 10:52:36 2014 November
2020367 -rw-r--r-- 1 tamuki users    9 Tue Dec 16 13:24:33 2014 December

./coreutils-8.23:
total 57344
2048304 drwxr-xr-x 2 tamuki users 4096 Tue Jan  6 13:42:44 2015 ./
1828773 drwxr-xr-x 5 tamuki users 4096 Tue Jan  6 14:11:39 2015 ../
2020368 -rw-r--r-- 1 tamuki users    6 Fri Apr 18 12:38:28 2014 April
2020369 -rw-r--r-- 1 tamuki users   10 Tue Sep  2 22:40:33 2014 September
2020370 -rw-r--r-- 1 tamuki users    5 Fri Jun 20 11:24:12 2014 June
2020371 -rw-r--r-- 1 tamuki users    8 Fri Jan 24 14:37:45 2014 January
2020372 -rw-r--r-- 1 tamuki users    8 Tue Oct 14 13:52:18 2014 October
2020373 -rw-r--r-- 1 tamuki users    4 Wed May 14 09:53:07 2014 May
2020374 -rw-r--r-- 1 tamuki users    9 Sat Feb 15 18:05:27 2014 February
2020375 -rw-r--r-- 1 tamuki users    9 Fri Nov 28 10:52:36 2014 November
2020376 -rw-r--r-- 1 tamuki users    7 Tue Aug 12 15:07:39 2014 August
2020377 -rw-r--r-- 1 tamuki users    6 Sun Mar 23 11:35:16 2014 March
2020378 -rw-r--r-- 1 tamuki users    9 Tue Dec 16 13:24:33 2014 December
2020379 -rw-r--r-- 1 tamuki users    5 Sat Jul 19 08:42:28 2014 July

This affects the result of a creation of tar archive, for example:

tamuki@wombat:~/work$ tar cpJf monthly.tar.xz coreutils-8.22 coreutils-8.23
tamuki@wombat:~/work$ tar tvpJf monthly.tar.xz
drwxr-xr-x tamuki/users      0 2015-01-06 13:42:44 coreutils-8.22/
-rw-r--r-- tamuki/users      8 2014-01-24 14:37:45 coreutils-8.22/January
-rw-r--r-- tamuki/users      9 2014-02-15 18:05:27 coreutils-8.22/February
-rw-r--r-- tamuki/users      6 2014-03-23 11:35:16 coreutils-8.22/March
-rw-r--r-- tamuki/users      6 2014-04-18 12:38:28 coreutils-8.22/April
-rw-r--r-- tamuki/users      4 2014-05-14 09:53:07 coreutils-8.22/May
-rw-r--r-- tamuki/users      5 2014-06-20 11:24:12 coreutils-8.22/June
-rw-r--r-- tamuki/users      5 2014-07-19 08:42:28 coreutils-8.22/July
-rw-r--r-- tamuki/users      7 2014-08-12 15:07:39 coreutils-8.22/August
-rw-r--r-- tamuki/users     10 2014-09-02 22:40:33 coreutils-8.22/September
-rw-r--r-- tamuki/users      8 2014-10-14 13:52:18 coreutils-8.22/October
-rw-r--r-- tamuki/users      9 2014-11-28 10:52:36 coreutils-8.22/November
-rw-r--r-- tamuki/users      9 2014-12-16 13:24:33 coreutils-8.22/December
drwxr-xr-x tamuki/users      0 2015-01-06 13:42:44 coreutils-8.23/
-rw-r--r-- tamuki/users      6 2014-04-18 12:38:28 coreutils-8.23/April
-rw-r--r-- tamuki/users     10 2014-09-02 22:40:33 coreutils-8.23/September
-rw-r--r-- tamuki/users      5 2014-06-20 11:24:12 coreutils-8.23/June
-rw-r--r-- tamuki/users      8 2014-01-24 14:37:45 coreutils-8.23/January
-rw-r--r-- tamuki/users      8 2014-10-14 13:52:18 coreutils-8.23/October
-rw-r--r-- tamuki/users      4 2014-05-14 09:53:07 coreutils-8.23/May
-rw-r--r-- tamuki/users      9 2014-02-15 18:05:27 coreutils-8.23/February
-rw-r--r-- tamuki/users      9 2014-11-28 10:52:36 coreutils-8.23/November
-rw-r--r-- tamuki/users      7 2014-08-12 15:07:39 coreutils-8.23/August
-rw-r--r-- tamuki/users      6 2014-03-23 11:35:16 coreutils-8.23/March
-rw-r--r-- tamuki/users      9 2014-12-16 13:24:33 coreutils-8.23/December
-rw-r--r-- tamuki/users      5 2014-07-19 08:42:28 coreutils-8.23/July

So, I would like to fix the problem as following:

diff --git a/src/copy.c b/src/copy.c
index 632e119..5179ebb 100644
--- a/src/copy.c
+++ b/src/copy.c
@@ -701,7 +701,7 @@ copy_dir (char const *src_name_in, char const *dst_name_in, 
bool new_dst,
   struct cp_options non_command_line_options = *x;
   bool ok = true;
 
-  name_space = savedir (src_name_in, SAVEDIR_SORT_FASTREAD);
+  name_space = savedir (src_name_in, SAVEDIR_SORT_NONE);
   if (name_space == NULL)
     {
       /* This diagnostic is a bit vague because savedir can fail in

Regards,
TAMUKI Shoichi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]