Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

beforeShutdownハンドラーはうまく機能してなさそう #8967

Open
mei23 opened this issue Jul 8, 2022 · 2 comments
Open

beforeShutdownハンドラーはうまく機能してなさそう #8967

mei23 opened this issue Jul 8, 2022 · 2 comments
Labels
🐛Bug Unexpected behavior packages/backend Server side specific issue/PR

Comments

@mei23
Copy link
Contributor

mei23 commented Jul 8, 2022

💡 Summary

beforeShutdownハンドラーはほとんどの環境でうまく機能してなさそう
https://github.com/misskey-dev/misskey/blob/4ac75243e5a567ef3b7e2f1b068429648b86c24f/packages/backend/src/misc/before-shutdown.ts

非Clusterモードでは機能している。

Clusterモード (default) では
workerプロセスにだけシグナルが飛んできたときには確かに機能している。
ただし、masterプロセスなどにシグナルが飛んできたときには、すぐ (5msくらい) に終了させられたりして機能してなさそう。

node (Misskey master)
 => node (Misskey worker)

Docker では
tiniがシグナルを下に飛ばしたりしないのでそもそもシグナルが飛ばなそう。

tini
 => node (Misskey master)
   => node (Misskey worker)

チャートの保存間隔は20分間隔だけど、beforeShutdownがほぼあてにならないのでもっと短いほうがいいかも。
https://github.com/misskey-dev/misskey/blob/4ac75243e5a567ef3b7e2f1b068429648b86c24f/packages/backend/src/services/chart/index.ts

🥰 Expected Behavior

beforeShutdownの処理が実行される

🤬 Actual Behavior

beforeShutdownの処理が途中で終わってしまったり、そもそも動かなかったりする。

📝 Steps to Reproduce

  1. beforeShutdownに数秒など長めの処理を追加する
  2. 各プロセスにシグナルを飛ばしてみる

📌 Environment

develop
Ubuntu

@mei23 mei23 added the ⚠️bug? This might be a bug label Jul 8, 2022
@syuilo syuilo added 🐛Bug Unexpected behavior packages/backend Server side specific issue/PR and removed ⚠️bug? This might be a bug labels Jul 8, 2022
@syuilo
Copy link
Member

syuilo commented Jul 8, 2022

なるほど👀

チャートの保存間隔は20分間隔だけど、beforeShutdownがほぼあてにならないのでもっと短いほうがいいかも。

  • 運用上プロセスが終了することってそこまでないかも?
  • DBへの書き込みは重くなりがちだからできるだけ減らしたい
  • チャートの精度は(もちろん高いに越したことはないけど)少し低くても問題にならなそう

と思うから特に変えなくても良いかなと思ったり

@mei23
Copy link
Contributor Author

mei23 commented Jul 8, 2022

運用上プロセスが終了することってそこまでないかも?

たぶん起きるのはほぼインスタンスを再起動したとき

感覚だから方針はなんとも言えないけど

  • beforeShutdownほぼ効いてないと思うので(あと、開発時にCtrl+C後に出てきてなんとなく邪魔なので)廃止
  • 20分欠けると誤差最大33%くらいになるので、10分(17%)とか 5分(8%)とかにする

とかでもいい気はするのだわ。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛Bug Unexpected behavior packages/backend Server side specific issue/PR
Projects
None yet
Development

No branches or pull requests

2 participants