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 <[email protected]>
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,

Reply via email to