Project

General

Profile

This project is closed and read-only.

Actions

Backport #9828

closed

Segfault instead of stack overflow

Backport #9828: Segfault instead of stack overflow

Added by plexus (Arne Brasseur) over 12 years ago. Updated about 12 years ago.

Status:
Closed
Assignee:
-
[ruby-core:62521]

Description

This causes a segmentation fault on 2.1.1 and 2.1.2, instead of SystemStackError

define_method(:foo) { send(:foo) }
foo

Related issues 1 (0 open1 closed)

Is duplicate of Ruby - Bug #9454: The define_method(:class) segfaultClosedActions

Updated by nobu (Nobuyoshi Nakada) over 12 years ago Actions #1 [ruby-core:62538]

  • Tracker changed from Bug to Backport
  • Project changed from Ruby to 17
  • Description updated (diff)
  • Category deleted (core)

SystemStackError on trunk.

Updated by hsbt (Hiroshi SHIBATA) over 12 years ago Actions #2 [ruby-core:62769]

nobu

Do you know which commits related to this issue?

Updated by nobu (Nobuyoshi Nakada) over 12 years ago Actions #3

The test for it was introduced at r44712, but many changes are in thread*.c and signal.c then.

Updated by nobu (Nobuyoshi Nakada) over 12 years ago Actions #4 [ruby-core:62780]

  • Is duplicate of Bug #9454: The define_method(:class) segfault added

Updated by nagachika (Tomoyuki Chikanaga) about 12 years ago Actions #5 [ruby-core:63254]

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r46468.


merge revision(s) r44712,r44715,r44716,r44722,r44725,r44726,r44753: [Backport #9454] [Backport #9828]

* thread_pthread.c: get current main thread stack size, which may
  be expanded than allocated size at initialization, by rlimit().
  [ruby-core:60113] [Bug #9454]

* thread_pthread.c: rlimit is only available on Linux.
  At least r44712 breaks FreeBSD.
  [ruby-core:60113] [Bug #9454]

* thread_pthread.c (ruby_init_stack, ruby_stack_overflowed_p):
  place get_stack above others to get stack boundary information.
  [ruby-core:60113] [Bug #9454]
Actions

Also available in: PDF Atom