Enforce reasonable timeouts for all routines
- 主要言語
- Go
- スター
- 6.1k
- フォーク
- 327
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
As part of the goal to improve maddy robustness, context.Context should be used
consistently in all interfaces and reasonable timeouts for operations should be enforced
using these.
- [ ] SMTP check methods
- [ ] SMTP modifier methods
- [ ] IMAP commands (server)
- [ ] SMTP commands (server)
- [ ] Delivery target operations
With that considered, maddy should have as much operations as possible implemented
in a rollback-able way so composite operations could be cancelled due to timeout in one of
sub-operations.
Notable considerations:
- [ ] Delivery.AddRcpt should be revertable. At least last call should be.
With current implementation (non-revertable AddRcpt), it is possible that if multiple delivery targets are used
for one recipient, duplicate messages may be delivered in case of partial failures.
コントリビューションガイド
調査の方向性
まず、issue で言及されている SMTP のチェックおよび変更メソッド、IMAP および SMTP サーバーコマンド、配信先に対する操作を一覧化します。次に、context.Context とキャンセルが現在これらのインターフェースをどのように流れているかを追跡し、各操作のタイムアウトおよびロールバックの動作を定義します。完了の条件は、Delivery.AddRcpt の直近の呼び出しを元に戻すことも含め、一覧化した操作を安全にキャンセルできることです。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- go
- 領域
- backend
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100