public inbox for pmg-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [PATCH pmg-api v3] fix #7407: cluster: report: increase maximal filesize to 4M
@ 2026-03-16 12:16 Stoiko Ivanov
  2026-06-02 23:44 ` applied: " Thomas Lamprecht
  0 siblings, 1 reply; 2+ messages in thread
From: Stoiko Ivanov @ 2026-03-16 12:16 UTC (permalink / raw)
  To: pmg-devel

the postfix configuration files are read via PVE::INotify in our
stack and have no implicit limit.

PMG::Cluster and PMG::Report do read the same file's contents using
`file_get_contents` with a limit (explicitly set, or implicit) of 1M.

This causes the cluster-sync to fail in one reported deployment
hosting ~40k domains, with explicit transport entries and comments
(resulting in a 1.4M /etc/pmg/transport).

increasing the size to 4M seems like a good tradeoff between running
into this again in a short while (2M), and causing the cluster-sync to
need excessive amounts of time when comparing larger files for
equality.

If we reach this limit again we should consider better options for
change detection.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
---
v2->v3:
* fixed the commit-message to actually fit the changes
(sorry for the noise)
v1->v2:
* increase size to 4M based on feedback from Dominik - thx!

 src/PMG/Cluster.pm | 4 ++--
 src/PMG/Report.pm  | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/PMG/Cluster.pm b/src/PMG/Cluster.pm
index 02d727ee..3e0b12ac 100644
--- a/src/PMG/Cluster.pm
+++ b/src/PMG/Cluster.pm
@@ -266,10 +266,10 @@ my $cond_commit_synced_file = sub {
         return;
     }
 
-    my $new = PVE::Tools::file_get_contents($srcfn, 1024 * 1024);
+    my $new = PVE::Tools::file_get_contents($srcfn, 4096 * 1024);
 
     if (-f $dstfn) {
-        my $old = PVE::Tools::file_get_contents($dstfn, 1024 * 1024);
+        my $old = PVE::Tools::file_get_contents($dstfn, 4096 * 1024);
         return 0 if $new eq $old;
     }
 
diff --git a/src/PMG/Report.pm b/src/PMG/Report.pm
index 84d1b887..58756c77 100644
--- a/src/PMG/Report.pm
+++ b/src/PMG/Report.pm
@@ -72,7 +72,7 @@ sub dir2text {
         sub {
             my ($file) = @_;
             $report .= "\n# cat $target_dir$file\n";
-            $report .= PVE::Tools::file_get_contents($target_dir . $file) . "\n";
+            $report .= PVE::Tools::file_get_contents($target_dir . $file, 4096 * 1024) . "\n";
         },
     );
 }
-- 
2.47.3





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

* applied: [PATCH pmg-api v3] fix #7407: cluster: report: increase maximal filesize to 4M
  2026-03-16 12:16 [PATCH pmg-api v3] fix #7407: cluster: report: increase maximal filesize to 4M Stoiko Ivanov
@ 2026-06-02 23:44 ` Thomas Lamprecht
  0 siblings, 0 replies; 2+ messages in thread
From: Thomas Lamprecht @ 2026-06-02 23:44 UTC (permalink / raw)
  To: pmg-devel, Stoiko Ivanov

On Mon, 16 Mar 2026 13:16:27 +0100, Stoiko Ivanov wrote:
> the postfix configuration files are read via PVE::INotify in our
> stack and have no implicit limit.
> 
> PMG::Cluster and PMG::Report do read the same file's contents using
> `file_get_contents` with a limit (explicitly set, or implicit) of 1M.
> 
> This causes the cluster-sync to fail in one reported deployment
> hosting ~40k domains, with explicit transport entries and comments
> (resulting in a 1.4M /etc/pmg/transport).
> 
> [...]

Applied, thanks!

[1/1] fix #7407: cluster: report: increase maximal filesize to 4M
      commit: 69a62d286498cee24765d6bcdd3939534e224118




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

end of thread, other threads:[~2026-06-02 23:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-16 12:16 [PATCH pmg-api v3] fix #7407: cluster: report: increase maximal filesize to 4M Stoiko Ivanov
2026-06-02 23:44 ` applied: " 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