libc 2.31/i686: operation not permitted for preserving timestamps

Elan Ruusamäe glen at pld-linux.org
Mon Mar 16 22:46:19 CET 2020


i've got reports that cp -a (or just cp --preserve=timestamps) fails on 
i686 and glibc 2.31


from strace i've grabbed such error:


        utimensat_time64(4, NULL, [{tv_sec=1584393052, tv_nsec=0} /* 
2020-03-16T23:10:52+0200 */, {tv_sec=1584393052, tv_nsec=0} /* 
2020-03-16T23:10:52+0200 */], 0) = -1 EPERM (Operation not permitted)


i believe it's related to large inode on fd=4 and glibc just reports it 
incorrectly


```
+ ls -ldi locale-archive 
/var/tmp/glibc-localedb-2.30.0-root-root/usr/lib/locale
     790264 drwxr-xr-x 2 root root     4096 Mar 16  2020 
/var/tmp/glibc-localedb-2.30.0-root-root/usr/lib/locale
4379091441 -rw-r--r-- 1 root root 13754080 Mar 16  2020 locale-archive
+ cp '--preserve=timestamps' locale-archive 
/var/tmp/glibc-localedb-2.30.0-root-root/usr/lib/locale
cp: preserving times for 
'/var/tmp/glibc-localedb-2.30.0-root-root/usr/lib/locale/locale-archive': 
Operation not permitted

```



More information about the pld-devel-en mailing list