Run rb_print_backtrace first on ruby_on_ci

Unfortunately we couldn't see a C backtrace with the previous commit
http://ci.rvm.jp/results/trunk-random2@phosphorus-docker/3272697.
This commit is contained in:
Takashi Kokubun 2020-11-26 20:35:24 -08:00
Родитель 4dbf6f1e51
Коммит 69e77e81dc
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 6FFC433B12EE23DD
1 изменённых файлов: 7 добавлений и 1 удалений

8
gc.c
Просмотреть файл

@ -4598,7 +4598,13 @@ static void
read_barrier_signal(int sig, siginfo_t * info, void * data)
{
extern int ruby_on_ci;
if (ruby_on_ci) { // read_barrier_handler may crash. Report a backtrace first on CI.
if (ruby_on_ci) { // `read_barrier_handler` may crash. Report backtraces first on CI.
# if HAVE_BACKTRACE // `rb_bug_without_die` may crash on `control_frame_dump`. Report a C backtrace first.
fprintf(stderr, "-- C level backtrace (read_barrier_signal) "
"-------------------------------------------\n");
rb_print_backtrace();
fprintf(stderr, "\n");
# endif
extern void rb_bug_without_die(const char *fmt, ...);
rb_bug_without_die("died with read_barrier_signal installed");
}