Bug #12956
closedrequire a native library that yields the error 'incompatiable library version' shuts down the interpreter fatally
Description
I would like to rescue from this in ruby-code.
Looking at the source in dln.c around line 1334 shows, that there is a special APPLE define with a comment that suggests, that properly cleaning up with dlclose crashes.
Disabling the special handling on my machine running OSX Sierra 10.12.1 did not show the crashing behavior, but instead I was able to rescue from the LoadError.
To reproduce I attached my native extension. To reproduce this just run irb -I. and require 'dotstar'
Files
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Backport changed from 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN to 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED
Thank you for heading up.
I found that it works on OS X El Capitan too.
It was OS X Yosemite when I added that line (May 2015), and probably dlclose
was fixed in El Capitan.
Updated by nobu (Nobuyoshi Nakada) over 7 years ago
- Status changed from Open to Closed
Applied in changeset r56832.
dln.c: raise LoadError
- dln.c (dln_load): raise LoadError instead of fatal error on
recent OSX, dlclose seems fixed in El Capitan or later.
[ruby-core:78200] [Bug #12956]
Updated by gizmomogwai (Christian Köstlin) over 7 years ago
Thanks Nobuyoshi Nakada.
That was really fast. Looking forward to the next release containing this patch :)
Do you have an eta for this?
Updated by usa (Usaku NAKAMURA) over 7 years ago
- Backport changed from 2.1: REQUIRED, 2.2: REQUIRED, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED
ruby_2_2 r57208 merged revision(s) 56832.
Updated by nagachika (Tomoyuki Chikanaga) over 7 years ago
- Backport changed from 2.1: REQUIRED, 2.2: DONE, 2.3: REQUIRED to 2.1: REQUIRED, 2.2: DONE, 2.3: DONE
ruby_2_3 r57344 merged revision(s) 56832.