osmith has submitted this change. ( https://gerrit.osmocom.org/c/docker-playground/+/42137?usp=email )
Change subject: ttcn3-asterisk-ims-ue-test: show trace on coredump ......................................................................
ttcn3-asterisk-ims-ue-test: show trace on coredump
Use wrapper_core_bt_on_error.sh to show a backtrace in case asterisk crashes and a coredump is generated. Set CWD to /data, so the core and core.backtrace files end up in the jenkins artifacts.
The result looks like this (forced a segfault in main() to test this): $ cat asterisk-ipv4/core.backtrace [New LWP 18] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/sbin/asterisk -C /etc/asterisk/asterisk.conf -f -g -vvvvv -ddddd'. Program terminated with signal SIGSEGV, Segmentation fault. #0 0x000073908c476ffb in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #0 0x000073908c476ffb in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00005ba2677294dc in memset (__dest=0x0, __ch=1, __len=1) at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:59 #2 main (argc=<optimized out>, argv=0x7fff865fdd28) at asterisk.c:3839
Change-Id: Iee22cbeaa2b2c136c789afc3ebd3ec1be10a6ac7 --- M asterisk-master/Dockerfile M ttcn3-asterisk-ims-ue-test/jenkins.sh 2 files changed, 6 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved
diff --git a/asterisk-master/Dockerfile b/asterisk-master/Dockerfile index 55734ba..ad8c925 100644 --- a/asterisk-master/Dockerfile +++ b/asterisk-master/Dockerfile @@ -89,3 +89,7 @@ RUN cd asterisk/codec_server && \ make "-j$(nproc)" && \ cp cserver /usr/bin/cserver + +COPY --chmod=755 \ + .common/wrapper_core_bt_on_error.sh \ + /usr/bin/wrapper_core_bt_on_error.sh diff --git a/ttcn3-asterisk-ims-ue-test/jenkins.sh b/ttcn3-asterisk-ims-ue-test/jenkins.sh index 0707cb9..0de3d8c 100755 --- a/ttcn3-asterisk-ims-ue-test/jenkins.sh +++ b/ttcn3-asterisk-ims-ue-test/jenkins.sh @@ -57,10 +57,11 @@ -e "DNS_IPADDR=${DNS_IPADDR}" \ --ulimit core=-1 \ -v "$VOL_BASE_DIR/asterisk-${test_config}:/data" \ + -w /data \ --name "${BUILD_TAG}-asterisk" -d \ $DOCKER_ARGS \ "$REPO_USER/asterisk-$IMAGE_SUFFIX" \ - /bin/sh -c "/data/asterisk.sh >/data/asterisk.console.log 2>&1" + /bin/sh -c "wrapper_core_bt_on_error.sh /data/asterisk.sh >/data/asterisk.console.log 2>&1" }
# Start docker container with testsuite in foreground