diff --git a/tests/rptest/services/redpanda.py b/tests/rptest/services/redpanda.py index f32e9db66a35b..dea380f03fc98 100644 --- a/tests/rptest/services/redpanda.py +++ b/tests/rptest/services/redpanda.py @@ -3686,6 +3686,7 @@ def stop_and_scrub_object_storage(self, run_timeout=60): # can be set to None for no timeout def all_partitions_uploaded_manifest(): + manifest_not_uploaded = [] for p in self.partitions(): try: status = self._admin.get_partition_cloud_storage_status( @@ -3705,8 +3706,13 @@ def all_partitions_uploaded_manifest(): "metadata_update_pending"] is False or status.get( 'ms_since_last_manifest_upload', None) is not None if remote_write and not has_uploaded_manifest: - self.logger.info(f"Partition {p} hasn't yet uploaded") - return False + manifest_not_uploaded.append(p) + + if len(manifest_not_uploaded) != 0: + self.logger.info( + f"Partitions that haven't yet uploaded: {manifest_not_uploaded}" + ) + return False return True @@ -3714,8 +3720,9 @@ def all_partitions_uploaded_manifest(): # check tiered storage status to wait for uploads to complete. if self._started: # Aggressive retry because almost always this should already be done + # Each 1000 partititions add 30s of timeout wait_until(all_partitions_uploaded_manifest, - timeout_sec=30, + timeout_sec=30 + len(self.partitions()) // 33, backoff_sec=1) # We stop because the scrubbing routine would otherwise interpret