mastodon.zunda.ninja is one of the many independent Mastodon servers you can use to participate in the fediverse.
Zundon is a single user instance as home of @zundan as well as a test bed for changes of the code.

Administered by:

Server stats:

1
active users

雑にアップデートしたらdb:migrateに失敗して1時間くらい死んでいました。ひー

マイグレーションでYAML.safe_load が "Symbol" をロードできねえぞってことなので、コード中の permitted_classes に Symbol を追加してやるという雑な対処で乗り切ったのだが、良かったのだろうか……

@hanage999 @mayaeh さんも同様のエラーで悩んでおられました。弊ぼっちでは再現できませんでした。何が違うんだろう…

zunda

@hanage999 @mayaeh マージされたコードではHashWithIndifferentAccessは許可リストに入っていたと思いますー

@zundan @mayaeh ええ。そのクラスは大丈夫になったと思うんですが、それでもこのエラーが出たんです:

Tried to load unspecified class: Symbol

Caused by:
Psych::DisallowedClass: Tried to load unspecified class: Symbol

なので、Symbolごと許可リストに入れてしまうという雑な対処をしましてですね……

@hanage999 @mayaeh はい。元のテーブルにSymbolのあるサーバとないサーバがあるみたいです。

@zundan @mayaeh 同じバージョンを使ってるならみんなデータベースの構造は同じはずだと思ってましたけど、そうでもないんですね……

@hanage999 @mayaeh たぶんrails-settings-cached gemでPostgreSQLではtext型のカラムにRubyのオブジェクトをエンコードしてつっこんでるんだと思います

@zundan @mayaeh

こんな感じで:

YAML.safe_load(self[:value], permitted_classes: [ActiveSupport::HashWithIndifferentAccess, Symbol]) if self[:value].present?

@hanage999 @zundan 教えていただきありがとうございます!
このサーバーでも起きており permitted_classes での配列の書き方どうするんだっけな、となっていたところです。

@mayaeh @zundan お役に立ててよかったです!私もネット記事の見様見真似で……