WIP: Rough fix for vanishing renewal config.#7798
WIP: Rough fix for vanishing renewal config.#7798dmwilcox wants to merge 7 commits intocertbot:mainfrom
Conversation
|
To provide an update here, I haven't forgotten about this, but I have a lot on my plate at the moment and @maximillianh was going to find someone else to take a look. |
|
Thanks a bunch @dmwilcox ! Sorry for the delay here. I'm taking a closer look later today, but here are some initial thoughts. It seems that the main issue is that
I think that would make sense. It also seems like this function (and its helpers) might belong better in
Feel free to ping us in the mattermost or here about testing! All the failures at the moment are in |
|
Just to flag this to help with the review process here, it looks like there are some merge conflicts preventing CI from being run on this PR. |
|
All direct calls to create a RenewableCert object (except one) go through storage.get_renewable_cert(). This ensures renewal options are restored to the internal config object if available. This was done by moving parts of renewal._reconstitute() into storage.get_renewable_cert() so those operations could be shared between the 'renew', 'run' and 'certonly' sub-commands. |
| setattr(self.namespace, name, value) | ||
|
|
||
| def __str__(self): | ||
| s = list() |
There was a problem hiding this comment.
Mainly a choice of style and speed, s = [] is faster. Generally, literals are better for speed and probably also more pythonic.
|
Given that #8343 was merged as an alternate fix, is there any reason to keep this open? |
Addresses #7694
Findings: Issue was caused by modifying config by reference and subsequently relying on reference in caller being passed to all subsequent users. Issue did not manifest in 'renew' subcommand but was present in 'certonly' and 'run' code paths due to how object reference was passed.
Suggested permanent fix: Collapse config object references, store it for each given domain in a canonical object attribute and always use it from there.
Still needs: