public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH pve-manager v2] api: nodes: dns: restart postfix after changing name servers
@ 2026-11-10  9:31 Jonas Theisen
  2026-11-10 19:13 ` applied: " Thomas Lamprecht
  0 siblings, 1 reply; 3+ messages in thread
From: Jonas Theisen @ 2026-11-10  9:31 UTC (permalink / raw)
  To: pve-devel

Postfix runs its SMTP client in a chroot and copies /etc/resolv.conf
into it only when the instance starts. A running postfix therefore
keeps using the old name servers after a DNS settings change,
which can make mail delivery fail until the next restart.

Use try-restart on postfix.service after writing the new settings, so
postfix is only restarted if it is running.
A failed restart only warns, since the DNS settings were already
written.

Came up in: https://forum.proxmox.com/threads/187442

changes since v1:
* use postfix.service instead of postfix@-
* use try-restart instead of an is-active check plus restart
* replaced run_command with PVE::Cmd::run

Signed-off-by: Jonas Theisen <j.theisen@proxmox.com>
---
 PVE/API2/Nodes.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index df0b2c2d..1e2a96f1 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -1671,6 +1671,10 @@ __PACKAGE__->register_method({
 
         PVE::INotify::update_file('resolvconf', $param);
 
+        # postfix copies resolv.conf into its chroot only on start; a reload does not refresh it
+        eval { PVE::Cmd::run(['systemctl', 'try-restart', 'postfix.service']) };
+        warn "failed to restart postfix - $@" if $@;
+
         return;
     },
 });
-- 
2.47.3





^ permalink raw reply related	[flat|nested] 3+ messages in thread

* applied: [PATCH pve-manager v2] api: nodes: dns: restart postfix after changing name servers
  2026-11-10  9:31 [PATCH pve-manager v2] api: nodes: dns: restart postfix after changing name servers Jonas Theisen
@ 2026-11-10 19:13 ` Thomas Lamprecht
  2026-11-10 19:22   ` Thomas Lamprecht
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Lamprecht @ 2026-11-10 19:13 UTC (permalink / raw)
  To: pve-devel, Jonas Theisen

On Tue, 10 Nov 2026 10:31:57 +0100, Jonas Theisen wrote:
> Postfix runs its SMTP client in a chroot and copies /etc/resolv.conf
> into it only when the instance starts. A running postfix therefore
> keeps using the old name servers after a DNS settings change,
> which can make mail delivery fail until the next restart.
> 
> Use try-restart on postfix.service after writing the new settings, so
> postfix is only restarted if it is running.
> A failed restart only warns, since the DNS settings were already
> written.
> 
> [...]

Applied, thanks!

[1/1] api: nodes: dns: restart postfix after changing name servers
      https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=47df03e04a471b9041f5217dbe887d9ee890ac0b




^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: applied: [PATCH pve-manager v2] api: nodes: dns: restart postfix after changing name servers
  2026-11-10 19:13 ` applied: " Thomas Lamprecht
@ 2026-11-10 19:22   ` Thomas Lamprecht
  0 siblings, 0 replies; 3+ messages in thread
From: Thomas Lamprecht @ 2026-11-10 19:22 UTC (permalink / raw)
  To: pve-devel, Jonas Theisen

Am 10.11.26 um 20:16 schrieb Thomas Lamprecht:
> On Tue, 10 Nov 2026 10:31:57 +0100, Jonas Theisen wrote:
>> Postfix runs its SMTP client in a chroot and copies /etc/resolv.conf
>> into it only when the instance starts. A running postfix therefore
>> keeps using the old name servers after a DNS settings change,
>> which can make mail delivery fail until the next restart.
>>
>> Use try-restart on postfix.service after writing the new settings, so
>> postfix is only restarted if it is running.
>> A failed restart only warns, since the DNS settings were already
>> written.
>>
>> [...]
> 
> Applied, thanks!
> 
> [1/1] api: nodes: dns: restart postfix after changing name servers
>       https://git.proxmox.com/?p=pve-manager.git;a=commitdiff;h=47df03e04a471b9041f5217dbe887d9ee890ac0b

what I forgot to mention:

I dropped the patch changelog from the commit message, that doesn't belong
in the permanent git history, it's rather relevant for development and
review of a series – else series with lots of churn and double digits would
consist mostly of changelogs from unrelated versions. If you place these in
the diff-stat section, i.e below "---" like

```
---

changes since v1:
...

 PVE/API2/Nodes.pm | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
```

It will be visible on list but ignored by git on apply.

As I was touching this anyway I also merged "nodes dns" into one tag
(the idea is to have a rough subsystem like tag not a direct mapping
of the file or api path with s!/!:! applied) and used a Link trailer
for the forum link – again, only because I touched the commit message
anyway, else I would not had bothered, these are tiny and partially
subjective nits.




^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2026-11-10 19:22 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10  9:31 [PATCH pve-manager v2] api: nodes: dns: restart postfix after changing name servers Jonas Theisen
2026-11-10 19:13 ` applied: " Thomas Lamprecht
2026-11-10 19:22   ` Thomas Lamprecht

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal