Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ARROW-15334: [CI][GLib][Windows] Use Ruby 3.1 #12165

Closed
wants to merge 8 commits into from
Closed

Conversation

kou
Copy link
Member

@kou kou commented Jan 17, 2022

RubyInstaller bundles libintl-8.dll but libintl-8.dll's ABI in MSYS2 is changed since
mingw-w64-x86_64-gettext 0.21-1. It requires DllMain() but bundled libintl-8.dll doesn't
provide DllMain() yet. So we build glib2 gem that depends on gettext with new gettext,
we need to use new libintl-8.dll too. But bundled libintl-8.dll is used.

Ruby 3.1 based RubyInstaller doesn't bundle libintl-8.dll. So we can avoid this error
by using Ruby 3.1.

The next Ruby 3.0 based RubyInstaller release will bundle new libintl-8.dll. So it will
be solved eventually.

I haven't identified the real problem yet but the following error is
occurred since mingw-w64-x86_64-gettext MSYS2 package was updated to
0.21-3:

    <internal:C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/3.0.0/rubygems/core_ext/kernel_require.rb>:96:in
    `require': 127: The specified procedure could not be found.  -
    C:/hostedtoolcache/windows/Ruby/3.0.3/x64/lib/ruby/gems/3.0.0/gems/glib2-3.5.0/lib/glib2.so (LoadError)

The missing procedure is DllMain(). If we add empty DllMain(), we can
avoid the error. Generally, DllMain() is optional but it's required
when we use "-lintl" build option.

I think that this is a gettext (libintl) related problem but add this
workaround for now. We can remove this workaround once we found the
real problem.
@github-actions
Copy link

Thanks for opening a pull request!

If this is not a minor PR. Could you open an issue for this pull request on JIRA? https://issues.apache.org/jira/browse/ARROW

Opening JIRAs ahead of time contributes to the Openness of the Apache Arrow project.

Then could you also rename pull request title in the following format?

ARROW-${JIRA_ID}: [${COMPONENT}] ${SUMMARY}

or

MINOR: [${COMPONENT}] ${SUMMARY}

See also:

@kou kou changed the title [CI][GLib][Windows] Add workaround for failing to load glib2.so ARROW-15334: [CI][GLib][Windows] Add workaround for failing to load glib2.so Jan 17, 2022
@github-actions
Copy link

@github-actions
Copy link

⚠️ Ticket has not been started in JIRA, please click 'Start Progress'.

@kou kou changed the title ARROW-15334: [CI][GLib][Windows] Add workaround for failing to load glib2.so ARROW-15334: [CI][GLib][Windows] Use Ruby 3.1 Jan 17, 2022
Copy link
Member

@kszucs kszucs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Kou!

@kszucs kszucs closed this in bbbe668 Jan 17, 2022
@ursabot
Copy link

ursabot commented Jan 17, 2022

Benchmark runs are scheduled for baseline = c4ef048 and contender = bbbe668. bbbe668 is a master commit associated with this PR. Results will be available as each benchmark for each run completes.
Conbench compare runs links:
[Finished ⬇️0.0% ⬆️0.0%] ec2-t3-xlarge-us-east-2
[Failed ⬇️0.0% ⬆️0.0%] ursa-i9-9960x
[Finished ⬇️0.22% ⬆️0.0%] ursa-thinkcentre-m75q
Supported benchmarks:
ec2-t3-xlarge-us-east-2: Supported benchmark langs: Python. Runs only benchmarks with cloud = True
ursa-i9-9960x: Supported benchmark langs: Python, R, JavaScript
ursa-thinkcentre-m75q: Supported benchmark langs: C++, Java

@kou kou deleted the ci-ruby branch January 17, 2022 21:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants