herokuにデプロイができない Segmentation fault
解決したいこと
初心者です。herokuデプロイ時に出てくるエラーを修正したいです。
環境は以下です
ruby 3.1.4
rails 6.1.3.2
mysql2 0.5.6
docker 3
circleci 2.1
herokuを本番環境にしています
発生している問題・エラー
/tmp/build_c0774821/bin/rake: [BUG] Segmentation fault at 0x00007f80c5774008
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux]
自分で試したこと
ChatGPTと相談しつつ、以下の手順を試しました。
①rubyの再インストール
$ rbenv uninstall 3.1.4
$ rbenv install 3.1.4
$ rbenv rehash
②Gemの再インストール
$ rm Gemfile.lock
$ bundle install
ここまで実行した際に、circleciでbuildする際にエラーがでました。
Gemfile.lock is bundled with bundler version 2.3.26
Installing bundler 2.3.26
Fetching bundler-2.3.26.gem
Successfully installed bundler-2.3.26
1 gem installed
Your bundle only supports platforms ["x86_64-darwin-23"] but your local platform
is x86_64-linux. Add the current platform to the lockfile with
`bundle lock --add-platform x86_64-linux` and try again.
Your bundle only supports platforms ["x86_64-darwin-23"] but your local platform
is x86_64-linux. Add the current platform to the lockfile with
`bundle lock --add-platform x86_64-linux` and try again.
Exited with code exit status
ここに記載されている通り、
$ bundle lock --add-platform x86_64-linux
をターミナルで実行し、もう一度pushしたところこのエラーは消えました。
ですが本題のherokuのlogに出てきているSegmentation faultのエラーは解決できておりません。
Segmentation faultについていろいろ調べましたが、バージョンが理由であったり、メモリが足りなかったりと、理由はさまざまであること、そして自分と同じような環境の例を見つけることができず立ち止まっている状況です。
お力添えいただけますと幸いです。よろしくお願いします。
また足りないコードや情報、詳細がありましたらご教示いただけますと幸いです。
今まで確認した記事:
https://github.com/open-telemetry/opentelemetry-ruby-contrib/issues/449
https://qiita.com/tsutsumin_pro/items/db04a9be8764f3604627
追記です。
https://qiita.com/takapon21/items/6122b6184335c2d5f51e
こちらの記事にいくつか解決法がまとまっていたので実施しました。
①ローカルでPrecompileする
% RAILS_ENV=development bin/rails assets:precompile
yarn install v1.22.22
warning package-lock.json found.~~~~
[1/4] 🔍 Resolving packages...
success Already up-to-date.
✨ Done in 1.13s.
I, [2024-05-26T21:55:16.053285 #8932] INFO -- : ~~~~
I, [2024-05-26T21:55:16.053703 #8932] INFO -- : ~~~~
Everything's up-to-date. Nothing to do
警告は出てますが、一応"Everything's up-to-date. Nothing to do"と出ているのでローカルでは問題なさそうです。
②本番環境でPrecompileする
% RAILS_ENV=production bin/rails assets:precompile
yarn install v1.22.22
warning package-lock.json found. ~~~~
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
warning " > @babel/plugin-proposal-private-methods@7.18.6" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/plugin-proposal-private-methods > @babel/helper-create-class-features-plugin@7.24.5" has unmet peer dependency "@babel/core@^7.0.0".
warning "@babel/plugin-proposal-private-methods > @babel/helper-create-class-features-plugin > @babel/helper-replace-supers@7.24.1" has unmet peer dependency "@babel/core@^7.0.0".
warning " > @babel/plugin-proposal-private-property-in-object@7.21.11" has unmet peer dependency "@babel/core@^7.0.0-0".
warning "@babel/plugin-proposal-private-property-in-object > @babel/plugin-syntax-private-property-in-object@7.14.5" has unmet peer dependency "@babel/core@^7.0.0-0".
[4/4] 🔨 Building fresh packages...
✨ Done in 6.07s.
I, [2024-05-26T22:03:28.401158 #14600] INFO -- : Writing ~~~~
I, [2024-05-26T22:03:28.401857 #14600] INFO -- : Writing ~~~~
Everything's up-to-date. Nothing to do
こちらもEverything's up-to-date. Nothing to doです。
この時点で開発環境でも本番環境でも問題ないと出てしまうのは逆に困ったなと思いました…
③docker上での動作
docker-compose upでコンテナを起動させ、問題なくサイトは見ることができました。
④環境変数の不備
このエラーにたどり着く前に環境変数を登録し忘れてて他のエラーにたくさんぶつかりました。ので、ここはもうクリアしているはずです。念の為もう一度確認しましたが不備はなさそうです。
⑤application.css→application.scssに変更
こちらはbootstrapを導入する時にすでに変更したので不備はなさそうです。
このほかにありました
config.assets.initialize_on_precompile = false
の修正は実施していません。