Skip to content

Commit 2996864

Browse files
committed
MDBF-814 for install/upgrade save logs on failure
This applies to Columnstore logs, data core files also saved. Also saves the systemd journal of applicable services. Being an trap ERR it will execute only if an err occurs.
1 parent 305949e commit 2996864

File tree

3 files changed

+43
-19
lines changed

3 files changed

+43
-19
lines changed

master-libvirt/master.cfg

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,29 +185,47 @@ def getMajorVersionStep():
185185
)
186186

187187

188+
def getSaveArtifactsStep():
189+
return steps.DirectoryUpload(
190+
name="save mariadb log files",
191+
doStepIf=hasFailed,
192+
workersrc="/home/buildbot/logs/",
193+
masterdest=util.Interpolate(
194+
"/srv/buildbot/packages/"
195+
+ "%(prop:tarbuildnum)s"
196+
+ "/logs/"
197+
+ "%(prop:buildername)s"
198+
),
199+
)
200+
201+
188202
# FACTORY
189203

190204
## f_deb_install
191205
f_deb_install = util.BuildFactory()
192206
f_deb_install.addStep(getScript("deb-install.sh"))
193207
f_deb_install.addStep(getDebInstallStep())
208+
f_deb_install.addStep(getSaveArtifactsStep())
194209

195210
## f_deb_upgrade
196211
f_deb_upgrade = util.BuildFactory()
197212
f_deb_upgrade.addStep(getMajorVersionStep())
198213
f_deb_upgrade.addStep(getScript("deb-upgrade.sh"))
199214
f_deb_upgrade.addStep(getDebUpgradeStep())
215+
f_deb_upgrade.addStep(getSaveArtifactsStep())
200216

201217
## f_rpm_install
202218
f_rpm_install = util.BuildFactory()
203219
f_rpm_install.addStep(getScript("rpm-install.sh"))
204220
f_rpm_install.addStep(getRpmInstallStep())
221+
f_rpm_install.addStep(getSaveArtifactsStep())
205222

206223
## f_rpm_upgrade
207224
f_rpm_upgrade = util.BuildFactory()
208225
f_rpm_upgrade.addStep(getMajorVersionStep())
209226
f_rpm_upgrade.addStep(getScript("rpm-upgrade.sh"))
210227
f_rpm_upgrade.addStep(getRpmUpgradeStep())
228+
f_rpm_upgrade.addStep(getSaveArtifactsStep())
211229

212230
####### WORKERS and BUILDERS
213231

scripts/bash_lib.sh

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# Include with:
55
# . ./bash_lib.sh
66

7+
trap save_failure_logs ERR
8+
79
bb_log_info() {
810
set +x
911
echo >&1 "INFO: $*"
@@ -437,22 +439,33 @@ upgrade_test_type() {
437439
esac
438440
}
439441

440-
get_columnstore_logs() {
442+
save_failure_logs() {
443+
trap "" ERR
444+
local logdir=../logs/
445+
local logfile=$logdir/$test_mode.log
446+
mkdir -p $logdir
441447
if [[ $test_mode == "columnstore" ]]; then
442448
bb_log_info "storing Columnstore logs in columnstore_logs"
443449
set +ex
444-
# It is done in such a weird way, because Columnstore currently makes its logs hard to read
445-
# //TEMP this is fragile and weird (test that /var/log/mariadb/columnstore exist)
446-
for f in $(sudo ls /var/log/mariadb/columnstore | xargs); do
447-
f=/var/log/mariadb/columnstore/$f
448-
echo "----------- $f -----------" >>/home/buildbot/columnstore_logs
449-
sudo cat "$f" 1>>/home/buildbot/columnstore_logs 2>&1
450+
for f in $(sudo find /tmp/columnstore_tmp_files /var/log/mariadb/columnstore -type f); do
451+
echo "----------- $f -----------" >>"$logfile"
452+
sudo cat "$f" 1>>"$logfile" 2>&1
450453
done
451-
for f in /tmp/columnstore_tmp_files/*; do
452-
echo "----------- $f -----------" >>/home/buildbot/columnstore_logs
453-
sudo cat "$f" | sudo tee -a /home/buildbot/columnstore_logs 2>&1
454+
for s in mariadb.service mcs-controllernode.service mcs-ddlproc.service mcs-dmlproc.service \
455+
mcs-primproc.service [email protected]; do
456+
echo "----------- $s -----------" >>"$logfile"
457+
sudo journalctl -u "$s" | tee -a "$logfile" 2>&1
454458
done
459+
if [ -d /var/lib/columnstore ]; then
460+
tar -Jcvf $logdir/columnstore.tar.bz2 /var/lib/columnstore
461+
fi
455462
fi
463+
echo "----------- mariadb.service -----------" >>"$logfile"
464+
sudo journalctl -u mariadb.service | tee -a "$logfile" 2>&1
465+
if [ -f "$logfile" ]; then
466+
bzip2 "$logfile"
467+
fi
468+
sudo find /var/lib/systemd/coredump/ -type -f -exec mv {} $logdir \;
456469
}
457470

458471
check_mariadb_server_and_create_structures() {
@@ -468,10 +481,7 @@ check_mariadb_server_and_create_structures() {
468481
sudo mariadb -e "CREATE PROCEDURE db.p() SELECT * FROM db.v_merge"
469482
sudo mariadb -e "CREATE FUNCTION db.f() RETURNS INT DETERMINISTIC RETURN 1"
470483
if [[ $test_mode == "columnstore" ]]; then
471-
if ! sudo mariadb -e "CREATE TABLE db.t_columnstore(a INT, c VARCHAR(8)) ENGINE=ColumnStore; SHOW CREATE TABLE db.t_columnstore; INSERT INTO db.t_columnstore VALUES (1,'foo'),(2,'bar')"; then
472-
get_columnstore_logs
473-
exit 1
474-
fi
484+
sudo mariadb -e "CREATE TABLE db.t_columnstore(a INT, c VARCHAR(8)) ENGINE=ColumnStore; SHOW CREATE TABLE db.t_columnstore; INSERT INTO db.t_columnstore VALUES (1,'foo'),(2,'bar')"
475485
fi
476486
set +e
477487
}
@@ -495,10 +505,7 @@ check_mariadb_server_and_verify_structures() {
495505
sudo mariadb -e "SELECT db.f()"
496506

497507
if [[ $test_mode == "columnstore" ]]; then
498-
if ! sudo mariadb -e "SELECT * FROM db.t_columnstore; INSERT INTO db.t_columnstore VALUES (3,'foo'),(4,'bar')"; then
499-
get_columnstore_logs
500-
exit 1
501-
fi
508+
sudo mariadb -e "SELECT * FROM db.t_columnstore; INSERT INTO db.t_columnstore VALUES (3,'foo'),(4,'bar')"
502509
fi
503510
set +e
504511
}

scripts/deb-upgrade.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ fi
125125
if [[ $systemdCapability == "yes" ]]; then
126126
if ! sudo systemctl status mariadb --no-pager; then
127127
sudo journalctl -xe --no-pager
128-
get_columnstore_logs
129128
bb_log_err "mariadb service didn't start properly after installation"
130129
exit 1
131130
fi

0 commit comments

Comments
 (0)