うちのサーバですが、メンテ失敗でサービスが停止してしまいました。復帰の見込みが今のところないので、当面こちらのアカウントをメインで使わさせていただきます。

いちおメモとして。

v3.1rc1バージョンアップでエラーになったため、ブランチごと正常運用してたものに戻しましたが、sidekiqが1個死にました。

原因は分かってますが、直せる見込みがないです。

見てると同じ問題でコケてる日本人鯖缶が何人もいて、問題認識されてるけど、解決方法については記載がないし、情報共有されてなさげ。
もう半分詰んでる... :otsukare:

どうしよう...

とりあえず、
gem、bandle、yarnを全て作りなおしたけど、エラーは解決できず。もう手がないですね。😭

ここまできたら、ぶっ壊れても構わないのでrubyのバージョンあげてみようか。

というよりも、gccのバージョンを上げたことでrubyとの依存関係も変わるような気がする。これいけるかな。

いちおrubyを2.7.0にしたけど、bundle installしても古いバージョンのrubyが参照されてる気がする。これはなんでじゃろう?
rbenv globalで変更済なんだけど。

Rubyのバージョンがruby-buildだと最新なのに、mastodon直下だと古いバージョンのままになってる。バージョン切替ができない...

mastodonユーザのルートフォルダからだと最新なのに、なぜか"mastodonフォルダ直下"だと古いままになる。謎現象。

現状をまとめるとこんな感じ。
・元々GCCとRubyが古かった。
・新mastodonのRubyはv2.7.0以上でないと動作しない(厳しくね?w)

対応後、
・GCC、Rubyとも最新になったが、mastodonフォルダ直下だとRubyが古いままになってる。
→bundleのインストールがRubyが古いまま実行される→コケる

こんな感じ。

mastodonのrubyって、/home/mastodon/.rbenv/plugins/ruby-buildじゃないと更新が効かないのはパソコン初心者でもわかること。さっきからそうやってるんだけど、一切変わらない。全くもって謎な状態に陥ってる。

なお、サーバは今現在もぶっ壊れたままです。

いちお、やっぱり、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再起動

おおおおおおおおおおおおおおおおおお!?!?!?wwwwwwww(床を転げ回る)

やっとできた(真顔)

localを変えろという罠だったか。

ダメでしたー...。Rubyのバージョンはあがって、エラーの内容も変わった。
ちょっと調査。

やっぱりgemで使うprotobuf(cld3)と、yumでインストールするprotobufがぶつかってる可能性がありそう。

ただ、yum側をアンインストールすると、gemでcld3をインストールしてもbundle installでエラーになる。

逆だとgemから手動でcld3を消してもbundle installでcld3が入ってしまうので、migrationやpricompileでエラーになる。

もうどうしようもない...😭

protobuf-lite-develを入れてみては、という情報をゲット。次て試す。

てかサービス異常になってるからか、activepubも死んでるやんけ。えらいこっちゃだな...(今更か)

とりまIndexにはサービス停止しちゃってる旨書いておくか。めんどくさいけど。

こういうとき予備垢フォローしておけば、こんな面倒なことにはならないんですよ。分かったか?w

人のせいみたいな内容に見えて草生えた。

Indexページにmastodonサービス停止の旨追記しました(対応おっそw)。

以後情報は予備アカウント(このアカウント)から取得してください。

Index:
mynoghra.jp

もしくは、v3.1からはElasticSearchありきになるのかな。そうなると環境的に運用は厳しいんだけど...。

$ 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にアップデートしたことでダンプが増えただけで、コケ方は同じということが分かった。結局解決できず、堂々巡りになってるなぁ...

mastodonってサービス止めてもbundle installってできるのか....。ってRailsが動いていれば実行できるのは当たり前か。(ほんとにぃ?)

そしたら次はprotobuf(cld3)をyumから排除してgemから使えるように調整しようか。

protobufってgemのやつもあるのか。次これ試す。

$ gem install protobuf

こんな感じかな。
なおyumからprotobufは抜き去ってる。にどとつかわん。(ほんまか?)

てか、今気づいたんだけどmastodon直下だとyumのパッケージが読めないみたい。これが原因じゃね... つまり、必死こいてyumでprotobuf入れ込んでもパッケージはみえない=rubyから読めない。

これか?

mastodonのアプリって、Ruby本体でなくまずgem配下にライブラリをかき集めて動かすみたいなんで、yum側に入ってるアプリは見えないのかもしれない。bundleはRubyアプリなのでこっちは上手くいくけど。

と思ってたんだけど、やっぱり失敗してしまって ぐぬう...

え、ひょっとしてRubyが壊れてる?ちょっと入れなおすかー。

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を参照するときにライブラリ不足で失敗してる可能性も高いのではないかと思い始めた。

ので、今度は以下を試す。

1.gemに入れてしまったprotobuf、pkg-configをuninstall
2.bundle installをする
3.rails gemでcld3をuninstall
※3はするパターン、しないパターンで試す。

これでダメだったら、ほんとにフルで再インストールする以外ないなぁって。

はー、今日ずーっとやってたわけではないけど、ふとした拍子に鯖のこと考えてしまってた。

まま、まだmastodonの再インストールする時期じゃないな。まだ手段はいくらかありそう。ただmastodonアプリ側にもなんかないかな?って未だに思ってる自分もいます。

revertしてる鯖もあるみたいだし、なんかあるんでねーの?w

そもそもcld3をuninstallするつもりなら、関係commitをrevertしてもいいんだよなって。ふと思った🙄

いちおcld3を使わないようにrevertしたんだけど、ライブラリの参照は行こうとするみたいで同じエラーでひっかかった。やっぱりこのエラーを解決しないことには進めないっぽいねー。

ごめん...これや...

はいでたーーー!!!
pushしてないやつうーーー!!!wwwww

bundle installしたときにcld3がすって入ってきたから、おかしいと思った。いや、知ってたし!!www

っしゃああああああああああ!!!
cld3をキャンセルしたらpricompileまで漕ぎつけた!この上に出てるwarningは新しいバージョンのrubyがだしてるものなので、大丈夫じゃないかな。しらんけど。

サーバリブート!

さて、どうだろう...🙄

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。