system-tests icon indicating copy to clipboard operation
system-tests copied to clipboard

Ruby SSI easy wins

Open lloeki opened this issue 1 year ago • 2 comments

Motivation

66 easy wins

Changes

Workflow

  1. ⚠️ Create your PR as draft ⚠️
  2. Work on you PR until the CI passes (if something not related to your task is failing, you can ignore it)
  3. Mark it as ready for review
    • Test logic is modified? -> Get a review from RFC owner. We're working on refining the codeowners file quickly.
    • Framework is modified, or non obvious usage of it -> get a review from R&P team

:rocket: Once your PR is reviewed, you can merge it!

🛟 #apm-shared-testing 🛟

Reviewer checklist

  • [ ] If PR title starts with [<language>], double-check that only <language> is impacted by the change
  • [ ] No system-tests internal is modified. Otherwise, I have the approval from R&P team
  • [ ] CI is green, or failing jobs are not related to this change (and you are 100% sure about this statement)
  • [ ] A docker base image is modified?
    • [ ] the relevant build-XXX-image label is present
  • [ ] A scenario is added (or removed)?

lloeki avatar Mar 27 '25 17:03 lloeki

$ cd lib-injection/build/docker/ruby/lib_injection_rails_app
$ docker run --rm -it -w $PWD -v $PWD:$PWD ghcr.io/datadog/images-rb/engines/ruby:3.0-centos /bin/bash
# bundle install
# bin/rails server -b 0.0.0.0 -p 5985

also gave:

/Users/loic.nageleisen/Source/github.com/DataDog/system-tests/lib-injection/build/docker/ruby/lib_injection_rails_app/vendor/bundle/ruby/3.0.0/gems/sqlite3-1.6.0-aarch64-linux/lib/sqlite3.rb:4:in `require': /lib64/libm.so.6: version `GLIBC_2.29' not found (required by /Users/loic.nageleisen/Source/github.com/DataDog/system-tests/lib-injection/build/docker/ruby/lib_injection_rails_app/vendor/bundle/ruby/3.0.0/gems/sqlite3-1.6.0-aarch64-linux/lib/sqlite3/3.0/sqlite3_native.so) - /Users/loic.nageleisen/Source/github.com/DataDog/system-tests/lib-injection/build/docker/ruby/lib_injection_rails_app/vendor/bundle/ruby/3.0.0/gems/sqlite3-1.6.0-aarch64-linux/lib/sqlite3/3.0/sqlite3_native.so (LoadError)

i.e sqlite3 must also be built from source; updated accordingly.

There appear to be no other, as:

( set -euo pipefail; shopt -s globstar; for f in /usr/local/bundle/gems/**/*.so; do echo -n "${f}: "; if nm -D "${f}" | grep '@GLIBC_' | sed 's/.*@//' | sort --version-sort | uniq | tail -1; then :; else echo; fi; done )

results in:

/usr/local/bundle/gems/bigdecimal-1.4.4/lib/bigdecimal.so: 
/usr/local/bundle/gems/date-3.3.3/lib/date_core.so: 
/usr/local/bundle/gems/debug-1.7.1/lib/debug/debug.so: 
/usr/local/bundle/gems/io-console-0.6.0/lib/io/console.so: 
/usr/local/bundle/gems/nio4r-2.5.8/lib/nio4r_ext.so: 
/usr/local/bundle/gems/nokogiri-1.14.2/lib/nokogiri/nokogiri.so: 
/usr/local/bundle/gems/puma-5.6.5/lib/puma/puma_http11.so: 
/usr/local/bundle/gems/racc-1.6.2/lib/racc/cparse.so: 
/usr/local/bundle/gems/sqlite3-1.7.3/lib/sqlite3/sqlite3_native.so: 
/usr/local/bundle/gems/websocket-driver-0.7.5/lib/websocket_mask.so

lloeki avatar Mar 28 '25 10:03 lloeki

Now we have:

/bin/bash: line 1: /home/ubuntu/.rbenv/shims/rails: No such file or directory

Caused by:

 Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/home/ubuntu/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/sqlite3-1.7.3/ext/sqlite3
/home/ubuntu/.rbenv/versions/3.0.2/bin/ruby -I
/home/ubuntu/.rbenv/versions/3.0.2/lib/ruby/3.0.0 -r
./siteconf20250328-5719-wi1m5o.rb extconf.rb
Building sqlite3-ruby using packaged sqlite3.
Extracting sqlite-autoconf-3450200.tar.gz into
tmp/x86_64-linux-gnu/ports/sqlite3/3.45.2... OK
Running 'configure' for sqlite3 3.45.2... OK
Running 'compile' for sqlite3 3.45.2... OK
Running 'install' for sqlite3 3.45.2... OK
Activating sqlite3 3.45.2 (from
/home/ubuntu/.rbenv/versions/3.0.2/lib/ruby/gems/3.0.0/gems/sqlite3-1.7.3/ports/x86_64-linux-gnu/sqlite3/3.45.2)...

Could not configure the build properly (pkg_config). Please install either the
`pkg-config` utility or the `pkg-config` rubygem.

lloeki avatar Mar 28 '25 12:03 lloeki