From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 5A3891FF13F for ; Thu, 29 Jan 2026 13:27:21 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6DC5A18F7; Thu, 29 Jan 2026 13:27:47 +0100 (CET) From: Christian Ebner To: pbs-devel@lists.proxmox.com Subject: [RFC proxmox{,-backup} 0/3] fix #6373: HTTP level keepalive for http2 backup reader connection Date: Thu, 29 Jan 2026 13:26:57 +0100 Message-ID: <20260129122700.448448-1-c.ebner@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1769689565834 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.048 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: H7TPLMW4CCL7UX4UECF7IYVVUKWFZZA5 X-Message-ID-Hash: H7TPLMW4CCL7UX4UECF7IYVVUKWFZZA5 X-MailFrom: c.ebner@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox Backup Server development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Patches implement a HTTP level keepalive mechanism to avoid of active but idle http2 connections established by the backup reader being dropped by reverse proxies. Regular heartbeat requests are send to the Proxmox Backup Server, the frequency based on a given timeout. Heartbeat traffic is only send if no other requests have been send during the timeout period. The timeout given in seconds is read from the PBS_READER_HEARTBEAT_TIMEOUT environment variable, if not set no heartbeat traffic is being send. Since each HTTP request is being logged to the task log for http2 connections, implement a filtering logic allowing to exclude these request logs to avoid log flodding. If the chosen approach is acceptable, the timeout value might also be passed as optional parameter on command invocation as well and exposed in PVE as advanced parameter, although only important if proxies are being used. Example configurations for testing can be found on the individual patch fixing the issue. Link to the bugtracker issue: https://bugzilla.proxmox.com/show_bug.cgi?id=6373 proxmox: Christian Ebner (1): rest-server: add request logfilter by method and path in h2 service proxmox-rest-server/src/h2service.rs | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) proxmox-backup: Christian Ebner (2): fix #6373: HTTP level reader heartbeat for proxy connection keepalive api: h2service: avoid logging heartbeat requests to task log pbs-client/src/backup_reader.rs | 69 ++++++++++++++++++++++++++++++--- src/api2/backup/mod.rs | 2 +- src/api2/reader/mod.rs | 22 +++++++++-- 3 files changed, 84 insertions(+), 9 deletions(-) Summary over all repositories: 4 files changed, 100 insertions(+), 11 deletions(-) -- Generated by git-murpp 0.8.1