うちのサーバですが、メンテ失敗でサービスが停止してしまいました。復帰の見込みが今のところないので、当面こちらのアカウントをメインで使わさせていただきます。
#mynoghra_info
いちおメモとして。
v3.1rc1バージョンアップでエラーになったため、ブランチごと正常運用してたものに戻しましたが、sidekiqが1個死にました。
原因は分かってますが、直せる見込みがないです。
#lucida_adm
とりあえず、
gem、bandle、yarnを全て作りなおしたけど、エラーは解決できず。もう手がないですね。😭
#lucida_adm
現状をまとめるとこんな感じ。
・元々GCCとRubyが古かった。
・新mastodonのRubyはv2.7.0以上でないと動作しない(厳しくね?w)
対応後、
・GCC、Rubyとも最新になったが、mastodonフォルダ直下だとRubyが古いままになってる。
→bundleのインストールがRubyが古いまま実行される→コケる
こんな感じ。
#lucida_adm
なお、サーバは今現在もぶっ壊れたままです。
いちお、やっぱり、mastodonのカレントからだとrubyが古いので(それでも2.6.5なんだけど)ライブラリの参照ができずにプリコンが通ってないのだと思います。パスの通し方を調査してます。
やること。
1.Rubyの最新をmastodon権限に読ませる
2.bundleを一旦削除
3.gemシステムそのもののアップデート
4.mastodonで使うgemのインストール
5.cld3のインストール(いるの?)
6.bundleのインストール
7.yarnインストール
8.migrate→pricompile
9.mastodon再起動
#lucida_adm #るしメモ
やっぱりgemで使うprotobuf(cld3)と、yumでインストールするprotobufがぶつかってる可能性がありそう。
ただ、yum側をアンインストールすると、gemでcld3をインストールしてもbundle installでエラーになる。
逆だとgemから手動でcld3を消してもbundle installでcld3が入ってしまうので、migrationやpricompileでエラーになる。
もうどうしようもない...😭
#lucida_adm
protobuf-lite-develを入れてみては、という情報をゲット。次て試す。
#るしメモ #lucida_adm
てかサービス異常になってるからか、activepubも死んでるやんけ。えらいこっちゃだな...(今更か)
とりまIndexにはサービス停止しちゃってる旨書いておくか。めんどくさいけど。
こういうとき予備垢フォローしておけば、こんな面倒なことにはならないんですよ。分かったか?w
#mynoghra_info
$ RAILS_ENV=production bundle exec rails assets:precompile
rails aborted!
LoadError: Could not open library '/home/mastodon/live/vendor/bundle/ruby/2.7.0/gems/cld3-3.2.6/lib/../ext/cld3/libcld3.so': /home/mastodon/live/vendor/bundle/ruby/2.7.0/gems/cld3-3.2.6/lib/../ext/cld3/libcld3.so: undefined symbol: _ZNK6google8protobuf11MessageLite25InitializationErrorStringB5cxx11Ev
/home/mastodon/live/vendor/bundle/ruby/2.7.0/gems/ffi-1.10.0/lib/ffi/library.rb:145:in `block in ffi_lib'
#るしメモ
Rubyを2.7にアップデートしたことでダンプが増えただけで、コケ方は同じということが分かった。結局解決できず、堂々巡りになってるなぁ...
#lucida_adm
mastodonってサービス止めてもbundle installってできるのか....。ってRailsが動いていれば実行できるのは当たり前か。(ほんとにぃ?)
#lucida_adm
そしたら次はprotobuf(cld3)をyumから排除してgemから使えるように調整しようか。
#lucida_adm
protobufってgemのやつもあるのか。次これ試す。
$ gem install protobuf
こんな感じかな。
なおyumからprotobufは抜き去ってる。にどとつかわん。(ほんまか?)
てか、今気づいたんだけどmastodon直下だとyumのパッケージが読めないみたい。これが原因じゃね... つまり、必死こいてyumでprotobuf入れ込んでもパッケージはみえない=rubyから読めない。
これか?
#lucida_adm
mastodonのアプリって、Ruby本体でなくまずgem配下にライブラリをかき集めて動かすみたいなんで、yum側に入ってるアプリは見えないのかもしれない。bundleはRubyアプリなのでこっちは上手くいくけど。
と思ってたんだけど、やっぱり失敗してしまって ぐぬう...
#lucida_adm
gemにprotobufとpkg-configを入れてbundleを入れなおしたけど、やっぱりprotobufの構成が見えないぞ?って怒られる。見えないというのが、pgk-configなんだけど、
gem list
でgemに入ってるのは確認できてるんだけどなぁ。mastodonのアプリでもgemとrubyを使うのでちぐはぐになってないかな。
yumでprotobufとpkg-configを入れればbundle installは通るんだけど、今度はRailsからライブラリにアクセスができなくなるので。
ライブラリの参照がRuby、gem、Railsでそれぞれちぐはぐになってるのを考えると、いくら処置を施してもキリがない気がするんだけどなぁ....。
あと、気づいたもう1つは、yumにpkg-configが含まれてなかったこと。protobufを動かすのに必要なライブラリなので、今の対処前はRailsからyumで入れたprotobufを参照するときにライブラリ不足で失敗してる可能性も高いのではないかと思い始めた。
#lucida_adm
ので、今度は以下を試す。
1.gemに入れてしまったprotobuf、pkg-configをuninstall
2.bundle installをする
3.rails gemでcld3をuninstall
※3はするパターン、しないパターンで試す。
これでダメだったら、ほんとにフルで再インストールする以外ないなぁって。
はー、今日ずーっとやってたわけではないけど、ふとした拍子に鯖のこと考えてしまってた。
いちおcld3を使わないようにrevertしたんだけど、ライブラリの参照は行こうとするみたいで同じエラーでひっかかった。やっぱりこのエラーを解決しないことには進めないっぽいねー。
#lucida_adm
っしゃああああああああああ!!!
cld3をキャンセルしたらpricompileまで漕ぎつけた!この上に出てるwarningは新しいバージョンのrubyがだしてるものなので、大丈夫じゃないかな。しらんけど。
#lucida_adm
もしくは、v3.1からはElasticSearchありきになるのかな。そうなると環境的に運用は厳しいんだけど...。