[ruby-core:70682] [Ruby trunk - Bug #11481] Segmentation fault when thread is killed during `require`.

From: nagachika00@...
Date: 2015-09-08 04:18:28 UTC
List: ruby-core #70682
Issue #11481 has been updated by Tomoyuki Chikanaga.


[But #11404] seems the similar issue and fixed on trunk.

----------------------------------------
Bug #11481: Segmentation fault when thread is killed during `require`.
https://bugs.ruby-lang.org/issues/11481#change-54076

* Author: Thomas Wei=C3=9Fschuh
* Status: Open
* Priority: Normal
* Assignee:=20
* ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
One of a library used by us executes `open` from `uri-open` in multiple thr=
ead in parallel under a timeout.
`open-uri` implicitly `require`s `net/http`. When the import machinery is k=
illed during performing an import this will lead to a segfault further down=
 the line.

I readily accept that it is very poor practice to do `require` in a loop wh=
ich is suspect to uncatchable exceptions,
But unfortunately the user has no idea that `require`s are performed.

The test.rb script from the attachements triggers this bug. You may want to=
 spawn less threads. The high number was chosen to improve the rate of trig=
gering the bug.

We tested this on ruby 2.1.5p273 as shipped with debian Jessie. And ruby 2.=
2.3p173 from ArchLinux.

---Files--------------------------------
backtrace (255 KB)
test.rb (231 Bytes)
backtrace.symbols (122 KB)


--=20
https://bugs.ruby-lang.org/

In This Thread

Prev Next