mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
gc.c: make the stack overflow detection earlier under s390x
On s390x, TestFiber#test_stack_size fails with SEGV. https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel_zlinux/ruby-master/log/20200205T223421Z.fail.html.gz ``` TestFiber#test_stack_size [/home/chkbuild/build/20200205T223421Z/ruby/test/ruby/test_fiber.rb:356]: pid 23844 killed by SIGABRT (signal 6) (core dumped) | -e:1:in `times': stack level too deep (SystemStackError) | from -e:1:in `rec' | from -e:1:in `block (3 levels) in rec' | from -e:1:in `times' | from -e:1:in `block (2 levels) in rec' | from -e:1:in `times' | from -e:1:in `block in rec' | from -e:1:in `times' | from -e:1:in `rec' | ... 172 levels... | from -e:1:in `block in rec' | from -e:1:in `times' | from -e:1:in `rec' | from -e:1:in `block in <main>' | -e: [BUG] Segmentation fault at 0x0000000000000000 ``` This change tries a similar fix withef64ab917e
and3ddbba84b5
.
This commit is contained in:
parent
92c86e39de
commit
a28c166f78
1 changed files with 7 additions and 0 deletions
7
gc.c
7
gc.c
|
@ -4690,7 +4690,14 @@ stack_check(rb_execution_context_t *ec, int water_mark)
|
|||
#define stack_check(ec, water_mark) FALSE
|
||||
#endif
|
||||
|
||||
#ifdef __s390x__
|
||||
/* Experimentally make the stack overflow detection earlier under s390x
|
||||
* https://rubyci.org/logs/rubyci.s3.amazonaws.com/rhel_zlinux/ruby-master/log/20200205T223421Z.fail.html.gz
|
||||
*/
|
||||
#define STACKFRAME_FOR_CALL_CFUNC 8192
|
||||
#else
|
||||
#define STACKFRAME_FOR_CALL_CFUNC 2048
|
||||
#endif
|
||||
|
||||
MJIT_FUNC_EXPORTED int
|
||||
rb_ec_stack_check(rb_execution_context_t *ec)
|
||||
|
|
Loading…
Reference in a new issue