Project

General

Profile

Actions

Bug #18650

closed

C Extensions Can Segmentation Fault on Ruby 2.7 Compiled with --with-jemalloc and --enabled-shared

Added by eviljoel (evil joel) about 2 years ago. Updated about 2 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.5p203 (2021-11-24 revision f69aeb8314) [x86_64-linux]
[ruby-core:107982]

Description

Greetings,

I've encountered a segmentation fault using the EventMachine gem on Ruby 2.7.5 compiled with configuration options --with-jemalloc and --enabled-shared on Ubuntu. This error is actually fixed in Ruby 3.1.0 via this commit: https://github.com/ruby/ruby/commit/737e4432b978eb4b9f5b10fb6cc6d9c883a5d17a and this commit https://github.com/ruby/ruby/commit/82d425515d2c1a14f964fc7a571e272f933bba7a . It has also recently been back ported to 3.0 but has not yet been released. I was wondering if this fix can be back ported to Ruby 2.7? It would be nice to not have a Linux specific condition in our build scripts to work around this issue. (Updating major Ruby versions is a lot of work for our application.)

I've attached two Dockerfiles for demonstration:

  • eventMachineSegmentationFault-ruby275-20220318.Dockerfile - Creates the segmentation fault using Ruby 2.7.5. Run with: docker build -f eventMachineSegmentationFault-ruby275-20220318.Dockerfile .
  • eventMachineWorkAround-ruby275-20220318.Dockerfile - Shows the issues is fixed by forcing 'ld' to use the --no-as-needed flag with Ruby 2.7.5. Run with: docker build -f eventMachineWorkAround-ruby275-20220318.Dockerfile .

I can provide Dockerfiles with minimal C extension code if needed.

FYI, related issue for Ruby 3.0 back port: https://bugs.ruby-lang.org/issues/18409

Thanks for your consideration.


Files

eventMachineSegmentationFault-ruby275-20220318.Dockerfile (951 Bytes) eventMachineSegmentationFault-ruby275-20220318.Dockerfile Creates the segmentation fault using Ruby 2.7.5. eviljoel (evil joel), 03/18/2022 05:39 PM
eventMachineWorkAround-ruby275-20220318.Dockerfile (980 Bytes) eventMachineWorkAround-ruby275-20220318.Dockerfile Shows the issues is fixed by forcing 'ld' to use the --no-as-needed flag with Ruby 2.7.5. eviljoel (evil joel), 03/18/2022 05:39 PM

Updated by shyouhei (Shyouhei Urabe) about 2 years ago

  • Status changed from Open to Closed

Setting status to closed. Don't get confused, this is a normal process. The bug is fixed -- now is the time for back porting.

Updated by eviljoel (evil joel) about 2 years ago

shyouhei (Shyouhei Urabe) wrote in #note-1:

Setting status to closed. Don't get confused, this is a normal process. The bug is fixed -- now is the time for back porting.

OK, that is fine, but shouldn't the "Backport" field for 2.7 on issue 18409 be marked as REQUIRED?

Actions

Also available in: Atom PDF

Like0
Like0Like0