Abyss.funからのお知らせ

主にAbyss.funの更新情報を流します。

ってか日付書いて「もう12月かよ!」ってなりました。

はい、すいません。先ほど障害が起きていました。

原因

バックアップファイルが原因でストレージサーバの容量がいっぱいになっていた

対策

時間ごとに取得している差分バックアップファイルを削除し(8GBもあった)、差分バックアップ情報をリセット、ついでにパッケージのアップデートをして再起動しました。

v2.6.3に上げてからそうなんですが、ちょっと調子悪くなってきましたねアビス丼。

新しくPC買って、自宅のネットワーク回りもそろそろ新しくしていこうと思っているので、アビス丼のお引っ越しも検討しています。 もうちょっとまともに管理できるようになるといいなぁ。

なんとなく調子が出たので、 #Tooterminal をアップデートしてきました。

クライアントはこちら https://wd-shiroma.github.io/tooterminal

リポジトリはこちら https://github.com/wd-shiroma/tooterminal

更新内容

DMタイムラインに対応

マストドンv2.6.0よりDMがHTLに流れなくなったので追加しました。 v2.6.0以降でも追加で terminal monitor direct とか打つと従来のようにHTLにDMを流すことができると思います。素敵!

URLパラメータはまだ作ってないので、そのうち追加します。ハッシュタグの方もまだ実装してないので、一緒に追加しちゃおうかなって。

リクエストタイムアウト値を設定できるようになりました

コンフィギュレーションモードから instances request-timeout (秒数) と入力することで、APIリクエスト時のタイムアウト時間を変更することが出来ます。

デフォルトは10秒です。タイムアウトはえーよ!って場合は変更してみてください。

トゥートを時間指定で表示できるようにしました

結構ほしいと思ってた人もいるんじゃないかなって。

例えば show user self statuses max_date (日付時刻) と入力することで自分のトゥートから当時の投稿を見ることができるようになりました。

確かv2.0.0あたりからStatusIDがSnowFlake(unixtimeをベースとしたユニークなIDを生成する方法)となっているため、日付時刻から大まかなIDの範囲を推定できるわけです。

まぁこのID生成方法がv2.0.0からなので、それ以前のインスタンスに所属する方は日付検索がもちろんできません。対応しろ?知らんがな!

また、HTL・LTL・FTLも検索できるようにはしてありますが、取れない場合もあるみたいです。よくわからないです。たぶんPostgreSQLの仕様なんじゃないかと思ってます。知らんけど。

function d(T_T) {
    return '(≧▽≦)♫';
}

console.log(d('-'));

昨日Abyss.funのアップデートを行い、v2.6.1→v2.6.2になりました。

(ブラウザ上ではv2.6.1のままですが、今回はセキュリティアップデートなので表記は変わらないです)

昨日から今日にかけて繋がりにくい事象が発生しました。経緯についてはAbyss.fun障害情報 — ぐすくま@鯖缶工場広報課を確認してください。

結局何が問題だったの

恐らく理由は2つ有ると思ってます。

  1. bundlerでパッケージをインストールするときに正しく入れられなかった

master追随する際に大抵打つ bundle install 実行時にタイムアウトが多発して正しくパッケージを入れられませんでした。

これについては、bundle config timeout (タイムアウト秒) を入れることで回避ができました。 デフォルトで10秒みたいなので、うちは60秒に伸ばしています。

  1. PostgreSQLの接続数が増えてDB接続エラーが発生

journalctl -fu mastodon-web でwebのログを確認したところ、FATAL: remaining connection slots are reserved for non-replication superuser connections というメッセージが流れていました。

PostgreSQLは一般ユーザのDB接続数が制限されていて、デフォルトでは100になっているようです。(/etc/postgresql/xx/main/postgresql.confに設定があります)

接続数が増えた原因について、pgHeroの管理ページを見たところ、一部のクエリがずっと処理待ち状態にあったのが原因みたいです。

これについては、pgHeroの方で「タイムアウト設定したほうがいいよ!」と警告を出してくれていたおかげですぐに対処することが出来ました。(pgHeroにたどり着くまでが時間かかった)

今の所安定して稼働しているみたいです(以前と比べるとちょっと重くなったような気もしなくはない)ので、ひとまずは様子見とすることにします。

(というか、既にDBのサイズが30GB超えてるし、それで重くならないほうがおかしい気がしないでもない…)

今後とも、Abyss.funをよろしくおねがいします。

#abyss_fun

概要

11/25の朝にマストドンのバージョンを2.6.2にあげてからアクセス出来ない事象が発生しています。

事象

Webアクセス周りのすべてのサービス(ブラウザ表示、APIリクエスト等)がサーバ内部エラー(500)またはタイムアウトになる。

症状

クライアントからのリクエストを処理するプロセス(mastodon-web)からDBにデータを保存する際に何らかの不具合があり、プロセスを処理しきれない

原因

マストドンアップデートによるDBコネクション数の増加 (恐らく)

対応

(11/26 10:30) 原因調査のためメンテナンス開始

(11/26 11:30) bundle install から改めてインストール中。。。

(11/26 11:50) Webは正常に受け付けるがsidekiqの待機キューから処理キューへ移行しない不具合が発生。v2.6.1への切り戻しを開始

(11/26 12:05) v2.6.1に戻したらWebのほうでInternalError出てしまったので、再度v2.6.2に再度上げてやってみる

(11/26 12:05) v2.6.2に再度上げたら処理キューへ移った…何だったんだ… ひとまず待機キューがたまりまくってるので様子見

(11/26 13:00) 昨日の事象同様web周りだけが調子悪いので、引き続きcronで定期的にサービス再起動をして様子見

(11/26 15:25) pgHero見てみたら、「コネクションのタイムアウト設定してないから長時間動いてるクエリあるでー」ってワーニングがあったのでpsqlからタイムアウトを設定してみた。安定したような気がするので一旦ここで収束とさせてもらいます。

. #abyss_fun

Write Freely、案外機能が優秀なのでいろいろ弄ってみたくなった。

どうやら文中に #ハッシュタグみたいな感じで つけとくとちゃんとタグがAPに流れるらしい。みたいなこととか。

最低限な機能で十分モノを書くのに適した実装されてる感じ。あとはUIがばっちりなればばっちりだね!って思った。

とりあえず、Goで書かれているので拡張はどうしたらいいのだろうとか今後調べていきたい。

できればアップデートもAPに流れるようにしてほしいなぁとか。

Draftに保存されている下書きを他のブログに移動しても特に何も起こらないし。そこらへんはちょっと不便かな。

後タイムゾーンで表示される時間がおかしいのもどげんかしたい。