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

hangs on Debian ppc64el #415

Open
terceiro opened this issue May 8, 2022 · 4 comments
Open

hangs on Debian ppc64el #415

terceiro opened this issue May 8, 2022 · 4 comments

Comments

@terceiro
Copy link
Contributor

terceiro commented May 8, 2022

When running the bootsnap test suite on the Debian ppc64el architecture, some tests will cause bootsnap to hang forever. One can reproduce this with, for example, Bootsnap::CLITest#test_precompile_gemfile. I can reproduce this with both ruby3.0 and ruby3.1, but only on ppc64el. No other official Debian architecture is affected.

Steps to reproduce

  1. Download the "ppc64el-pseries" qemu images from https://people.debian.org/~gio/dqib/.
  2. Unzip the contents, cd into the generated directory
  3. Boot the image with this command line: qemu-system-ppc64le -machine pseries -cpu power9 -m 4G -smp 2 -drive file=image.qcow2 -device e1000,netdev=net -netdev user,id=net,hostfwd=tcp::2222-:22 -kernel kernel -initrd initrd -nographic -append "root=LABEL=rootfs console=hvc0"
  4. Login as root, password "root"
  5. apt-get update && apt-get install -qy ruby-dev git
  6. git clone https://github.com/Shopify/bootsnap.git
  7. cd bootsnap
  8. bundle install
  9. bundle exec rake TESTOPTS='-v -ntest_precompile_gemfile'

(ruby3.0 is currently the default. to reproduce with ruby3,1, install ruby3.1-dev, and use bundle3.1 instead of just bundle in the command lines above).

the output looks like this:

# bundle exec rake TESTOPTS='-v -ntest_precompile_gemfile'
/usr/bin/gmake install target_prefix=
/usr/bin/install -c -m 0755 bootsnap.so /root/bootsnap/lib/bootsnap
cp tmp/powerpc64le-linux-gnu/bootsnap/3.0.4/bootsnap.so tmp/powerpc64le-linux-gnu/stage/lib/bootsnap/bootsnap.so
Run options: -v -ntest_precompile_gemfile --seed 52554

# Running:

Bootsnap::CLITest#test_precompile_gemfile = 

(and stays there forever, until I interrupt with a control-c; but even then there are multiple processed left behind that I need to kill manually)

Bootsnap version: from git
Ruby version: 3.0 or 3.1

@casperisfine
Copy link
Contributor

Thanks for the report, that's intriguing.

If you wish to debug this further, I'd suggest trying to get a Ruby backtrace from these sub processes.

A cheap way to do this is to spawn a thread that periodically dump the main thread backtrace:

Thread.new { loop { File.write("/tmp/ruby-#{$$}.log", Thread.main.backtrace.join("\n")); sleep 1 } }

If you inject this right after the fork call, it should give you an idea.

I'll see if I find time to do this myself, but no promises.

Also it's quite likely that you just uncovered a bug in Ruby.

@terceiro
Copy link
Contributor Author

A cheap way to do this is to spawn a thread that periodically dump the main thread backtrace:

Thread.new { loop { File.write("/tmp/ruby-#{$$}.log", Thread.main.backtrace.join("\n")); sleep 1 } }

I tried a slight variation, to be able to see progress from each process:

Thread.new { loop { File.write("/tmp/ruby-#{$$}.log", "================\n" + Thread.main.backtrace.join("\n") + "\n", mode: "a"); sleep 1 } }

But I think looping did't work, because each file has only a single backtrace. I think the processes get stuck right after the File.write, during the sleep, so the main process never gives control back to the thread. At that point, most of them are in either the Marshall.load call, except for 1 that's in a compile_file call:

================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/compile_cache/iseq.rb:29:in `compile_file'
/home/terceiro/bootsnap/lib/bootsnap/compile_cache/iseq.rb:29:in `input_to_storage'
/home/terceiro/bootsnap/lib/bootsnap/compile_cache/iseq.rb:69:in `precompile'
/home/terceiro/bootsnap/lib/bootsnap/compile_cache/iseq.rb:69:in `precompile'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:186:in `block in precompile_ruby'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:185:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:185:in `precompile_ruby'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:67:in `call'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:67:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `binmode'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'
================
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `getbyte'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `load'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in `block in work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:63:in `work_loop'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:77:in `block in spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `fork'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:74:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `each'
/home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:94:in `spawn'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:55:in `block in precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:196:in `fix_default_encoding'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:43:in `precompile_command'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `public_send'
/home/terceiro/bootsnap/lib/bootsnap/cli.rb:116:in `run'
/home/terceiro/bootsnap/test/cli_test.rb:57:in `test_precompile_gemfile'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:98:in `block (3 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:195:in `capture_exceptions'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:95:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:281:in `time_it'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:94:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:221:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest/test.rb:93:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:1042:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:350:in `run_one_method'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:337:in `block (2 levels) in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `each'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:336:in `block in run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:376:in `on_signal'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:363:in `with_info_handler'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:335:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `block in __run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `map'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:169:in `__run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:146:in `run'
/home/terceiro/bootsnap/.git/bundle/ruby/3.0.0/gems/minitest-5.15.0/lib/minitest.rb:73:in `block in autorun'

I also tried running that one test under strace, and the log ends (hangs) like this:

ppoll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, NULL, NULL, 8) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=27598, si_uid=3142, si_status=0, si_utime=13, si_stime=1} ---
getpid()                                = 27556
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
timer_settime(16, 0, {it_interval={tv_sec=0, tv_nsec=100000000}, it_value={tv_sec=0, tv_nsec=100000000}}, NULL) = 0
rt_sigreturn({mask=[]})                 = -1 EINTR (Interrupted system call)
getpid()                                = 27556
timer_settime(16, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
getpid()                                = 27556
sched_yield()                           = 0
ppoll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, NULL, NULL, 8) = 1 ([{fd=4, revents=POLLIN}])
getpid()                                = 27556
read(4, "\1\0\0\0\0\0\0\0", 8)          = 8
getpid()                                = 27556
sched_yield()                           = 0
ppoll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, NULL, NULL, 8/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - bufx
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - bufy
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - curx
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - cury
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - wattr
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - maxx
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:32: warning: assigned but unused variable - maxy
/usr/lib/ruby/vendor_ruby/ansi/terminal/win32.rb:48: warning: assigned but unused variable - ok
) = ? ERESTARTNOHAND (To be restarted if no handler)
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=27594, si_uid=3142, si_status=0, si_utime=27, si_stime=2} ---
getpid()                                = 27556
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
timer_settime(16, 0, {it_interval={tv_sec=0, tv_nsec=100000000}, it_value={tv_sec=0, tv_nsec=100000000}}, NULL) = 0
rt_sigreturn({mask=[]})                 = -1 EINTR (Interrupted system call)
getpid()                                = 27556
timer_settime(16, 0, {it_interval={tv_sec=0, tv_nsec=0}, it_value={tv_sec=0, tv_nsec=0}}, NULL) = 0
getpid()                                = 27556
sched_yield()                           = 0
ppoll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, NULL, NULL, 8) = 1 ([{fd=4, revents=POLLIN}])
getpid()                                = 27556
read(4, "\1\0\0\0\0\0\0\0", 8)          = 8
getpid()                                = 27556
sched_yield()                           = 0
ppoll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}], 2, NULL, NULL, 8

@terceiro
Copy link
Contributor Author

something else that feels weird is that temporary directories left over from those tests look quite big:

$ du -shc /tmp/bootsnap-test2022051*
12M	/tmp/bootsnap-test20220510-20661-te6zrm
140M	/tmp/bootsnap-test20220511-23438-zirpy5
140M	/tmp/bootsnap-test20220511-25624-3o4l2o
140M	/tmp/bootsnap-test20220511-25726-v7x5r1
136M	/tmp/bootsnap-test20220511-27487-jnhkaa
136M	/tmp/bootsnap-test20220511-27556-b0p4d9
701M	total

I don't know if this data point is useful, as I didn't study the bootsnap internals yet, I'm just trying to handle the fallout from a new ruby version. :) But when I run the full test suite on my local machine (x86_64), all of those temporary directories are a few hundred KB.

@casperisfine
Copy link
Contributor

Ok, so most workers are stuck on /home/terceiro/bootsnap/lib/bootsnap/cli/worker_pool.rb:64:in binmode'`, which is expected, they're just waiting for the master process to give them work.

One however is stuck on /home/terceiro/bootsnap/lib/bootsnap/compile_cache/iseq.rb:29:in compile_file', which is a call to RubyVM::InstructionSequence.compile_file`, which seem to match my suspicion of a Ruby bug.

As a next step I'd suggest to add some print in there to see which file it's trying to compile, if it's consistent that should allow to reduce the reproduction step to just RubyVM::InstructionSequence.compile_file("path/to/file.rb").

something else that feels weird is that temporary directories left over from those tests look quite big:

Yes, what's way too much, that's another indication that it might be a bug in compile_file, something must cause it to generate way more bytecode than it should.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants