Strange problem that hopefully I will be able to get some wisdom about. On download0.savannah.gnu.org running an older Trisquel (which I need to upgrade but life and time keeps everything from happening all at once) with GNU tar 1.27.1 installed:
$ tar --version tar (GNU tar) 1.27.1 I am having an odd problem with tar. I made a tar archive of a dozen webm files to copy as a single file from a different Ubuntu system over to download0 where I tried to un-tar them. For $REASONS I created and copied the tar file like this. rwplocal@download0:/srv/audio-video/rwptmp$ ssh -n $user@$ipaddr tar cvf - audio-video-rms > audio-video-rms.tar That worked. It created a 7.4GB tar file of a dozen webm, ogz, and html files. Let's try to untar them. I am showing t here but x is the same. rwplocal@download0:/srv/audio-video/rwptmp$ tar tvf audio-video-rms.tar ...hangs forever...^C rwplocal@download0:/srv/audio-video/rwptmp$ tar tvf - < audio-video-rms.tar ...hangs forever...^C But I can copy the file. I used "pv" just to get a progress of the copy since it is quite a large file. But cp and pv and cat and all of those utilities copy the file just fine no problem. And I can wc the file. All no problem. rwplocal@download0:/srv/audio-video/rwptmp$ pv audio-video-rms.tar > junk.tar All attempts failed. Then tried "bsdtar" and that worked perfectly. No problems at all. So got the task done with bsdtar and that completed the task that was needed to be done. rwplocal@download0:/srv/audio-video/rwptmp$ bsdtar tvf audio-video-rms.tar ...all good...no problems... rwplocal@download0:/srv/audio-video/rwptmp$ bsdtar xvf audio-video-rms.tar ...all good...no problems... But what about GNU tar? I am still looking at the problem. I rebooted the system so that it would be fresh. No change in behavior after the reboot. The system has one cpu core and 2GB of RAM plus 2GB of swap. Linux memory overcommit is disabled. The /srv/audio-video directory holding this data is an NFS mount. All of the data is on networked storage. There isn't enough local space to hold a file of this size. Therefore I can't copy it to local storage to see if NFS is somehow involved in the problem. However note that bsdtar worked perfectly. Along the way I decided to try try the operation as root and when running as root it untars okay no problem. root@download0:/srv/audio-video# tar tvf audio-video-rms.tar Then I ran strace on it. First lets strace as me again. rwplocal@download0:/srv/audio-video/rwptmp$ strace -v -f -e futex tar tvf audio-video-rms.tar futex(0x7ffde0fae3a0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7f5365cde840) = -1 EAGAIN (Resource temporarily unavailable) futex(0x7f5364a611c0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0x7f5363bcf9d0, FUTEX_WAIT, 2346, NULLProcess 2346 attached ) = 0 [pid 2345] futex(0x7f536568f3d0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 [pid 2346] +++ exited with 0 +++ futex(0x7f536484fb68, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0x7f536568d108, FUTEX_WAIT_PRIVATE, 2, NULL^CProcess 2345 detached <detached ...> So then I created a small tar file and copied it to the same directory I was using before. rwplocal@download0:~$ tar cvf junk.tar .bashrc .bashrc rwplocal@download0:~$ tar tvf junk.tar -rw-r--r-- rwplocal/rwplocal 3635 2016-08-15 17:40 .bashrc rwplocal@download0:~$ mv junk.tar /srv/audio-video/rwptmp/ rwplocal@download0:~$ cd /srv/audio-video/rwptmp/ rwplocal@download0:/srv/audio-video/rwptmp$ tar tvf junk.tar -rw-r--r-- rwplocal/rwplocal 3635 2016-08-15 17:40 .bashrc All of that worked okay. rwplocal@download0:/srv/audio-video/rwptmp$ strace -v -f -e futex tar tvf junk.tar -rw-r--r-- rwplocal/rwplocal 3635 2016-08-15 17:40 .bashrc +++ exited with 0 +++ But the small file does not use futex(). So it seems that it needs a larger file than my ~/.bashrc file to trigger this behavior? Something changes when the file is large? Let's strace as root on this file. root@download0:/srv/audio-video/rwptmp# strace -v -f -e futex tar tvf audio-video-rms.tar futex(0x7fff3a4eb9b0, FUTEX_WAIT_BITSET_PRIVATE|FUTEX_CLOCK_REALTIME, 1, NULL, 7fa8a2bb6840) = -1 EAGAIN (Resource temporarily unavailable) futex(0x7fa8a16691c0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0x7fa8a07d79d0, FUTEX_WAIT, 5329, NULLProcess 5329 attached ) = 0 [pid 5329] +++ exited with 0 +++ futex(0x7fa8a25673d0, FUTEX_WAKE_PRIVATE, 2147483647) = 0 futex(0x7fa8a1457b68, FUTEX_WAKE_PRIVATE, 2147483647) = 0 drwxrwxr-x javisep/javisep 0 2020-11-10 03:21 audio-video-rms/ -rw-r--r-- javisep/javisep 352727029 2020-11-09 08:22 audio-video-rms/rms-2019-07-15-frankfurt-are-we-facing-surveillance-like-in-china.webm -rw-r--r-- javisep/javisep 219297840 2020-11-09 05:09 audio-video-rms/rms-2017-01-30-kalamazoo-computing-freedom-and-privacy.webm -rw-r--r-- javisep/javisep 485053006 2020-11-09 08:13 audio-video-rms/rms-2019-05-14-zurich-free-software-ethics-and-freedom-in-a-digital-age.webm -rw-r--r-- javisep/javisep 825962517 2020-11-10 03:18 audio-video-rms/rms-2017-08-17-boston-free-software-freedom-privacy-sovereignty.webm -rw-r--r-- javisep/javisep 619335203 2020-11-09 07:51 audio-video-rms/rms-2019-02-11-montana-free-software-and-your-freedom.webm -rw-r--r-- javisep/javisep 102967 2020-11-10 03:18 audio-video-rms/index.html -rw-r--r-- javisep/javisep 551051435 2020-11-09 05:33 audio-video-rms/rms-2017-05-29-belohorizonte-a-free-digital-society-portuguese.webm -rw-r--r-- javisep/javisep 306494617 2020-11-09 05:18 audio-video-rms/rms-2017-02-14-cologne-free-software-your-freedom-your-privacy.webm -rw-r--r-- javisep/javisep 383723086 2020-11-09 08:01 audio-video-rms/rms-2019-05-09-copenhagen-copyright-freedom-and-privacy.webm -rw-r--r-- javisep/javisep 636890825 2020-11-09 05:52 audio-video-rms/rms-2017-05-29-belohorizonte-a-free-digital-society.webm -rw-r--r-- javisep/javisep 2730947903 2020-11-09 07:07 audio-video-rms/rms-2017-10-10-timisora-free-software-and-your-freedom.webm -rw-r--r-- javisep/javisep 653460425 2020-11-10 03:30 audio-video-rms/rms-2019-03-29-rennes-le-logiciel-libre-face-a-informatique.ogv -rw-r--r-- javisep/javisep 148072556 2020-11-09 07:30 audio-video-rms/rms-2018-06-04-pato-branco-speech-interview.webm +++ exited with 0 +++ And so I have this issue that I am hoping someone knowledgeable about GNU tar will be able to explain and help me address whatever the issue is on that system. Obviously it is working elsewhere. I can't imagine why tar would be calling futex(). Why futex() is blocking. Or what changes to call futex() only when it is a larger sized file. Or why it works when being run as root. I know why bsdtar is working. :-) Thanks! Bob