From e32815dddb3170fbe1f88567edd6b867d8681690 Mon Sep 17 00:00:00 2001 From: George Joseph Date: Fri, 28 Aug 2020 08:34:09 -0600 Subject: [PATCH] ast_coredumper: Fix issues with naming 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 .output instead of just so if you expand the tarball it won't overwrite the coredump. Change-Id: I8b3eeb26e09a577c702ff966924bb0a2f9a759ea --- contrib/scripts/ast_coredumper | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/scripts/ast_coredumper b/contrib/scripts/ast_coredumper index ee62ab8107..9d9f8bc8fb 100755 --- a/contrib/scripts/ast_coredumper +++ b/contrib/scripts/ast_coredumper @@ -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"