summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorZhidao HONG <z.hong@f5.com>2022-07-28 11:00:15 +0800
committerZhidao HONG <z.hong@f5.com>2022-07-28 11:00:15 +0800
commit2bd4a455278dbce756c1dc8be07515f73d611e3b (patch)
treedc566608191d92d031500d9bba9b49c5550e4788
parent9b4b4925b38333b8d7795331d27db9811f43d72a (diff)
downloadunit-2bd4a455278dbce756c1dc8be07515f73d611e3b.tar.gz
unit-2bd4a455278dbce756c1dc8be07515f73d611e3b.tar.bz2
Ruby: fixed segfault on SIGTERM signal.
This closes #562 issue on GitHub.
Diffstat (limited to '')
-rw-r--r--docs/changes.xml6
-rw-r--r--src/ruby/nxt_ruby.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/docs/changes.xml b/docs/changes.xml
index 158f98e9..3ff434aa 100644
--- a/docs/changes.xml
+++ b/docs/changes.xml
@@ -81,6 +81,12 @@ force SCRIPT_NAME in Ruby to always be an empty string.
</para>
</change>
+<change type="bugfix">
+<para>
+the ruby application process could crash if it's interrupted by SIGTERM signal.
+</para>
+</change>
+
</changes>
diff --git a/src/ruby/nxt_ruby.c b/src/ruby/nxt_ruby.c
index 4df77499..07d02dce 100644
--- a/src/ruby/nxt_ruby.c
+++ b/src/ruby/nxt_ruby.c
@@ -377,8 +377,8 @@ nxt_ruby_start(nxt_task_t *task, nxt_process_data_t *data)
}
}
- rc = (intptr_t) rb_thread_call_without_gvl(nxt_ruby_unit_run, unit_ctx,
- nxt_ruby_ubf, unit_ctx);
+ rc = (intptr_t) rb_thread_call_without_gvl2(nxt_ruby_unit_run, unit_ctx,
+ nxt_ruby_ubf, unit_ctx);
if (nxt_ruby_hook_procs != Qnil) {
rb_protect(nxt_ruby_hook_call, nxt_rb_on_thread_shutdown, &state);