Hi:
I was battling a bug on tar 1.27, built tar 1.28 and it's still there.
The tar spec says two (or more) empty 512 byte chunks at the end of a tar.
Various implementation put in different amounts.
It looks like appending when there are only two empty blocks at the end causes corruption.
Strangely enough, zero empty blocks seems to work reliably.
Four empty blocks works too.
Here is a test case that clearly fails:
#!/bin/sh
# This demonstrates that GNU tar 1.28 does not handle well when only 2 empty blocks terminate an archive
echo a>a
echo b>b
echo c>c
echo d>d
echo e>e
echo f>f
echo g>g
echo h>h
echo i>i
echo -e '\nCreating archive with a, b, c'
tar -v -cf data a b c
tar -v -tf data
echo -e '\nReducing empty blocks at the end'
#truncate data --size 3072 # zero empty blocks
truncate data --size 4096 # two empty blocks
#truncate data --size 5120 # four empty blocks
ls -l data
tar -v -tf data
echo -e '\nAdding d, e, f'
tar -v -rf data d e f
tar -v -tf data
echo -e '\nAdding g, h, i'
tar -v -rf data g h i
tar -v -tf data