common: Print debugging info along the backtrace

Recently we had some problems with read-only filesystems, that pop up
in different places. It may be easier to catch if the debugging info
is printed in an error case instead of just one specific location.
This commit is contained in:
Krzesimir Nowak 2023-11-29 08:39:52 +01:00
parent e3f817aef5
commit cc60a22da8
2 changed files with 34 additions and 8 deletions

View File

@ -67,14 +67,7 @@ create_prod_sysext() {
sudo mv "${workdir}/sysext-build/${name}.raw" "${workdir}/sysext-build/${name}_pkginfo.raw" \ sudo mv "${workdir}/sysext-build/${name}.raw" "${workdir}/sysext-build/${name}_pkginfo.raw" \
"${workdir}/sysext-build/${name}"_*.txt "${output_dir}" "${workdir}/sysext-build/${name}"_*.txt "${output_dir}"
sudo mkdir -p "${install_root}"/usr/share/flatcar/sysext || { sudo mkdir -p "${install_root}"/usr/share/flatcar/sysext
echo "DEBUG OUTPUT:"
mount
df -h
sudo dmesg
echo "END DEBUG OUTPUT"
exit 1
}
sudo install -m 0644 -D "${output_dir}/${name}.raw" "${install_root}"/usr/share/flatcar/sysext/ sudo install -m 0644 -D "${output_dir}/${name}.raw" "${install_root}"/usr/share/flatcar/sysext/
sudo mkdir -p "${install_root}"/etc/extensions/ sudo mkdir -p "${install_root}"/etc/extensions/

View File

@ -164,9 +164,40 @@ die_notrace() {
for line in "$@"; do for line in "$@"; do
error "${DIE_PREFIX}${line}" error "${DIE_PREFIX}${line}"
done done
if [[ ! -e "${SCRIPTS_DIR}/NO_DEBUG_OUTPUT_DELETE_ME" ]]; then
error "${DIE_PREFIX}!!!!!!!!!!!!!!!!!!!!!!!!!"
error "${DIE_PREFIX}!! BEGIN DEBUG OUTPUT: !!"
error "${DIE_PREFIX}!!!!!!!!!!!!!!!!!!!!!!!!!"
error
error "${DIE_PREFIX}== MOUNT =="
error "${DIE_PREFIX}==========="
error_command_output "${DIE_PREFIX}" mount
error
error "${DIE_PREFIX}== DF =="
error "${DIE_PREFIX}========"
error_command_output "${DIE_PREFIX}" df -h
error
error "${DIE_PREFIX}== DMESG =="
error "${DIE_PREFIX}==========="
error_command_output "${DIE_PREFIX}" sudo dmesg
error
error "${DIE_PREFIX}!!!!!!!!!!!!!!!!!!!!!!!"
error "${DIE_PREFIX}!! END DEBUG OUTPUT: !!"
error "${DIE_PREFIX}!!!!!!!!!!!!!!!!!!!!!!!"
touch "${SCRIPTS_DIR}/NO_DEBUG_OUTPUT_DELETE_ME"
fi
exit 1 exit 1
} }
error_command_output() {
local prefix=${1}; shift
# rest are a command to execute
local REPLY
while read -r; do
error "${prefix}${REPLY}"
done < <("${@}" 2>&1)
}
# Simple version comparison routine # Simple version comparison routine
# Note: not a true semver comparison and build revisions are ignored # Note: not a true semver comparison and build revisions are ignored
cmp_ver() { cmp_ver() {
@ -296,6 +327,8 @@ BUILD_LIBRARY_DIR="${SCRIPTS_DIR}/build_library"
REPO_CACHE_DIR="${REPO_ROOT}/.cache" REPO_CACHE_DIR="${REPO_ROOT}/.cache"
REPO_MANIFESTS_DIR="${REPO_ROOT}/.repo/manifests" REPO_MANIFESTS_DIR="${REPO_ROOT}/.repo/manifests"
rm -f "${SCRIPTS_DIR}/NO_DEBUG_OUTPUT_DELETE_ME" || :
# Source FLATCAR_VERSION_ID from manifest. # Source FLATCAR_VERSION_ID from manifest.
if [[ -f "${REPO_MANIFESTS_DIR}/version.txt" ]]; then if [[ -f "${REPO_MANIFESTS_DIR}/version.txt" ]]; then
# The build id may be provided externally by the build system. # The build id may be provided externally by the build system.