From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id F39101FF0AF for ; Fri, 06 Nov 2026 13:25:02 +0100 (CET) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 89C65215CA; Fri, 06 Nov 2026 13:25:02 +0100 (CET) From: Kefu Chai To: m.koeppl@proxmox.com Subject: Re: [PATCH e2e-tests 25/38] test framework: add Ceph test helpers Date: Fri, 6 Nov 2026 20:24:47 +0800 Message-ID: <20261106122447.245035-1-k.chai@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261104190345.2573464-26-m.koeppl@proxmox.com> References: <20261104190345.2573464-1-m.koeppl@proxmox.com> <20261104190345.2573464-26-m.koeppl@proxmox.com> 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: 1793967892000 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.246 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust 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: P7HZLB5PU3INKVG6E5QJY7PDFXDJ62KB X-Message-ID-Hash: P7HZLB5PU3INKVG6E5QJY7PDFXDJ62KB X-MailFrom: k.chai@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 CC: pve-devel@lists.proxmox.com X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: Hi Michael, > [snip] > + my $pgmap = $last->{pgmap} // {}; > + my $clean = 0; > + for my $state (($pgmap->{pgs_by_state} // [])->@*) { > + $clean += $state->{count} if $state->{state_name} eq 'active+clean'; > + } > + return $clean == ($pgmap->{num_pgs} // 0) ? $last : 0; > [snip] Waiting for quorum and all expected OSDs to be up and in makes sense. For the PGs, I'd allow scrubbing alongside active+clean. A healthy, fully replicated PG can be active+clean+scrubbing or active+clean+scrubbing+deep. The exact match here means the test has to wait for scrubbing to finish, which could cause an unnecessary delay or timeout. Could we accept those two states as well? I'd allow the scrub flags explicitly: checking only that active and clean are present could also accept an inconsistent PG. The OSD drain check in the replacement test later in the series has the same issue.