タケユー・ウェブ日報

Ruby on Rails や Flutter といったWeb・モバイルアプリ技術を武器にお客様のビジネス立ち上げを支援する、タケユー・ウェブ株式会社の技術ブログです。

yum updateしたら、nokogiriがエラーを吐いてサービスが停止した。

Nokogiri.png

不覚。

クライアントから連絡が来て、障害発覚。

godで動かしていたrails scriptが再起動後起動に失敗していた。

[ec2-user@app-production-001 current]$ sudo service app-god status
delayed_job:
  delayed_job-0: start
  delayed_job-1: start
  delayed_job-2: up
  delayed_job-3: start
  delayed_job-4: start
mail_queue_server:
  mail_queue_server-0: start
  mail_queue_server-1: start
  mail_queue_server-2: start
  mail_queue_server-3: start
  mail_queue_server-4: start

起動リトライを延々と繰り返してた。

[ec2-user@app-production-001 current]$ bundle exec rails c production
/usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/gems/activesupport-3.2.XX/lib/active_support/dependencies.rb:251:in `require': liblzma.so.0: cannot open shared object file: No such file or directory - /usr/local/rbenv/versions/2.1.0/lib/ruby/gems/2.1.0/extensions/x86_64-linux/2.1.0-static/nokogiri-1.6.0/nokogiri/nokogiri.so (LoadError)

心当たりは前日行ったyum update

nokogiriを再ビルドしたら復旧した。

[ec2-user@app-production-001 current]$ sudo gem install nokogiri -v=1.6.0
Building native extensions.  This could take a while...
Successfully installed nokogiri-1.6.0
Parsing documentation for nokogiri-1.6.0
Done installing documentation for nokogiri after 3 seconds
1 gem installed

こういうのもあるのか。

今日の教訓

  • パッケージの更新は慎重に。予想外のところで依存関係の問題が発生することも
  • ステージングサーバでちゃんと試す
  • godでdaemonizeしたプロセスについても、繰り返し起動に失敗するようなら検知できるようにする