[ruby-core:118812] [Ruby master Bug#20666] Segmentation fault instead of LoadError exception
From:
"ErezGeva2@... (Erez Geva) via ruby-core" <ruby-core@...>
Date:
2024-08-08 11:30:01 UTC
List:
ruby-core #118812
Issue #20666 has been updated by ErezGeva2@gmail.com (Erez Geva).
# Testing with `mkmf`
It is worse.
I build the extension in `Test` using `mkmf`.
Now both Ruby issue a Segmentation fault.
Ruby 3.1.6 and Ruby 3.2.5.
See:
https://github.com/erezgeva/swig/actions/runs/10300870708
Using `-L<Ruby lib dir> -l<Ruby lib> <RbConfig::CONFIG["LIBS"]>`
Works with the older Ruby 3.1.6
See:
https://github.com/swig/swig/actions/runs/10263993827/job/28397046211?pr=2981
In `Test`
`checking ruby testcase import_fragments (with run test)`
Pass without any error.
# Build with `mkmf`
I already send the code.
To build with `mkmf`
The name of the extension is `import_fragments`
An `extconf.rb` would look like:
> require 'mkmf'
> create_header
> create_makefile 'import_fragments'
The source code `import_fragments_wrap.cxx` have the initialising function `void Init_import_fragments(void)`.
Just for clarification:
I test with MinGW-w64 with ucrt64.
> /ucrt64/bin/gcc
> gcc.exe (Rev1, Built by MSYS2 project) 14.2.0
> /ucrt64/bin/g++
> g++.exe (Rev1, Built by MSYS2 project) 14.2.0
I install it with MSYS2, with the `mingw-w64-ucrt-x86_64-gcc` package.
----------------------------------------
Bug #20666: Segmentation fault instead of LoadError exception
https://bugs.ruby-lang.org/issues/20666#change-109370
* Author: ErezGeva2@gmail.com (Erez Geva)
* Status: Open
* ruby -v: ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt]
* Backport: 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
Using ruby -v
ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt]
>>From [GitHub windows 2022](https://github.com/actions/runner-images/blob/main/images/windows/Windows2022-Readme.md
)
We run the SWIG test:
[import_fragments](https://github.com/swig/swig/blob/master/Examples/test-suite/ruby/import_fragments_runme.rb)
The test try to load a broken library, which should rise a `LoadError`.
begin
require 'import_fragments'
rescue LoadError => e
# due to missing import_fragments_a
exception_file = e.respond_to?(:path) ? e.path : e.to_s.sub(/.* -- /, '')
end
Instead `LoadError` exception we get `Segmentation fault`:
<internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:151: [BUG] Segmentation fault
ruby 3.2.5 (2024-07-26 revision 31d0f1a2e7) [x64-mingw-ucrt]
-- Control frame information -----------------------------------------------
c:0004 p:0018 s:0028 e:000025 RESCUE <internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:151
c:0003 p:0275 s:0022 e:000021 METHOD <internal:C:/hostedtoolcache/windows/Ruby/3.2.5/x64/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:40
c:0002 p:0011 s:0007 E:0004e8 EVAL ./import_fragments_runme.rb:13 [FINISH]
c:0001 p:0000 s:0003 E:0006e0 DUMMY [FINISH]
---Files--------------------------------
source.zip (20.2 KB)
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.ruby-lang.org/