mirror of https://github.com/citusdata/citus.git
print stack trace from core files instead of uploading them (#6539)
Prints stack trace from core files instead of uploading them.pull/6475/head
parent
d307e342a2
commit
80686907a3
|
@ -6,7 +6,7 @@ orbs:
|
||||||
parameters:
|
parameters:
|
||||||
image_suffix:
|
image_suffix:
|
||||||
type: string
|
type: string
|
||||||
default: '-vcbba174'
|
default: '-v7e4468f'
|
||||||
pg13_version:
|
pg13_version:
|
||||||
type: string
|
type: string
|
||||||
default: '13.9'
|
default: '13.9'
|
||||||
|
@ -166,13 +166,9 @@ jobs:
|
||||||
fi
|
fi
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy pg_upgrade logs for newData dir'
|
name: 'Copy pg_upgrade logs for newData dir'
|
||||||
|
@ -185,9 +181,6 @@ jobs:
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save regressions'
|
name: 'Save regressions'
|
||||||
path: src/test/regress/regression.diffs
|
path: src/test/regress/regression.diffs
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save pg_upgrade logs for newData dir'
|
name: 'Save pg_upgrade logs for newData dir'
|
||||||
path: /tmp/pg_upgrade_newData_logs
|
path: /tmp/pg_upgrade_newData_logs
|
||||||
|
@ -270,17 +263,10 @@ jobs:
|
||||||
find src/test/regress/tmp_citus_test/ -name "logfile_*" -exec cp -t src/test/regress/tmp_citus_test/logfiles/ {} +
|
find src/test/regress/tmp_citus_test/ -name "logfile_*" -exec cp -t src/test/regress/tmp_citus_test/logfiles/ {} +
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save logfiles'
|
name: 'Save logfiles'
|
||||||
path: src/test/regress/tmp_citus_test/logfiles
|
path: src/test/regress/tmp_citus_test/logfiles
|
||||||
|
@ -364,20 +350,13 @@ jobs:
|
||||||
fi
|
fi
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save regressions'
|
name: 'Save regressions'
|
||||||
path: src/test/regress/regression.diffs
|
path: src/test/regress/regression.diffs
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- codecov/upload:
|
- codecov/upload:
|
||||||
flags: 'test_<< parameters.pg_major >>,upgrade'
|
flags: 'test_<< parameters.pg_major >>,upgrade'
|
||||||
- run:
|
- run:
|
||||||
|
@ -443,13 +422,9 @@ jobs:
|
||||||
fi
|
fi
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save regressions'
|
name: 'Save regressions'
|
||||||
|
@ -460,9 +435,6 @@ jobs:
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save results'
|
name: 'Save results'
|
||||||
path: src/test/regress/results/
|
path: src/test/regress/results/
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save coordinator log'
|
name: 'Save coordinator log'
|
||||||
path: src/test/regress/tmp_check/master/log
|
path: src/test/regress/tmp_check/master/log
|
||||||
|
@ -534,20 +506,13 @@ jobs:
|
||||||
gosu circleci make -C src/test/<< parameters.suite >> << parameters.make >>
|
gosu circleci make -C src/test/<< parameters.suite >> << parameters.make >>
|
||||||
no_output_timeout: 2m
|
no_output_timeout: 2m
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save tap logs'
|
name: 'Save tap logs'
|
||||||
path: /home/circleci/project/src/test/<< parameters.suite >>/tmp_check/log
|
path: /home/circleci/project/src/test/<< parameters.suite >>/tmp_check/log
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- codecov/upload:
|
- codecov/upload:
|
||||||
flags: 'test_<< parameters.pg_major >>,tap_<< parameters.suite >>_<< parameters.make >>'
|
flags: 'test_<< parameters.pg_major >>,tap_<< parameters.suite >>_<< parameters.make >>'
|
||||||
when: always
|
when: always
|
||||||
|
@ -697,13 +662,9 @@ jobs:
|
||||||
fi
|
fi
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- run:
|
- run:
|
||||||
name: 'Copy coredumps'
|
name: 'Print stack traces'
|
||||||
command: |
|
command: |
|
||||||
mkdir -p /tmp/core_dumps
|
./ci/print_stack_trace.sh
|
||||||
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
|
||||||
if [ ${#core_files[@]} -gt 0 ]; then
|
|
||||||
cp "${core_files[@]}" /tmp/core_dumps
|
|
||||||
fi
|
|
||||||
when: on_fail
|
when: on_fail
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save regressions'
|
name: 'Save regressions'
|
||||||
|
@ -714,9 +675,6 @@ jobs:
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save results'
|
name: 'Save results'
|
||||||
path: src/test/regress/results/
|
path: src/test/regress/results/
|
||||||
- store_artifacts:
|
|
||||||
name: 'Save core dumps'
|
|
||||||
path: /tmp/core_dumps
|
|
||||||
- store_artifacts:
|
- store_artifacts:
|
||||||
name: 'Save coordinator log'
|
name: 'Save coordinator log'
|
||||||
path: src/test/regress/tmp_check/master/log
|
path: src/test/regress/tmp_check/master/log
|
||||||
|
|
|
@ -373,3 +373,7 @@ This script checks and fixes issues with `.gitignore` rules:
|
||||||
This script checks the order of the GUCs defined in `shared_library_init.c`.
|
This script checks the order of the GUCs defined in `shared_library_init.c`.
|
||||||
To solve this failure, please check `shared_library_init.c` and make sure that the GUC
|
To solve this failure, please check `shared_library_init.c` and make sure that the GUC
|
||||||
definitions are in alphabetical order.
|
definitions are in alphabetical order.
|
||||||
|
|
||||||
|
## `print_stack_trace.sh`
|
||||||
|
|
||||||
|
This script prints stack traces for failed tests, if they left core files.
|
||||||
|
|
|
@ -16,3 +16,4 @@ ci/disallow_hash_comments_in_spec_files.sh
|
||||||
ci/disallow_long_changelog_entries.sh
|
ci/disallow_long_changelog_entries.sh
|
||||||
ci/normalize_expected.sh
|
ci/normalize_expected.sh
|
||||||
ci/fix_gitignore.sh
|
ci/fix_gitignore.sh
|
||||||
|
ci/printstack_trace.sh
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
source ci/ci_helpers.sh
|
||||||
|
|
||||||
|
# find all core files
|
||||||
|
core_files=( $(find . -type f -regex .*core.*\d*.*postgres) )
|
||||||
|
if [ ${#core_files[@]} -gt 0 ]; then
|
||||||
|
# print stack traces for the core files
|
||||||
|
for core_file in "${core_files[@]}"
|
||||||
|
do
|
||||||
|
# set print frame-arguments all: show all scalars + structures in the frame
|
||||||
|
# set print pretty on: show structures in indented mode
|
||||||
|
# set print addr off: do not show pointer address
|
||||||
|
# thread apply all bt full: show stack traces for all threads
|
||||||
|
gdb --batch \
|
||||||
|
-ex "set print frame-arguments all" \
|
||||||
|
-ex "set print pretty on" \
|
||||||
|
-ex "set print addr off" \
|
||||||
|
-ex "thread apply all bt full" \
|
||||||
|
postgres "${core_file}"
|
||||||
|
done
|
||||||
|
fi
|
Loading…
Reference in New Issue