You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by gk...@apache.org on 2026/08/05 15:35:18 UTC
(iggy) 01/01: merge master
This is an automated email from the ASF dual-hosted git repository.
numinnex pushed a commit to branch partition_superblock
in repository https://gitbox.apache.org/repos/asf/iggy.git
commit 4ff889f52c4da7307cc36ed27982becfb8f044f9
Merge: 9494dd6cc 0d76a691c
Author: Grzegorz Koszyk <g....@gmail.com>
AuthorDate: Wed Aug 5 17:35:12 2026 +0200
merge master
Cargo.lock | 2 +-
Cargo.toml | 1 +
bdd/python/uv.lock | 4 +-
core/common/src/types/partition/mod.rs | 2 +-
core/configs/Cargo.toml | 1 +
core/configs/src/server_ng_config/cluster.rs | 987 ++++++++++++++++++++-
core/configs/src/server_ng_config/defaults.rs | 1 +
core/configs/src/server_ng_config/validators.rs | 1 +
core/configs_derive/src/config_env.rs | 22 +-
.../tests/cluster/metadata_checkpoint_restart.rs | 138 ++-
core/integration/tests/sdk/mcp_parity.rs | 608 -------------
core/integration/tests/sdk/messages.rs | 172 ----
core/integration/tests/sdk/mod.rs | 4 -
.../tests/server/cluster_metadata_vsr.rs | 229 ++++-
core/integration/tests/server/general.rs | 19 +-
core/integration/tests/server/http_client.rs | 19 +-
core/integration/tests/server/http_tls.rs | 112 ++-
.../server/metadata_checkpoint_recovery_vsr.rs | 138 ---
core/integration/tests/server/mod.rs | 4 -
.../server/scenarios/create_message_payload.rs | 148 ---
core/integration/tests/server/scenarios/mod.rs | 1 -
core/server-ng/Cargo.toml | 6 +-
core/server-ng/config.toml | 47 +
core/server-ng/src/bootstrap.rs | 9 +-
core/server-ng/src/cluster_meta.rs | 125 ++-
core/server-ng/src/dispatch.rs | 36 +-
core/server-ng/src/http.rs | 37 +-
core/server-ng/src/http/error.rs | 109 ++-
core/server-ng/src/http/extractor.rs | 22 +-
core/server-ng/src/http/handlers.rs | 7 +-
core/server-ng/src/http/reads.rs | 3 +-
core/server-ng/src/http/state.rs | 22 +-
core/server-ng/src/http/tls.rs | 15 +-
core/server-ng/src/responses.rs | 12 +-
core/server-ng/src/session_manager.rs | 28 +
core/server-ng/tests/sdk_e2e.rs | 175 +---
examples/python/uv.lock | 2 +-
foreign/python/Cargo.toml | 2 +-
foreign/python/apache_iggy.pyi | 221 ++++-
foreign/python/pyproject.toml | 2 +-
foreign/python/src/client.rs | 109 ++-
foreign/python/src/consumer.rs | 32 +-
foreign/python/src/lib.rs | 5 +-
foreign/python/src/topic.rs | 276 +++++-
foreign/python/tests/test_topic.py | 235 ++++-
foreign/python/uv.lock | 4 +-
46 files changed, 2649 insertions(+), 1505 deletions(-)
diff --cc core/integration/tests/server/mod.rs
index 9cb6c3042,8c3f6e052..b93b0052e
--- a/core/integration/tests/server/mod.rs
+++ b/core/integration/tests/server/mod.rs
@@@ -48,14 -48,6 +48,10 @@@ mod cluster_metadata_vsr
// across a replica restart.
#[cfg(feature = "vsr")]
mod cluster_view_durability_vsr;
+// A partition view change must persist the advanced view in that group's own
+// superblock and recover it from disk across a replica restart.
+#[cfg(feature = "vsr")]
+mod partition_view_durability_vsr;
- // A metadata checkpoint must drain the WAL and recover from the snapshot fold plus
- // the WAL suffix across a restart.
- #[cfg(feature = "vsr")]
- mod metadata_checkpoint_recovery_vsr;
// 80-case race matrix with hardcoded HTTP variants (test_matrix bypasses
// the harness transport filter).
mod concurrent_addition;
diff --cc core/server-ng/src/dispatch.rs
index bfc11f2a2,a477d1f88..783c531ad
--- a/core/server-ng/src/dispatch.rs
+++ b/core/server-ng/src/dispatch.rs
@@@ -1382,9 -1381,9 +1396,9 @@@ async fn handle_non_replicated_request<
}
}
- #[allow(clippy::future_not_send)]
+ #[allow(clippy::future_not_send, clippy::too_many_arguments)]
-async fn handle_default_non_replicated<B, MJ, S>(
- shard: &Rc<ShellShard<B, MJ, S>>,
+async fn handle_default_non_replicated<B, MJ, S, SB>(
+ shard: &Rc<ShellShard<B, MJ, S, SB>>,
transport_client_id: u128,
code: u32,
request: &Message<RequestHeader>,
diff --cc core/server-ng/src/responses.rs
index c661a375c,2254b1ce1..289654152
--- a/core/server-ng/src/responses.rs
+++ b/core/server-ng/src/responses.rs
@@@ -472,9 -464,12 +473,12 @@@ wher
/// `user_id` is the authenticated caller, used only by the identity-scoped
/// reads (currently the PAT list); every other arm ignores it. Authorization
- /// stays with the per-transport gates that run before this builder.
+ /// stays with the per-transport gates that run before this builder. `client_ip`
+ /// is the caller's transport-level peer address, used only by the
+ /// cluster-metadata read to pick each node's advertised address; `None`
+ /// degrades to the catch-all address.
-pub(crate) fn build_non_replicated_response<B, MJ, S>(
- shard: &Rc<ShellShard<B, MJ, S>>,
+pub(crate) fn build_non_replicated_response<B, MJ, S, SB>(
+ shard: &Rc<ShellShard<B, MJ, S, SB>>,
code: u32,
body: &[u8],
user_id: Option<u32>,
@@@ -604,9 -599,10 +609,10 @@@ wher
/// The leader marking comes from this shard's consensus view; a shard without
/// consensus (any shard but 0) still serves the full roster, only with no node
/// marked leader.
-fn build_cluster_metadata_response<B, MJ, S>(
+fn build_cluster_metadata_response<B, MJ, S, SB>(
roster: &ClusterRoster,
- shard: &Rc<ShellShard<B, MJ, S>>,
+ shard: &Rc<ShellShard<B, MJ, S, SB>>,
+ client_ip: Option<IpAddr>,
) -> ClusterMetadataResponse
where
B: ShellBus,