canonical / canonical/layer-basic

Multiple calls to unitdata.kv().flush()

オープン
#68 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
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

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。