From: nagachika00@... Date: 2015-11-18T16:15:29+00:00 Subject: [ruby-core:71559] [Ruby trunk - Bug #11481] Segmentation fault when thread is killed during `require`. Issue #11481 has been updated by Tomoyuki Chikanaga. Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: DONE r51292, r51439 and r51440 were backported into `ruby_2_2` branch at r52655. ---------------------------------------- Bug #11481: Segmentation fault when thread is killed during `require`. https://bugs.ruby-lang.org/issues/11481#change-54942 * Author: Thomas Wei��schuh * 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: DONE ---------------------------------------- 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/