]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
ast_coredumper: Fix issues with naming
authorGeorge Joseph <gjoseph@digium.com>
Fri, 28 Aug 2020 14:34:09 +0000 (08:34 -0600)
committerFriendly Automation <jenkins2@gerrit.asterisk.org>
Mon, 31 Aug 2020 22:08:55 +0000 (17:08 -0500)
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

contrib/scripts/ast_coredumper

index ee62ab8107a2b07e0cf0a2c66035de69234d2f7c..9d9f8bc8fb3d70223ddc512d1c85dfaf21cd5d1c 100755 (executable)
@@ -478,7 +478,7 @@ tail -n +${ss} $0 >$gdbinit
 
 # 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}`
@@ -520,7 +520,7 @@ for i in ${!COREDUMPS[@]} ; do
                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"