Quantcast
Channel: プログラミング
Viewing all articles
Browse latest Browse all 7991

Sentryで謎のエラーが起きたら外してみると良いかも - 35歳からの中二病エンジニア

$
0
0

みんな大好きSentryだが、そのSentry自体がエラーを吐いて落ちるという珍しい?事態に遭遇したので備忘録がてら書き綴っておく。

何が起きたのか

Rails 7.0から7.1へのアップデート中に、ステージング環境でのみSentryが以下のようなエラーを吐いて落ちるようになった。

/bundle/ruby/3.3.0/gems/sentry-ruby-5.17.3/lib/sentry/utils/
argument_checking_helper.rb:8:in `any?': stack level too deep 
(SystemStackError)

検索しても類似の事例が全く出てこず、どうしたものかと思いながら試しにSentryのGemを取っ払ってみたところ、エラーが変わってあっさり答えが出てきた。

Uglifier::Error: (Uglifier::Error)

このUglifierのエラーに関しては、Uglifierの代わりにTerserを使おうということなので、粛々と置き換えに取り掛かった。

対応内容

GemfileのUglifierをTerserに置き換える。

- gem 'uglifier'+ gem 'terser'

staging.rbおよび production.rbも同様に。

- config.assets.js_compressor = :uglifier+ config.assets.js_compressor = :terser

おわりに

何でこれでSentryが落ちるんだ…という疑問は残るものの、取り敢えずSentryを外してみればエラーの正体が現出するという知見が得られた。よくよく考えてみれば当然のことではあるが、ぱっと見だと混乱させられるので参考になれば幸いだ。

ところで今回のUglifierのエラーは、ES2020等の新しい構文を使うと出てくるものらしいが、何故Railsのアップデート中に発生したのかはこれもまた疑問が残る。まだまだRuby & Rails力が足りていないと思う今日この頃。


Viewing all articles
Browse latest Browse all 7991

Trending Articles