[ruby-core:118806] [Ruby master Bug#20666] Segmentation fault instead of LoadError exception
From:
"ErezGeva2@... (Erez Geva) via ruby-core" <ruby-core@...>
Date:
2024-08-07 20:29:41 UTC
List:
ruby-core #118806
Issue #20666 has been updated by ErezGeva2@gmail.com (Erez Geva).
I do add the new Ruby to the SWIG project testing.
If I would suspect it is a SWIG bug, I would not hesitate and report it there.
The same test works with older Ruby:
ruby 3.1.6p260 (2024-05-29 revision a777087be6) [x64-mingw-ucrt]
See:
https://github.com/swig/swig/actions/runs/10263993827/job/28397046211?pr=2981
The test generate a wrapper code with SWIG
and build it into a shared library.
Which the Ruby try to load and should issue a `LoadError` exception.
Both tests use the same GCC compiler:
GCC MinGW-W64 ucrt64, Rev1, Built by MSYS2 project) 14.2.0
The SWIG generate the same code.
So the generated shared library can only differ in Ruby headers!
As far as I understand, the only change is using Ruby 3.2.5 on Windows.
By the way we also run the same test on Linux,
with Ruby:
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [x86_64-linux]
See:
https://github.com/swig/swig/actions/runs/10263993829/job/28397064713?pr=2981
I do understand it may be difficult to test something like that alone.
Yet, I do not have a Windows machine myself.
But I can help in:
1. Generate the SWIG code.
2. Provide the commands to build the shared library using GCC MinGW-W64 ucrt64
3. Provide the ruby script
4. Provide the `ruby` command running the test itself.
If that helps you to catch the BUG, please tell me and I will upload them here.
Erez
----------------------------------------
Bug #20666: Segmentation fault instead of LoadError exception
https://bugs.ruby-lang.org/issues/20666#change-109364
* Author: ErezGeva2@gmail.com (Erez Geva)
* Status: Feedback
* 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]
--
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/