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

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

Status changed from Open to Closed
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED

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

* Author: Thomas Weiテ殱chuh
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED
----------------------------------------
One of a library used by us executes `open` from `uri-open` in multiple thread in parallel under a timeout.
`open-uri` implicitly `require`s `net/http`. When the import machinery is killed 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 which 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 triggering 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)


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

In This Thread

Prev Next