s2i-ruby-container icon indicating copy to clipboard operation
s2i-ruby-container copied to clipboard

Add Ruby 3.3

Open pvalena opened this issue 1 year ago • 43 comments

For testing, I'm using Ruby from my COPR, as it's built for c9s/c8s etc.

You can find the changes here: https://github.com/pvalena/s2i-ruby-container/tree/3.3-experimental

And I've also pushed the built images for testing: https://github.com/sclorg/s2i-ruby-container/pull/507#issuecomment-1896559402

pvalena avatar Nov 28 '23 00:11 pvalena

Testing c9s, c8s, rhel9 and rhel8 now.

pvalena avatar Jan 15 '24 15:01 pvalena

I have managed to make rails-ex work for Ruby 3.3 as well as with all other releases.

Test logs: https://gist.github.com/pvalena/88b5e670e3d8a1bbbc44ee6521708a6f

pvalena avatar Jan 17 '24 19:01 pvalena

@jackorp @phracek PTAL.

pvalena avatar Jan 17 '24 19:01 pvalena

[test][test-openshift]

pvalena avatar Jan 17 '24 19:01 pvalena

I've pushed images for testing:

quay.io/s2i-ruby/fedora:3.3-experimental
quay.io/s2i-ruby/c8s:3.3-experimental
quay.io/s2i-ruby/c9s:3.3-experimental

pvalena avatar Jan 17 '24 19:01 pvalena

Can we merge this? Is anything else needed from my side?

pvalena avatar Jan 31 '24 09:01 pvalena

Looking at commits you probably didn't follow the flow outlined in the contributing file: https://github.com/sclorg/welcome/blob/master/contribution.md#2-add-sources in that the commit history seems lost on the 3.3 directory.

jackorp avatar Jan 31 '24 09:01 jackorp

You're right, sorry, I forgot about that.

pvalena avatar Jan 31 '24 11:01 pvalena

BTW there also seem to be some more steps related to the individual tests compared to the last time I touched containers. Actually there is "enable testing" step that should happen as a PR and merged before this one...

jackorp avatar Jan 31 '24 12:01 jackorp

BTW there also seem to be some more steps related to the individual tests compared to the last time I touched containers. Actually there is "enable testing" step that should happen as a PR and merged before this one...

You're right, but I thought I've enabled forgot to check... will fix

pvalena avatar Jan 31 '24 12:01 pvalena

[test][test-openshift]

pvalena avatar Feb 12 '24 19:02 pvalena

(Fixed git history, Ready for Review)

@phracek @jackorp

pvalena avatar Feb 12 '24 19:02 pvalena

Tests failed here:

echo ' [PASSED] for '\''db'\'' test_docker_run_usage (00:00:00)
 [PASSED] for '\''db'\'' test_application (00:00:01)
 [FAILED] for '\''db'\'' test_connection (00:00:11)
 [PASSED] for '\''db'\'' test_scl_variables_in_dockerfile (00:00:00)
 [FAILED] for '\''db'\'' test_scl_usage (00:00:01)
 [PASSED] for '\''db'\'' test_npm_functionality (00:00:04)
 [PASSED] for '\''puma'\'' test_docker_run_usage (00:00:01)
 [PASSED] for '\''puma'\'' test_application (00:00:01)
 [PASSED] for '\''puma'\'' test_connection (00:00:00)
 [PASSED] for '\''puma'\'' test_scl_variables_in_dockerfile (00:00:00)
 [PASSED] for '\''puma'\'' test_scl_usage (00:00:01)
 [PASSED] for '\''puma'\'' test_npm_functionality (00:00:04)
 [PASSED] for '\''rack'\'' test_docker_run_usage (00:00:01)
 [PASSED] for '\''rack'\'' test_application (00:00:01)
 [PASSED] for '\''rack'\'' test_connection (00:00:01)
 [PASSED] for '\''rack'\'' test_scl_variables_in_dockerfile (00:00:00)
 [PASSED] for '\''rack'\'' test_scl_usage (00:00:01)
 [PASSED] for '\''rack'\'' test_npm_functionality (00:00:03)
 [FAILED] for '\''from_dockerfile'\'' test_from_dockerfile (00:04:14)
 [FAILED] for '\''from_dockerfile'\'' test_from_dockerfile_s2i (00:04:07)

The log from test_connection is:

-----------------------------------------------
+ test_connection
++ container_ip
+++ cat /tmp/tmp.2D2lbgSdp4/./tmp.RSX58iohdd.cid
++ docker inspect '--format={{ .NetworkSettings.IPAddress }}' 089a34a5f0baa1c946e4d4333f947dacf822883391c7d77aa79a7d2cc6f40544
+ info 'Testing the HTTP connection (http://10.88.0.8:8080)'
+ echo -e '\n\e[1m[INFO] Testing the HTTP connection (http://10.88.0.8:8080)...\e[0m\n'

[1m[INFO] Testing the HTTP connection (http://10.88.0.8:8080)...[0m

+ local max_attempts=10
+ local sleep_time=1
+ local attempt=1
+ local result=1
+ '[' 1 -le 10 ']'
+++ container_ip
++++ cat /tmp/tmp.2D2lbgSdp4/./tmp.RSX58iohdd.cid
+++ docker inspect '--format={{ .NetworkSettings.IPAddress }}' 089a34a5f0baa1c946e4d4333f947dacf822883391c7d77aa79a7d2cc6f40544
++ curl -s -w '%{http_code}' -o /dev/null http://10.88.0.8:8080/
+ response_code=000
+ status=7
+ '[' 7 -eq 0 ']'
+ attempt=2
+ sleep 1
Parsing options from the first comment line is deprecated!
/opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/session/cookie.rb:7: warning: base64 was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add base64 to your Gemfile or gemspec. Also contact author of rack-2.2.8 to add base64 into its gemspec.
/opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/notifications/fanout.rb:3: warning: mutex_m was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add mutex_m to your Gemfile or gemspec. Also contact author of activesupport-6.1.7.6 to add mutex_m into its gemspec.
/opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/xml_mini.rb:5: warning: bigdecimal was loaded from the standard library, but will no longer be part of the default gems since Ruby 3.4.0. Add bigdecimal to your Gemfile or gemspec. Also contact author of activesupport-6.1.7.6 to add bigdecimal into its gemspec.
/usr/share/ruby/bundled_gems.rb:74:in `require': Error loading the 'mysql2' Active Record adapter. Missing a gem it depends on? /opt/app-root/src/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mysql2-0.5.3/mysql2/mysql2.so: undefined symbol: rb_tainted_str_new2 - /opt/app-root/src/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mysql2-0.5.3/mysql2/mysql2.so (LoadError)
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/mysql2_adapter.rb:7:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:1205:in `resolve_pool_config'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:1046:in `establish_connection'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_handling.rb:52:in `establish_connection'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:64:in `database='
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1273:in `set'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:58:in `database_file='
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1273:in `set'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:41:in `registered'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1455:in `block in register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1453:in `each'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1453:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1947:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:2008:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:88:in `<module:Sinatra>'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:12:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/config/database.rb:1:in `<top (required)>'
	from /opt/app-root/src/app.rb:2:in `require_relative'
	from /opt/app-root/src/app.rb:2:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/config.ru:2:in `block in <main>'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `eval'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `new_from_string'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:105:in `load_file'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:66:in `parse_file'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:349:in `build_app_and_options_from_config'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:249:in `app'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:422:in `wrapped_app'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:312:in `block in start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:379:in `handle_profiling'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:311:in `start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:168:in `start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/bin/rackup:5:in `<top (required)>'
	from /opt/app-root/src/bundle/ruby/3.3.0/bin/rackup:25:in `load'
	from /opt/app-root/src/bundle/ruby/3.3.0/bin/rackup:25:in `<main>'
/usr/share/ruby/bundled_gems.rb:74:in `require': /opt/app-root/src/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mysql2-0.5.3/mysql2/mysql2.so: undefined symbol: rb_tainted_str_new2 - /opt/app-root/src/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/mysql2-0.5.3/mysql2/mysql2.so (LoadError)
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/mysql2-0.5.3/lib/mysql2.rb:36:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/mysql2_adapter.rb:7:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `block in require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:299:in `load_dependency'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activesupport-6.1.7.6/lib/active_support/dependencies.rb:332:in `require'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:1205:in `resolve_pool_config'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:1046:in `establish_connection'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/activerecord-6.1.7.6/lib/active_record/connection_handling.rb:52:in `establish_connection'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:64:in `database='
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1273:in `set'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:58:in `database_file='
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1273:in `set'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:41:in `registered'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1455:in `block in register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1453:in `each'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1453:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:1947:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-2.1.0/lib/sinatra/base.rb:2008:in `register'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:88:in `<module:Sinatra>'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/sinatra-activerecord-2.0.22/lib/sinatra/activerecord.rb:12:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/config/database.rb:1:in `<top (required)>'
	from /opt/app-root/src/app.rb:2:in `require_relative'
	from /opt/app-root/src/app.rb:2:in `<top (required)>'
	from /usr/share/ruby/bundled_gems.rb:74:in `require'
	from /usr/share/ruby/bundled_gems.rb:74:in `block (2 levels) in replace_require'
	from /opt/app-root/src/config.ru:2:in `block in <main>'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `eval'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:116:in `new_from_string'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:105:in `load_file'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/builder.rb:66:in `parse_file'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:349:in `build_app_and_options_from_config'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:249:in `app'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:422:in `wrapped_app'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:312:in `block in start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:379:in `handle_profiling'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:311:in `start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/lib/rack/server.rb:168:in `start'
	from /opt/app-root/src/bundle/ruby/3.3.0/gems/rack-2.2.8/bin/rackup:5:in `<top (required)>'
	from /opt/app-root/src/bundle/ruby/3.3.0/bin/rackup:25:in `load'
	from /opt/app-root/src/bundle/ruby/3.3.0/bin/rackup:25:in `<main>'
+ '[' 2 -le 10 ']'

phracek avatar Feb 13 '24 14:02 phracek

If I am reading the logs correctly the mysql2 failure is a bit problematic, AFAICT the problem is coming from this repo: https://github.com/openshift/ruby-hello-world which is using the mysql2 gem. We should be, in theory, able to just upgrade that gem.

skimmed the logs, also saw some postgresql failures:

pg_result.c: In function 'init_pg_result':
pg_result.c:1590:65: error: 'rb_cData' undeclared (first use in this function)
1590 |         rb_cPGresult = rb_define_class_under( rb_mPG, "Result", rb_cData
);
      |                                                                 ^~~~~~~~
pg_result.c:1590:65: note: each undeclared identifier is reported only once for
each function it appears in
make: *** [Makefile:249: pg_result.o] Error 1

make failed, exit code 2

Gem files will remain installed in
/opt/app-root/src/bundle/ruby/3.3.0/gems/pg-1.2.3 for inspection.
Results logged to
/opt/app-root/src/bundle/ruby/3.3.0/extensions/x86_64-linux/3.3.0/pg-1.2.3/gem_make.out

  /usr/share/rubygems/rubygems/ext/builder.rb:125:in `run'
  /usr/share/rubygems/rubygems/ext/builder.rb:51:in `block in make'
  /usr/share/rubygems/rubygems/ext/builder.rb:43:in `each'
  /usr/share/rubygems/rubygems/ext/builder.rb:43:in `make'
  /usr/share/rubygems/rubygems/ext/ext_conf_builder.rb:42:in `build'
  /usr/share/rubygems/rubygems/ext/builder.rb:193:in `build_extension'
  /usr/share/rubygems/rubygems/ext/builder.rb:227:in `block in build_extensions'
  /usr/share/rubygems/rubygems/ext/builder.rb:224:in `each'
  /usr/share/rubygems/rubygems/ext/builder.rb:224:in `build_extensions'
  /usr/share/rubygems/rubygems/installer.rb:852:in `build_extensions'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/rubygems_gem_installer.rb:76:in
`build_extensions'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/rubygems_gem_installer.rb:28:in
`install'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/source/rubygems.rb:205:in
`install'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/installer/gem_installer.rb:54:in
`install'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/installer/gem_installer.rb:16:in
`install_from_spec'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/installer/parallel_installer.rb:132:in
`do_install'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/installer/parallel_installer.rb:123:in
`block in worker_pool'
  /usr/share/gems/gems/bundler-2.5.3/lib/bundler/worker.rb:62:in `apply_func'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/worker.rb:57:in `block in
process_queue'
  <internal:kernel>:187:in `loop'
  /usr/share/gems/gems/bundler-2.5.3/lib/bundler/worker.rb:54:in `process_queue'
/usr/share/gems/gems/bundler-2.5.3/lib/bundler/worker.rb:90:in `block (2
levels) in create_threads'

An error occurred while installing pg (1.2.3), and Bundler cannot continue.

In Gemfile:
  pg

Both, the mysql2 and PG DB connectors install failure are related to C API methods having been removed from Ruby. They are used by these older gems and Ruby 3.3. As we want to still test RHEL 7, now comes the point to branch out the rails-ex used in tests to install this there is https://github.com/sclorg/rails-ex/pull/169 made to address the PG failure. I am crossing my fingers that mysql2 update will just work.

jackorp avatar Feb 13 '24 15:02 jackorp

Made a PR for the mysql2 failure: https://github.com/openshift/ruby-hello-world/pull/146

jackorp avatar Feb 13 '24 15:02 jackorp

https://github.com/sclorg/s2i-ruby-container/pull/518 Made PR to use the new rails-ex branch

jackorp avatar Feb 13 '24 17:02 jackorp

[test][test-openshift]

pvalena avatar Feb 14 '24 02:02 pvalena

It occurred to me just now... ruby 3.3 will be in UBI image and we do not usually ship CentOS Stream alternatives to streams available in UBI. @pvalena @jackorp Do you have any specific reason for building the ruby-33 c8s/c9s images? If not, I would suggest disabling them by adding .exclude-files -> meaning the will not be built or tested. WDYT?

zmiklank avatar Feb 14 '24 13:02 zmiklank

I have no strong opinion on the matter from my POV.

jackorp avatar Feb 14 '24 13:02 jackorp

It occurred to me just now... ruby 3.3 will be in UBI image and we do not usually ship CentOS Stream alternatives to streams available in UBI. @pvalena @jackorp Do you have any specific reason for building the ruby-33 c8s/c9s images? If not, I would suggest disabling them by adding .exclude-files -> meaning the will not be built or tested. WDYT?

I've just added it, as it was there for Ruby 3.1 :) and I've used it for testing (with my COPR repo). I'm fine with removing it, in case it has no consumer base. I'll add the .exclude-files.

pvalena avatar Feb 14 '24 22:02 pvalena

quay.io/fedora/s2i-base:40 is published. [test]

zmiklank avatar Feb 16 '24 15:02 zmiklank

[test] [test-openshift]

Added .exclude-c8s and .exclude-c9s.

pvalena avatar Feb 16 '24 19:02 pvalena

Fedora: libseccomp-devel failed to install (log).

pvalena avatar Feb 16 '24 20:02 pvalena

[test-all]

phracek avatar Feb 19 '24 09:02 phracek

Fedora: libseccomp-devel failed to install (log).

I do not quite understand that, as ruby 3.1 on Fedora uses the same host compose (Fedora-Latest -> F40), and the same ansible playbook for setting up the station. And the ruby 3.1 fedora ansible setup has succeeded. I have also tried to manually install libseccomp-devel on a f40 container image and it works.

Let's see how the second round of tests goes.

zmiklank avatar Feb 19 '24 09:02 zmiklank

Seems the latest test results from Fedora - 3.3 are relevant.

zmiklank avatar Feb 19 '24 10:02 zmiklank

I've briefly investigated the failures:

  1. Mysql gem failed to build on Fedora (log) - I don't really mind Fedora failing... I'm not sure why though. This might be / will be resolved upstream.

  2. RHEL-8 with rails-ex (log) - rails-ex worked for me, with this branch: https://github.com/sclorg/rails-ex/tree/3.3 not sure where to configure this. Also, there might be other failing tests, but It's not clear from the logs (they're not very readable).

  3. RHEL-9: same as RHEL-8.

pvalena avatar Feb 19 '24 14:02 pvalena

Also, there might be other failing tests, but It's not clear from the logs (they're not very readable).

Agree. Would it help you disabling the -x option in bash? Most of the images we maintain have it disabled, and I personally enable it only when really needed (usually for local debugging).

zmiklank avatar Feb 19 '24 14:02 zmiklank

Mysql gem failed to build on Fedora (log) - I don't really mind Fedora failing... I'm not sure why though. This might be / will be resolved upstream.

We could add the test to UNSTABLE_TESTS, if you think the image is still functional. The test results will then still be green even if this test fails. The upstream issue could be linked in the comments, and the tests could be removed from the UNSTABLE_TESTS once is fixed.

zmiklank avatar Feb 19 '24 14:02 zmiklank

I've briefly investigated the failures:

1. Mysql gem failed to build on Fedora ([log](https://gist.github.com/pvalena/b614b638420464444fd10ebcb1beb701)) - I don't really mind Fedora failing... I'm not sure why though. This might be / will be resolved upstream.

2. RHEL-8 with rails-ex ([log](https://gist.github.com/pvalena/b0a789cc87b158414af2d55be40a9ae8)) - rails-ex worked for me, with this branch: https://github.com/sclorg/rails-ex/tree/3.3 not sure where to configure this.
   _Also, there might be other failing tests, but It's not clear from the logs (they're not very readable)._

3. RHEL-9: same as RHEL-8.

@pvalena Regarding RHEL-8 and RHEL-9 you can take an inspiration from s2i-python-container like here: https://github.com/sclorg/s2i-python-container/blob/master/test/test-lib-python.sh#L95 Or create an issue for it, and I will fix it later on.

phracek avatar Feb 19 '24 15:02 phracek