Skip to content

Commit 24d138e

Browse files
committed
ci: TEMP-DEBUG — capture core backtrace for the exit-time segfault (#196)
1 parent b0e275b commit 24d138e

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

.github/workflows/ci-linux.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,27 @@ jobs:
114114
# Use freshly-built mcpp for test (it has --mirror support)
115115
MCPP_FRESH=$(realpath "$(find target -type f -name mcpp -printf '%T@ %p\n' | sort -rn | head -1 | cut -d' ' -f2)")
116116
"$MCPP_FRESH" self config --mirror GLOBAL
117+
# TEMP-DEBUG(#196): exit-time segfault reproduces only on CI —
118+
# capture a core + backtrace, then remove this block.
119+
ulimit -c unlimited
120+
sudo sysctl -w kernel.core_pattern="$PWD/core.%p" || true
121+
set +e
117122
"$MCPP_FRESH" test
123+
rc=$?
124+
set -e
125+
if [[ $rc -ne 0 ]]; then
126+
sudo apt-get install -y -qq gdb >/dev/null 2>&1 || true
127+
core=$(ls -t core.* 2>/dev/null | head -1)
128+
if [[ -n "$core" ]]; then
129+
gdb -batch -ex 'bt full' -ex 'info sharedlibrary' -ex 'thread apply all bt' \
130+
"$MCPP_FRESH" "$core" 2>&1 | head -150
131+
else
132+
echo "no core file found"
133+
fi
134+
ldd "$MCPP_FRESH" || true
135+
readelf -d "$MCPP_FRESH" | head -20 || true
136+
exit $rc
137+
fi
118138
119139
# NOTE: the e2e suite (tests/e2e/run_all.sh) moved to ci-linux-e2e.yml
120140
# so it runs in parallel with this job. The toolchain matrix below no

0 commit comments

Comments
 (0)