DockerFile help for Ruby 3.3.0

I have a Rails 7.1 and Ruby 3.2.2 app running on Fly but when I try upgrading to Ruby 3.3.0 I get several errors when trying to deploy.

The changes I made to my DockerFile are

ARG RUBY_VERSION=3.3.0
ARG VARIANT=jemalloc-bookworm # tried jemalloc and malloctrim-bookworm variants but same result
FROM quay.io/evl.ms/fullstaq-ruby:${RUBY_VERSION}-${VARIANT} as base

When i deploy I get the following errors:

> Created release_command machine e286000c340386
> Waiting for e286000c340386 to have state: started
> Waiting for e286000c340386 to get exit event
✖ release_command failed
Error release_command failed running on machine e286000c340386 with exit code 139.
Check its logs: here's the last 100 lines below, or run 'fly logs -i e286000c340386':
  7f7c4e723000-7f7c4e724000 ---p 00000000 00:00 0
  7f7c4e724000-7f7c4e7c5000 rw-p 00000000 00:00 0
  7f7c4e7c5000-7f7c4e7c6000 ---p 00000000 00:00 0
  7f7c4e7c6000-7f7c4e867000 rw-p 00000000 00:00 0
  7f7c4e867000-7f7c4e868000 ---p 00000000 00:00 0
  7f7c4e868000-7f7c4e909000 rw-p 00000000 00:00 0
  7f7c4e909000-7f7c4e90a000 ---p 00000000 00:00 0
  7f7c4e90a000-7f7c4e9ab000 rw-p 00000000 00:00 0
  7f7c4e9ab000-7f7c4e9ac000 ---p 00000000 00:00 0
  7f7c4e9ac000-7f7c4ea4d000 rw-p 00000000 00:00 0
  7f7c4ea4d000-7f7c4ea4e000 ---p 00000000 00:00 0
  7f7c4ea4e000-7f7c4eaef000 rw-p 00000000 00:00 0
  7f7c4eaef000-7f7c4eaf0000 ---p 00000000 00:00 0
  7f7c4eaf0000-7f7c4eb91000 rw-p 00000000 00:00 0
  7f7c4eb91000-7f7c4eb92000 ---p 00000000 00:00 0
  7f7c4eb92000-7f7c4ec33000 rw-p 00000000 00:00 0
  7f7c4ec33000-7f7c4ec34000 ---p 00000000 00:00 0
  7f7c4ec34000-7f7c4ecd5000 rw-p 00000000 00:00 0
  7f7c4ecd5000-7f7c4ecd6000 ---p 00000000 00:00 0
  7f7c4ecd6000-7f7c4ed77000 rw-p 00000000 00:00 0
  7f7c4ed77000-7f7c4ed78000 ---p 00000000 00:00 0
  7f7c4ed78000-7f7c4ee19000 rw-p 00000000 00:00 0
  7f7c4ee19000-7f7c4ee1a000 ---p 00000000 00:00 0
  7f7c4ee1a000-7f7c4eebb000 rw-p 00000000 00:00 0
  7f7c4eebb000-7f7c4eebc000 ---p 00000000 00:00 0
  7f7c4eebc000-7f7c4ef5d000 rw-p 00000000 00:00 0
  7f7c4ef5d000-7f7c4ef5e000 ---p 00000000 00:00 0
  7f7c4ef5e000-7f7c4efff000 rw-p 00000000 00:00 0
  7f7c4efff000-7f7c4f000000 ---p 00000000 00:00 0
  7f7c4f000000-7f7c51400000 rw-p 00000000 00:00 0
  7f7c51470000-7f7c514f0000 rw-p 00000000 00:00 0
  7f7c514fb000-7f7c514fc000 r--p 00000000 fe:00 133924                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so
  7f7c514fc000-7f7c514fd000 r-xp 00001000 fe:00 133924                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so
  7f7c514fd000-7f7c514fe000 r--p 00002000 fe:00 133924                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so
  7f7c514fe000-7f7c514ff000 r--p 00002000 fe:00 133924                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so
  7f7c514ff000-7f7c51500000 rw-p 00003000 fe:00 133924                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/trans/transdb.so
  7f7c51500000-7f7c51570000 rw-p 00000000 00:00 0
  7f7c51570000-7f7c51574000 r--s 00000000 fe:00 3300                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/bin/ruby
  7f7c51574000-7f7c51575000 r--p 00000000 fe:00 133880                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so
  7f7c51575000-7f7c51576000 r-xp 00001000 fe:00 133880                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so
  7f7c51576000-7f7c51577000 r--p 00002000 fe:00 133880                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so
  7f7c51577000-7f7c51578000 r--p 00002000 fe:00 133880                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so
  7f7c51578000-7f7c51579000 rw-p 00003000 fe:00 133880                     /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/ruby/3.3.0/x86_64-linux/enc/encdb.so
  7f7c51579000-7f7c51580000 r--s 00000000 fe:00 693                        /usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache
  7f7c51580000-7f7c515d7000 r--p 00000000 fe:00 337                        /usr/lib/locale/C.utf8/LC_CTYPE
  7f7c515d7000-7f7c515d9000 rw-p 00000000 00:00 0
  7f7c515d9000-7f7c515dc000 r--p 00000000 fe:00 742                        /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
  7f7c515dc000-7f7c515f3000 r-xp 00003000 fe:00 742                        /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
  7f7c515f3000-7f7c515f7000 r--p 0001a000 fe:00 742                        /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
  7f7c515f7000-7f7c515f8000 r--p 0001d000 fe:00 742                        /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
  7f7c515f8000-7f7c515f9000 rw-p 0001e000 fe:00 742                        /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
  7f7c515f9000-7f7c5161f000 r--p 00000000 fe:00 720                        /usr/lib/x86_64-linux-gnu/libc.so.6
  7f7c5161f000-7f7c51774000 r-xp 00026000 fe:00 720                        /usr/lib/x86_64-linux-gnu/libc.so.6
  7f7c51774000-7f7c517c7000 r--p 0017b000 fe:00 720                        /usr/lib/x86_64-linux-gnu/libc.so.6
  7f7c517c7000-7f7c517cb000 r--p 001ce000 fe:00 720                        /usr/lib/x86_64-linux-gnu/libc.so.6
  7f7c517cb000-7f7c517cd000 rw-p 001d2000 fe:00 720                        /usr/lib/x86_64-linux-gnu/libc.so.6
  7f7c517cd000-7f7c517dc000 rw-p 00000000 00:00 0
  7f7c517dc000-7f7c517ec000 r--p 00000000 fe:00 759                        /usr/lib/x86_64-linux-gnu/libm.so.6
  7f7c517ec000-7f7c5185f000 r-xp 00010000 fe:00 759                        /usr/lib/x86_64-linux-gnu/libm.so.6
  7f7c5185f000-7f7c518b9000 r--p 00083000 fe:00 759                        /usr/lib/x86_64-linux-gnu/libm.so.6
  7f7c518b9000-7f7c518ba000 r--p 000dc000 fe:00 759                        /usr/lib/x86_64-linux-gnu/libm.so.6
  7f7c518ba000-7f7c518bb000 rw-p 000dd000 fe:00 759                        /usr/lib/x86_64-linux-gnu/libm.so.6
  7f7c518bb000-7f7c518bd000 r--p 00000000 fe:00 729                        /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
  7f7c518bd000-7f7c518d3000 r-xp 00002000 fe:00 729                        /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
  7f7c518d3000-7f7c518ed000 r--p 00018000 fe:00 729                        /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
  7f7c518ed000-7f7c518ee000 r--p 00031000 fe:00 729                        /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
  7f7c518ee000-7f7c518ef000 rw-p 00032000 fe:00 729                        /usr/lib/x86_64-linux-gnu/libcrypt.so.1.1.0
  7f7c518ef000-7f7c518f7000 rw-p 00000000 00:00 0
  7f7c518f7000-7f7c518fa000 r--p 00000000 fe:00 3516                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libjemalloc.so.1
  7f7c518fa000-7f7c51931000 r-xp 00003000 fe:00 3516                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libjemalloc.so.1
  7f7c51931000-7f7c51939000 r--p 0003a000 fe:00 3516                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libjemalloc.so.1
  7f7c51939000-7f7c5193b000 r--p 00042000 fe:00 3516                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libjemalloc.so.1
  7f7c5193b000-7f7c5193c000 rw-p 00044000 fe:00 3516                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libjemalloc.so.1
  7f7c5193c000-7f7c5193d000 rw-p 00000000 00:00 0
  7f7c5193d000-7f7c51940000 r--p 00000000 fe:00 819                        /usr/lib/x86_64-linux-gnu/libz.so.1.2.13
  7f7c51940000-7f7c51953000 r-xp 00003000 fe:00 819                        /usr/lib/x86_64-linux-gnu/libz.so.1.2.13
  7f7c51953000-7f7c5195a000 r--p 00016000 fe:00 819                        /usr/lib/x86_64-linux-gnu/libz.so.1.2.13
  7f7c5195a000-7f7c5195b000 r--p 0001c000 fe:00 819                        /usr/lib/x86_64-linux-gnu/libz.so.1.2.13
  7f7c5195b000-7f7c5195c000 rw-p 0001d000 fe:00 819                        /usr/lib/x86_64-linux-gnu/libz.so.1.2.13
  7f7c5195e000-7f7c519a9000 r--p 00000000 fe:00 3519                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libruby.so.3.3.0
  7f7c519a9000-7f7c51d93000 r-xp 0004b000 fe:00 3519                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libruby.so.3.3.0
  7f7c51d93000-7f7c51f1a000 r--p 00435000 fe:00 3519                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libruby.so.3.3.0
  7f7c51f1a000-7f7c51f31000 r--p 005bb000 fe:00 3519                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libruby.so.3.3.0
  7f7c51f31000-7f7c51f35000 rw-p 005d2000 fe:00 3519                       /usr/lib/fullstaq-ruby/versions/3.3.0-jemalloc/lib/libruby.so.3.3.0
  7f7c51f35000-7f7c51f4c000 rw-p 00000000 00:00 0
  7f7c51f4c000-7f7c51f4d000 r--p 00000000 fe:00 702                        /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
  7f7c51f4d000-7f7c51f72000 r-xp 00001000 fe:00 702                        /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
  7f7c51f72000-7f7c51f7c000 r--p 00026000 fe:00 702                        /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
  7f7c51f7c000-7f7c51f7e000 r--p 00030000 fe:00 702                        /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
  7f7c51f7e000-7f7c51f80000 rw-p 00032000 fe:00 702                        /usr/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
  7fffd44eb000-7fffd4cea000 rw-p 00000000 00:00 0                          [stack]
  7fffd4db5000-7fffd4db9000 r--p 00000000 00:00 0                          [vvar]
  7fffd4db9000-7fffd4dbb000 r-xp 00000000 00:00 0                          [vdso]
  ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]
   INFO Main child exited with signal (with signal 'SIGSEGV', core dumped? false)
   INFO Starting clean up.
   WARN hallpass exited, pid: 306, status: signal: 15 (SIGTERM)

Is there any easy way to upgrade the Dockerfile so it uses Ruby 3.3.0 or are there changes that need to be made to it that I’m missing?

How much memory have you assigned to your VM? Rails applications running on Ruby 3.3 will generally fail with 256MB, even if they worked fine on 3.2.

Try scaling memory and/or adding swap:

That was it. I scaled the memory to 512 and it worked. Now just need to figure out if 3.3 is worth the extra cost. Gonna try out the swap option too.

Thanks!

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.