Skip to content

Commit

Permalink
common: Print debugging info along the backtrace
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
krnowak committed Nov 29, 2023
1 parent 1d7c71e commit 5fe2530
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 8 deletions.
9 changes: 1 addition & 8 deletions build_library/sysext_prod_builder
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,7 @@ create_prod_sysext() {
sudo mv "${workdir}/sysext-build/${name}.raw" "${workdir}/sysext-build/${name}_pkginfo.raw" \
"${workdir}/sysext-build/${name}"_*.txt "${output_dir}"

sudo mkdir -p "${install_root}"/usr/share/flatcar/sysext || {
echo "DEBUG OUTPUT:"
mount
df -h
sudo dmesg
echo "END DEBUG OUTPUT"
exit 1
}
sudo mkdir -p "${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/
Expand Down
33 changes: 33 additions & 0 deletions common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -164,9 +164,40 @@ die_notrace() {
for line in "$@"; do
error "${DIE_PREFIX}${line}"
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
}

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
# Note: not a true semver comparison and build revisions are ignored
cmp_ver() {
Expand Down Expand Up @@ -296,6 +327,8 @@ BUILD_LIBRARY_DIR="${SCRIPTS_DIR}/build_library"
REPO_CACHE_DIR="${REPO_ROOT}/.cache"
REPO_MANIFESTS_DIR="${REPO_ROOT}/.repo/manifests"

rm -f "${SCRIPTS_DIR}/NO_DEBUG_OUTPUT_DELETE_ME" || :

# Source FLATCAR_VERSION_ID from manifest.
if [[ -f "${REPO_MANIFESTS_DIR}/version.txt" ]]; then
# The build id may be provided externally by the build system.
Expand Down

0 comments on commit 5fe2530

Please sign in to comment.