Bug #18650
closedC Extensions Can Segmentation Fault on Ruby 2.7 Compiled with --with-jemalloc and --enabled-shared
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
Updated by shyouhei (Shyouhei Urabe) over 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) over 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?