canonical / canonical/layer-basic
Multiple calls to unitdata.kv().flush()
- 主要言語
- Python
- スター
- 10
- フォーク
- 42
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
charms.layer.basic.clear_config_states() calls unitdata.kv().flush(), which will be the second time the storage is flushed in the hook. In the perverse case where a failure happens between these two calls, we can end up with invalid state.
I think this is a use case for an actual `@cleanup` phase in charms.reactive, per https://github.com/juju-solutions/charms.reactive/pull/20
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
調査の方向性
charms.layer.basic.clear_config_states() から始めて、その unitdata.kv().flush() 呼び出しを追跡し、続いて参照されている charms.reactive の cleanup-phase に関する提案を読んでください。完了とは、flush 間で失敗が発生した場合でも hook の state-flush ライフサイクルが無効な state を残さなくなることです。payload には実行するテストもファイルも記載されていません。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- devops
- issue の種類
- リファクタリング
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 30/100