info.sabakan.industries

Reader

Read the latest posts from info.sabakan.industries.

from Abyss.funからのお知らせ

2021/4/13 12:20~15:50 頃の間、さくらのVPSハードウェア障害のため Abyss.funに接続できない状態になりました。

障害の原因

以下のとおり、さくらのVPSにおいて障害が発生し、ストレージサーバが利用できない状況が発生しておりました。

メンテナンス・障害情報・機能追加|さくらインターネット公式サポートサイト

そのため、一時的にメンテナンスとして、503を返す対応をさせて貰いました。

ついでにDBアップデートも実施しました

VPS障害自体は上記ページの通り13:49に復旧してますが、どうせサービス停止しちゃうならちょっとほんとにメンテナンスをしようかなって思って、ついでにPostgreSQLのアップデートをしていました。

久しぶりにメジャーアップグレードの作業を行ったので、むっちゃ時間がかかってしまいました(小並感)

ただ、今回こんなにサービス停止時間がが伸び伸びになってしまったのは さくらのVPSハードウェア障害のため なので、文句はさくらインターネットに言ってください。僕は悪くないです!!!!

なお、ほんとにさくらインターネットに苦情を入れたとして、僕は一切責任を取りませんのであしからず。

 
もっと読む…

from Abyss.funからのお知らせ

概要

昨日(12/9)午前10時過ぎぐらいからTLの遅延が発生し、18時過ぎごろから24時近くまで完全にサービス停止となる状態となりました。

なんかごめんなさい。

事象の経緯

なんかね。鯖缶工場(サーバ管理者のためのdiscordサーバ)でメンテナンス用コマンド tootctl maintenance fix-duplecates ってコマンドを見かけたんですよ。へーDBのindexを再構築するコマンドなんてあるんだなーって思って興味本位で打ったんですよね。それが間違いの始まりだったよね。

↑異変を感じ始めた僕 しばらく放っておいたら、だんだんsidekiqのキューが溜まってきて、まぁ時間かかるってあったし負荷かかるんだろうなーって思って余裕ぶっこいてました。 そしたら段々キューが積み重なるしTLのレスポンスも悪くなるし。 まぁでもWebアクセスまだ軽いから大丈夫かな。もうちょっと負荷かけてもいいかな。とか完全に舐めプしてました。 で、負荷も増えてきて、これは処理重いやつ止めたほうがいいんじゃねーかなって少し真面目になってきてトゥート検索用のElasticSearchを止めることにしました。 で、ストレージサーバ見たらディスクI/Oの負荷がやばいしsidekiqのキューも減らないしで、これはガチで真剣にやらないと解決しねーなって気持ちにようやくなってきました。 ログ見まくってると以下のようなエラーが結構出てました。 ``` 12月 05 19:53:09 abyss.fun bundle[14035]: 2020-12-05T10:53:09.767Z pid=14035 tid=49caz WARN: Mastodon::RaceConditionError: Mastodon::RaceConditionError ``` ググってみると、のえるさんの投稿が出てきまして。

へーduplecate出ると出るエラーなんだなーそういえばduplecate解消するためのtootctl回したよなー。。。

……あっ!index消したからPostgreSQLでSESELCTのタスクが負荷溜まってたのか!

みたいな感じで、ようやく気づいたのでした。

サービスを止めた状態で、再度 tootctl maintenance fix-duplecated を実行。すべて処理が終わるまで放置。

で、ようやく解消。ということです。

今回の事象における影響範囲

まずは常日頃abyss.funを利用していただいていたユーザ皆様方がアクセスできないことでご迷惑をおかけしました。
これはマジサーセンでした。

とりあえずサービス断するメンテをするときは事前告知するつもりで。今回はサービス断しないだろと高を括ってコマンド打ったらこの件だったので、もう見込み甘いですね。特に「なんで告知もないのに止まってんだよksかよ」って思いましたよね。わかる(わかる)

せめて、なにか作業するときは落ちない作業でもリアルタイム実況しといたほうがいいな。みたいなことを感じました。

リアルタイム実況するための環境を用意しといたほうがいいな。次にサーバ弄るときはそこで実況しといたほうがいいな。みたいなことを思いました。

あと、連合組んで頂いているサーバの方々に関しても、弊鯖との通信ができないことによる不便をおかけしました。

ユーザ単位で言えば、弊鯖に登録しているアカウントからの応答がないこと。
サーバ単位で言えば、40x、50xのHTTPステータスを送っていたこと。

迷惑とか心配とか色々かけましたよね。ほんとサーセン。

あと、ローカルの人にもう一つ、もうひとつ影響なんですが、sidekiqのキューが溜まったときにredisに溜まってた待機キューを削除しました。

どういうことかというと、障害が起きてた10時~24時の間の投稿の一部が消えてるということになります。

障害起こってたからあんまり投稿してないかもしれないですが、この件に関してはリモートから流れてくる&リモートに送る投稿も消失していることになります。なので通常の障害であれば、サービス断中に投稿されたリモートの投稿も復旧後に滝になってTLに流れ、後から読み返すこともできますが、今回の件に関しては見返すことができません。なんか見返したい投稿がこの時間帯にあったらごめんなさい。直接リモートの投稿を参照するようにしていただきたく思います。

復旧後の状況

12/9 23:30過ぎに復旧した後、数分間だけTLが滝になりましたがすぐに通常の流れに戻っています。

そしてこれは怪我の功名なんですが、インデックスを再構築したおかげで、タグTLのレスポンスが格段に改善されました。

タグTLの活用に重きをおいている弊鯖としては、これはとても喜ばしいことです。
いやサービス停止したので諸手を挙げて喜ぶことはできないのだけど。

ともかく、今まで以上に快適にサービスを利用することができるようになりました。

今回の事象に対する処分

今までもたまに短時間のサービス停止をしてサーセンしたことがありましたが、今回は告知なしで結構長い断を行ったので、流石にサーセンしといたほうがいいと思いました。

このことから対策を不十分に取らなかった僕( @guskma )に対し、明日(12/11)の自宅謹慎処分(喫煙禁止)の判断を下しました。

なお、自宅謹慎処分中も、当日はリモートワーク予定であるため、本来の僕の業務内容には全くといって影響はありません。

日頃Abyss.funを楽しみにしている皆様方に置かれましては、この度のサービス停止のためにご不便をおかけしたことを心よりお詫び申し上げます。

ごめんなさいでした。

 
もっと読む…

from Abyss.funからのお知らせ

特に理由とかない気もしますが、最近バージョンアップしてないなーと思ったので久しぶりにmaster追随しました。

3.1.1 → 3.2.1 です。表記は3.2.0となっていますが、3.2.1はセキュリティアップデートなのでmasterでやると3.2.0のままとなっています。

今回のアップデートで確か時限ミュートとかできるようになったはずです。
他にも3.2.x系でいくつか変わったと思いますが、よく覚えていないので tootsuiteのリリースノート を確認してください。

それと今回、Abyss.funの独自機能を少しいじりました。LTLのキーワード取得周りです。

独自機能変更:抽出キーワードの一部除外

LTLに表示する上でノイズになってしまうキーワードを除外しました。
「呪い」と「んなぁ」です。

そんな!LTLに んなぁ できないなんて!と思っているそこのあなた(いるか?) ご安心ください。Abyss.funにはキーワード一致の方法として、単純なテキスト一致と、mecabを利用した構文解析による検出の2種類を用意しています。 今回除外したのはテキスト一致の方だけで、構文解析を利用した方は引き続き利用することができます。ただ、もしかしたら以前はLTLに乗っていた んなぁ でも、場合によってはLTLに乗らない んなぁ が出てきてしまう可能性があるということをご理解いただければと思います。

独自機能変更:FTLのキーワード抽出

キーワード除外に加えてもう一点修正があります。

今までローカルユーザに対してのみキーワード抽出を行っていたものを、連合のアカウントにまで対象を広げます。
これにより、メイドインアビスに関するキーワードを含むすべてのトゥートは連合/ローカルアカウントに限らずLTLに流れることになります。

今までもやろうと思えば出来た機能なんですが、連合の投稿に対してパラメータをいじるのはいかがなものか。と個人的に疑問だったので手をつけていませんでした。

最近tootsuiteの方でリモートのアカウントに対して強制NSFWをつける機能が実装されるとかなんとかで、パラメータ弄っちゃってもいいんだという認識になり、実装に踏み切ることにしました。

……で、いざ動作確認をしてみたところ、思ったように動かずorz

なので今まで通り、ローカルのユーザに対してのみキーワードが動作するようになってます。

この機能については近日のうちにアップデートするようにします。

 
もっと読む…

from Abyss.funからのお知らせ

VPSサーバを借りているさくらインターネット様から連絡があり、サーバ停止を伴うメンテナンスが入ります。

アプリケーションサーバとストレージサーバを午前と午後に分けて2回ダウンの予定です。

今回のメンテナンスによってVPSサーバのストレージがHDDからSSDに代わります。 ディスクI/Oのパフォーマンスが改善されると思うので、多少動作が軽くなるんじゃないかなと思っています。

ただ、それとは別でストレージがちょっと辛い感じになってきているのがあるのでその対応のメンテナンスがそのうち入りますのでよろしくお願いします。

今回のメンテナンスに関するさくらインターネットからのアナウンスは以下から。

【予告】「さくらのVPS」及び「さくらのVPS for Windows Server」リニューアルのお知らせ – さくらのVPSニュース

 
もっと読む…

from Abyss.funからのお知らせ

Abyss.funのストレージサーバがそろそろディスクサイズの限界が見え始めてきたため、不要な投稿を削除するツール (というかマストドンの管理機能として提供されている tootctl のことです) を実行して、DBのダイエットを裏で行っています。

今までも何度かチャレンジしていたんですが、その度にエラーが出て挫折していました。今回改めて試行錯誤してみたところ、原因が判明したので解決に向かうと思われます。

2年4ヶ月程度稼働しているわけですが、その間にDBのメンテをしていなかったのでかなり肥大化していました。メンテナンス実行時点で52GBほどあります。横綱級です。

参考:普通、マストドンでは大規模サーバでも20GB行かないくらいのサイズで済むみたいです

今回エラーを解消して正しく処理されるようになったので、少しずつ減量中です。ガリガリと余分なデータを燃焼させています。

軽くなったらストレージに余裕ができるだけでなく、DBのアクセス効率もやや良くなると思うので、若干の処理速度向上も期待されます。個人的に楽しみです。

処理にしばらく掛かりそうなので、この記事で継続的にどのくらい減ったかを逐次更新していきたいと思います。興味がある方は継続的にご確認ください。

なお、メンテナンス中でもサーバの負荷は殆どありませんし、ダイエット完了後もAbyss.funに登録されているアカウントのデータは全て保全されるので、ご安心ください。

メンテナンス履歴(日付降順)

2020-05-18 7時30分

めっちゃ効果あった

ストレージ:136,521,984Byte (-49,465,344Byte)

空き領域が50GB近く増えた。これが原因だったか…… とりあえずこれでストレージ問題が解決された。よかったよかった。

それと、昨日終わった tootctl account cull で「特定ドメインにリクエスト投げられなかったら削除してないよー自力で削除してね」的なメッセージが出ていたので、別途 tootctl domain purge をして削除することにする

2020-05-18 10:05:06 時点で1/1147

2020-05-17 20時

気がついたら tootctl account cull が終わってた

処理数:112514/112514 DB:52.4GB ストレージ:185,987,328Byte (+6,801,408‬Byte)

全然減らない……引き続き tootctl preview-cards remove でもやってみるか。

処理数:1,157,605件、結構削れるのではないか。

2020-04-03 10時

順調に減って……はいない

処理数:3560/112514 DB:51.7GB ストレージ:179,185,920Byte (+2,644,992‬Byte)

どちらかというとインデックスとかメディアが増えたのが理由のように思う。 statusesは少しずつ減ってきている

というか5日間くらい回して4000件程度しか処理できてないんですが。 単純計算であと30倍程度の時間が必要→5ヶ月かかる計算に……なにそれこわい

2020-04-09 10時

エイプリルフールネタをやったときにちょっとパラメータいじったらDB接続エラー出まくってたの気づかなくて今まで放置してたので多分あまりダイエット成功してないです。

処理数:3899/112514 DB:51.9GB ストレージ:177,069,312Byte (+528,384‬Byte)

設定戻してやり直し

2020-04-01 0時

エイプリルフールネタやったらDBが死んだので一旦停止してやり直し

処理数:356/112720 DB:51.7GB ストレージ:176,540,928Byte (+1,982,464‬Byte)

2020-03-30 9時

DBサイズ的には少し減っただけだけど、ストレージサイズはガッツリ減ってる。いけるいける

処理数:369/112720 DB:51.7GB ストレージ:174,558,464Byte (-1,704,976Byte)

2020-03-30 21時

投稿削除してもだめだったので、 tootctl account cull を実施。(現在活動していないリモートのアカウントを削除していく) 対象のアカウント数112720件、これは期待できそう!

処理数:1132/1132 DB:51.9GB ストレージ:176,263,440Byte (-579,312Byte)

DBのサイズが増えたのはstatusを削除するのにインデックスを作成したからであって決してリバウンドではない。 ダイエットするのにトレーニング始めたら筋肉ついてきて体重増えたのと同じ理論

2020-03-29 7時

気づいたら終わってた。やっぱ domain purge じゃあまり効果なかった。

処理数:1132/1132 DB:51.6GB ストレージ:176,842,752Byte (+6,144Byte)

引き続き、 tootctl status remove で古いリモートの投稿を削除していく(直近 90 60日まで)

2020-03-27 9時

DBサイズは少し増えたけど、ストレージサイズは少し減った

処理数:747/1132 DB:51.6GB ストレージ:176,836,608Byte

2020-03-25 10時

引き続き経過観察

処理数:165/1132 DB:51.5GB

2020-03-24 15時前

tootctl 系コマンドでエラーになる原因が判明する。まずは閉鎖したサーバのデータ削除を行う → tootctl domain purge mao.daizhige.org

処理数:0/1132 DB:52GB程度

 
もっと読む…

from 鯖缶工場 広報課

v0.4から放置してましたが、重い腰を上げてv0.7にアップデートしました!

別に忘れてたわけじゃないです。tarアーカイブを展開してサービス再起動するだけの実質1分で終わる作業をめんどくさがってただけなんです!本当です!(どちらにしろわるい)

お詫びにリリースノートの更新内容を今までの分まとめて雑に翻訳するので許して下さい。

v0.7の更新内容

機能

  • 管理者のユーザ作成
    一般ユーザをコマンドラインから作成できるようになりました:writefreely --create-user username:password
  • ユーザリスト
    管理者用の新しいユーザリストを使用して、コミュニティ内のすべてのユーザーの概要を確認します。これは将来のモデレーション機能としての基盤となります。

修正

  • コマンドラインで無効なユーザー名を持つユーザーを作成しないようにする
  • シングルユーザーインスタンスのドラフト投稿のメタデータ更新を修正しました
  • 「データベースユーザまたはパスワードが設定されていない」という問題を修正しました。 →SQLiteバックインスタンスの起動時のエラー
  • SQLiteベースのインスタンスでハングアップするユーザー作成プロセスを修正しました
  • SQLiteベースのインスタンスでタグ付けされたpostクエリを修正
  • SQLiteベースのインスタンスでActivityPubのフォロー不具合を修正しました

v0.6.0からのアップデート方法

対象OSの最新リリースのアーカイブをダウンロードしてください。 writefreelyサービスを停止し、アーカイブ内をすべて置き換えてからwritefreelyサービスを再起動してください。

v0.6.xからアップグレードするために追加の手順はありません。以前のバージョンからアップグレードする場合は、以前のアップデート手順に従ってください。

v0.6の更新内容

機能

  • SQLite対応
    インスタンスのデータを保存するのにMySQL / MariaDBはもう必要ありません。 MySQLドライバの代わりにそれを使用するには、設定プロセス中にSQLiteを選択するだけです。
  • Reader / ローカルタイムライン
    あなたのインスタンスに書かれた他の記事を読むために書くのを中断してください!インスタンス内や外部の両ユーザのために、管理者は管理パネルでローカルタイムラインを有効にすることが出来ます。(config.ini内の[app] local_timelineでも設定出来ます) ローカルタイムラインはRead Write.asと同じように機能します – RSSフィードを含み、オプトインです。作家は、自分のブログ設定にアクセスし、[公開]表示設定オプションを選択することで、自分の作品をフィードに公開することができます。

変更点

  • コマンドラインからadminユーザーを作成する機能 --create-admin username:password
  • 新しい-c [filename]フラグを使用して、さまざまなコマンドで使用するデフォルト以外の設定ファイルを指定します。
  • highlight.jsとMathJaxをCloudFlareではなくローカルにホストしました。

v0.5.0からのアップデート方法

対象OSの最新リリースのアーカイブをダウンロードしてください。 writefreelyサービスを停止し、アーカイブ内をすべて置き換えてからwritefreelyサービスを再起動してください。

v0.5.xからアップグレードするために追加の手順はありません。以前のバージョンからアップグレードする場合は、以前のアップデート手順に従ってください。

v0.5の更新内容

機能

  • 新しい設定値 bind でバインドアドレスを設定出来ます。
  • highlight.jsでサポートされているすべてのプログラミング言語の構文強調表示サポート
  • 新しい設定値 site_description でNodeInfoの説明を変更します
  • WebUIの管理画面から設定値を変更出来るようになりました。

修正

  • シングルユーザーモードでのメタデータ編集を修正
  • public_statsが有効な場合、常にAboutページに統計を表示する

v0.4.0からのアップデート方法

対象OSの最新リリースのアーカイブをダウンロードしてください。 writefreelyサービスを停止し、アーカイブ内をすべて置き換えてからwritefreelyサービスを再起動してください。

v0.4.xからアップグレードするために追加の手順はありません。以前のバージョンからアップグレードする場合は、以前のアップデート手順に従ってください。

 
もっと読む…

from 鯖缶工場 広報課

#鯖缶工場 広報課です!

先程、当サービスをv0.2.1からv0.3にアップデートしました!

主な更新内容

  • 管理者ページ追加
  • タイムゾーンに対応
  • ドラフトから公開に記事を移した際にActivityPubへ流さなかったのを改善
  • (管理者用)パスワードリセットコマンド
  • 記事の作成日をサポート

詳しくはGitHubのリリースページから Release v0.3 · writeas/writefreely

 
もっと読む…

from 鯖缶工場 広報課

#鯖缶工場 広報課です!

WriteFreelyはつい最近開発が始まったばかりのプロダクトなので、UI周りはとてつもなく貧弱です。サーバ内の記事一覧を閲覧することも出来ません。

一応管理者だったら直接DBを覗くっていう手もあるんですが、それだとなんかコッソリとチェックしてるみたいで気持ち悪かったので、一覧画面をこしらえました!

https://info.sabakan.industries/posts から確認できます!

そのうち本家が同じ機能を実装すると思うのでそうしたらこのページも消えます。ご了承ください。

 
もっと読む…

from 鯖缶工場 広報課

前々から write.as いいなぁActivityPub喋れるブログ面白そうだなぁ。って思ってて、前調べたときはフロントエンドのUIは公開されてないから自力でwrite.asサービスは立ち上げられないよー。みたいな話のはずでした。

今日なんとなく The Federation を見てみたら、Write Freely なんてのがあるじゃないですか。

試しに検証環境で導入してみたらかなり簡単だったんで、しばらくなにかに使ってみよう。ということで、今回鯖缶工場の方で広報用アカウントとして作らせていただきました!

今後はとりあえず

  • 新規立ち上げ依頼の情報掲載
  • 興味深いトピックがあったら紹介

程度の内容をゆるゆると更新していこうと思っています。

今後とも、鯖缶工場をよろしくお願いします!

 
もっと読む…