If you run ast_coredumper --tarball-coredumps in the same directory
as the actual coredump, tar can fail because the link to the
actual coredump becomes recursive. The resulting tarball will
have everything _except_ the coredump (which is usually what
you need)
There's also an issue that the directory name in the tarball
is the same as the coredump so if you extract the tarball the
directory it creates will overwrite the coredump.
So:
* Made the link to the coredump use the absolute path to the
file instead of a relative one. This prevents the recursive
link and allows tar to add the coredump.
* The tarballed directory is now named <coredump>.output instead
of just <coredump> so if you expand the tarball it won't
overwrite the coredump.
Change-Id: I8b3eeb26e09a577c702ff966924bb0a2f9a759ea
# Now iterate over the coredumps and dump the debugging info
for i in ${!COREDUMPS[@]} ; do
- cf=${COREDUMPS[$i]}
+ cf=$(readlink -ne ${COREDUMPS[$i]})
echo "Processing $cf"
cfdir=`dirname ${cf}`
cp -a /${libdir}/asterisk/* ${dest}/${libdir}/asterisk/
cp -a /usr/sbin/asterisk ${dest}/usr/sbin
rm -rf ${tf}
- tar -chzf ${tf} --transform="s/^[.]/${cfname}/" -C ${dest} .
+ tar -chzf ${tf} --transform="s/^[.]/${cfname}.output/" -C ${dest} .
sleep 3
rm -rf ${dest}
echo "Created $tf"