You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by lz...@apache.org on 2026/10/03 10:31:05 UTC

(iggy) branch feat/csharp-connection-string updated (fc113e58a -> f79c71931)

This is an automated email from the ASF dual-hosted git repository.

lukaszzborek pushed a change to branch feat/csharp-connection-string
in repository https://gitbox.apache.org/repos/asf/iggy.git


    from fc113e58a feat(csharp): implement connection string parsing
     new 6b5f6a44f fix(csharp): adjust connection string retry logic to cap at Int32.MaxValue
     add 8f93cad89 fix(server)!: make logging honor retention, level, path and file_enabled (#4354)
     add 6fe34888d feat(gateways): answer Kafka Fetch with records from Iggy (#4336)
     add 8121e7e2b chore(deps): Bump urllib3 from 2.7.0 to 2.8.0 in /foreign/python (#4366)
     add ed6e6e716 fix(server): prevent panic when the cleaner removes expired tokens (#4364)
     add a08d0ca8f test(sdk): reproduce client lifecycle bugs (#4344)
     add 985b0ac1f chore(deps): Bump brace-expansion from 5.0.9 to 5.0.12 in /foreign/node (#4358)
     add 88c842ccc chore(deps): Bump brace-expansion from 5.0.9 to 5.0.12 in /web (#4359)
     add fc927ab28 chore(deps): Bump the web group across 1 directory with 8 updates (#4375)
     add 73f1f7023 chore(deps): Bump the node group across 2 directories with 6 updates (#4376)
     add db581c276 chore(deps): Bump brace-expansion from 5.0.9 to 5.0.12 in /examples/node (#4377)
     add a6bcfd694 chore(deps): Bump devalue from 5.9.2 to 5.9.4 in /web (#4378)
     add d7458b8e6 test(go): cover offset, partition, and consumer group command serialization (#4370)
     add e4ff95b88 feat(go): add GetMe to the Go SDK (#4371)
     add 071121c70 fix(consensus): preserve recovery floors and reject aged-out requests (#4365)
     add e51780a53 chore(repo): make repository skills available to Codex (#4360)
     add 7c10d8adb fix(sdk): keep a shut down client shut down (#4374)
     add 0936d44cc chore(repo): bump all components to patch edge versions after 0.9.0 (#4315)
     add 815f345b3 docs: require agent review, comment replies and fewer rebases (#4384)
     add c80183499 chore(deps): Bump the go group across 2 directories with 2 updates (#4390)
     add 2d7fddba5 feat(gateways): Kafka gateway Phase 1 quick-start and Docker Compose E2E (#4372)
     new f79c71931 Merge branch 'master' into feat/csharp-connection-string

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .agents/skills/connector-review                    |    1 +
 .agents/skills/connector-runtime                   |    1 +
 .agents/skills/connector-sdk                       |    1 +
 .agents/skills/connector-sink                      |    1 +
 .agents/skills/connector-source                    |    1 +
 .agents/skills/connector-testing                   |    1 +
 .agents/skills/connector-transform                 |    1 +
 .agents/skills/connectors-overview                 |    1 +
 .agents/skills/team-review                         |    1 +
 .agents/skills/team-review-slim                    |    1 +
 .claude/skills/connector-review/SKILL.md           |   35 +-
 .../skills/connector-review/agents/openai.yaml     |    4 +-
 .claude/skills/connector-sink/TEMPLATE.md          |    2 +-
 .claude/skills/team-review-slim/SKILL.md           |   31 +-
 .../skills/team-review-slim/agents/openai.yaml     |    4 +-
 .claude/skills/team-review/SKILL.md                |   29 +-
 .../skills/team-review/agents/openai.yaml          |    4 +-
 .claude/skills/team-review/references/execution.md |   80 +
 .config/nextest.toml                               |    6 +-
 .github/workflows/_common.yml                      |    7 +-
 .../connectors/.gitkeep => .pr4372-comments.json   |    0
 .pre-commit-config.yaml                            |    2 +-
 AGENTS.md                                          |   20 +-
 CONTRIBUTING.md                                    |   22 +
 Cargo.lock                                         |   67 +-
 Cargo.toml                                         |   10 +-
 bdd/go/go.mod                                      |    4 +-
 bdd/go/go.sum                                      |    8 +-
 bdd/python/uv.lock                                 |    2 +-
 core/ai/mcp/Cargo.toml                             |    2 +-
 core/bench/Cargo.toml                              |    2 +-
 core/bench/dashboard/frontend/Cargo.toml           |    2 +-
 core/bench/dashboard/server/Cargo.toml             |    2 +-
 core/bench/report/Cargo.toml                       |    2 +-
 core/binary_protocol/Cargo.toml                    |    2 +-
 core/cli/Cargo.toml                                |    2 +-
 core/common/Cargo.toml                             |    2 +-
 core/common/src/error/iggy_error.rs                |   13 +
 core/common/src/traits/client.rs                   |    7 +-
 core/configs/src/common/validators.rs              |   62 +-
 core/connectors/runtime/Cargo.toml                 |    2 +-
 core/connectors/sdk/Cargo.toml                     |    2 +-
 core/connectors/sinks/clickhouse_sink/Cargo.toml   |    2 +-
 core/connectors/sinks/delta_sink/Cargo.toml        |    2 +-
 core/connectors/sinks/doris_sink/Cargo.toml        |    2 +-
 .../connectors/sinks/elasticsearch_sink/Cargo.toml |    2 +-
 core/connectors/sinks/http_sink/Cargo.toml         |    2 +-
 core/connectors/sinks/iceberg_sink/Cargo.toml      |    2 +-
 core/connectors/sinks/influxdb_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/meilisearch_sink/Cargo.toml  |    2 +-
 core/connectors/sinks/mongodb_sink/Cargo.toml      |    2 +-
 core/connectors/sinks/postgres_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/quickwit_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/rabbitmq_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/redshift_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/s3_sink/Cargo.toml           |    2 +-
 core/connectors/sinks/stdout_sink/Cargo.toml       |    2 +-
 core/connectors/sinks/surrealdb_sink/Cargo.toml    |    2 +-
 .../sources/elasticsearch_source/Cargo.toml        |    2 +-
 core/connectors/sources/http_source/Cargo.toml     |    2 +-
 core/connectors/sources/influxdb_source/Cargo.toml |    2 +-
 core/connectors/sources/postgres_source/Cargo.toml |    2 +-
 core/connectors/sources/random_source/Cargo.toml   |    2 +-
 core/consensus/src/client_table.rs                 |  286 +-
 core/consensus/src/impls.rs                        |  423 ++-
 core/consensus/src/lib.rs                          |    2 +-
 core/consensus/src/observability.rs                |   36 +
 core/integration/src/harness/config/server.rs      |    5 +
 core/integration/src/harness/handle/server.rs      |    3 +
 core/integration/tests/cluster/partition_dedup.rs  |   11 +
 core/integration/tests/sdk/client_lifecycle.rs     |  176 ++
 core/integration/tests/sdk/mod.rs                  |    1 +
 core/integration/tests/server/mod.rs               |    3 +
 .../server/personal_access_token_cleaner_vsr.rs    |   84 +
 .../server/scenarios/log_rotation_scenario.rs      |   90 +
 core/message_bus/src/installer/tcp.rs              |    4 +-
 core/message_bus/src/lib.rs                        |    6 +-
 core/message_bus/tests/duplicate_client_id.rs      |    2 +-
 core/metadata/src/impls/metadata.rs                |  142 +-
 core/partitions/src/iggy_partition.rs              |  187 +-
 core/partitions/src/install_backup.rs              |   42 +-
 core/partitions/src/lib.rs                         |    4 +-
 core/partitions/src/partition_storage.rs           |  284 +-
 core/partitions/src/state_transfer.rs              |   31 +-
 core/sdk/Cargo.toml                                |    2 +-
 core/sdk/src/clients/producer.rs                   |  242 +-
 core/sdk/src/http/http_client.rs                   |   15 +-
 core/sdk/src/quic/quic_client.rs                   |    7 +-
 core/sdk/src/tcp/tcp_client.rs                     |    7 +-
 core/sdk/src/vsr.rs                                |   28 +-
 core/sdk/src/websocket/websocket_client.rs         |   16 +-
 core/server/Cargo.toml                             |    2 +-
 core/server/README.md                              |   62 +
 core/server/config.toml                            |   13 +-
 core/server/src/boot/mod.rs                        |   15 -
 core/server/src/boot/recovery.rs                   |   10 +-
 core/server/src/dispatch/mod.rs                    |    7 +-
 core/server/src/http/session.rs                    |    7 +-
 core/server/src/http/state.rs                      |   43 +-
 core/server/src/http/submit.rs                     |    6 +-
 core/server/src/partition_helpers.rs               |  888 +++++-
 core/server/src/partition_reconciler.rs            |   84 +-
 core/server/src/responses.rs                       |    2 +-
 core/server/src/server_error.rs                    |   26 +
 core/server/src/snapshot.rs                        |   13 +-
 core/server_common/Cargo.toml                      |    1 +
 core/server_common/src/log/logger.rs               |  294 +-
 core/server_common/src/log/mod.rs                  |    2 +-
 core/server_common/src/log/settings.rs             |  124 +
 core/shard/src/builder.rs                          |    1 +
 core/shard/src/coordinator.rs                      |  397 ++-
 core/shard/src/lib.rs                              |   57 +-
 core/simulator/src/lib.rs                          |  316 ++-
 examples/go/go.mod                                 |    2 +-
 examples/go/go.sum                                 |    4 +-
 examples/node/package-lock.json                    |   28 +-
 examples/node/package.json                         |    4 +-
 examples/python/uv.lock                            |    2 +-
 .../Iggy_SDK/Configuration/ConnectionString.cs     |    2 +-
 .../VsrRequestOutcomeUnknownException.cs           |    9 +-
 .../Implementations/HttpMessageStream.cs           |    9 +-
 .../Implementations/TcpMessageStream.Vsr.cs        |   13 +-
 foreign/csharp/Iggy_SDK/Iggy_SDK.csproj            |    2 +-
 .../Publishers/BackgroundMessageProcessor.cs       |    5 +-
 .../csharp/Iggy_SDK/Utils/IggyDurationParser.cs    |    7 +-
 foreign/csharp/Iggy_SDK/Vsr/ConsensusSession.cs    |    4 +-
 foreign/csharp/Iggy_SDK/Vsr/VsrError.cs            |    1 +
 .../ClientTests/ConnectionStringTests.cs           |   11 +-
 .../ClientTests/HttpTopicOptionsTests.cs           |   19 +
 .../Iggy_SDK_Tests/UtilityTests/SendUnitTests.cs   |   24 +
 .../VsrTests/EndpointFailoverTests.cs              |   45 +
 .../VsrTests/VsrProtocolDriftTests.cs              |    3 +-
 foreign/csharp/README.md                           |    3 +-
 foreign/go/client/tcp/tcp_clients_management.go    |    9 +
 foreign/go/contracts/client.go                     |    4 +
 foreign/go/contracts/version.go                    |    2 +-
 foreign/go/errors/errors.yaml                      |    4 +
 foreign/go/errors/errors_gen.go                    |   17 +
 foreign/go/errors/errors_test.go                   |    6 +
 foreign/go/go.mod                                  |    2 +-
 foreign/go/go.sum                                  |    4 +-
 foreign/go/internal/command/consumer_group_test.go |  130 +
 foreign/go/internal/command/offset_test.go         |  120 +
 foreign/go/internal/command/partition_test.go      |   89 +
 foreign/go/internal/command/system.go              |   12 +
 foreign/go/internal/command/system_test.go         |    1 +
 foreign/go/internal/vsr/envelope.go                |    6 +-
 foreign/go/tests/e2e_test.go                       |   38 +-
 .../apache/iggy/client/async/tcp/PollRouter.java   |   32 +-
 .../client/async/tcp/vsr/VsrRequestEncoder.java    |    5 +-
 .../org/apache/iggy/exception/IggyErrorCode.java   |    6 +
 .../AsyncIggyTcpClientTransientFailoverTest.java   |   57 +-
 .../apache/iggy/exception/IggyErrorCodeTest.java   |    1 +
 foreign/node/package-lock.json                     |  325 +--
 foreign/node/package.json                          |    8 +-
 foreign/node/src/wire/error.code.test.ts           |    7 +
 foreign/node/src/wire/error.code.ts                |    1 +
 foreign/node/src/wire/vsr/index.ts                 |    5 +-
 foreign/python/Cargo.toml                          |    4 +-
 foreign/python/apache_iggy.pyi                     |    4 -
 foreign/python/pyproject.toml                      |    2 +-
 foreign/python/src/client.rs                       |    4 -
 foreign/python/tests/test_connectivity.py          |   17 +-
 foreign/python/uv.lock                             |    8 +-
 .../swift/Sources/Iggy/Errors/IggyErrorCode.swift  |    2 +
 foreign/swift/Tests/IggyTests/Fixtures/golden.json |   13 +-
 gateways/kafka/Cargo.toml                          |    2 +
 gateways/kafka/Dockerfile                          |   64 +
 .../kafka/Dockerfile.dockerignore                  |   36 +-
 gateways/kafka/README.md                           |  234 +-
 gateways/kafka/docker-compose.yml                  |  141 +
 gateways/kafka/docs/ACL_MAPPING.md                 |    6 +-
 gateways/kafka/docs/AUTHENTICATION.md              |   10 +-
 gateways/kafka/docs/BRIDGE_MAPPING.md              |   10 +-
 gateways/kafka/docs/CONSUMER_GROUPS.md             |    4 +-
 gateways/kafka/docs/IDEMPOTENCE.md                 |   22 +-
 gateways/kafka/docs/MANUAL_TESTING.md              |   37 +-
 gateways/kafka/docs/SCOPE.md                       |   22 +-
 gateways/kafka/docs/TEST_SUITE.md                  |   23 +-
 gateways/kafka/src/bridge/error.rs                 |   25 +
 gateways/kafka/src/bridge/iggy_bridge/fetch.rs     |  468 +++-
 gateways/kafka/src/bridge/iggy_bridge/mod.rs       |   90 +-
 gateways/kafka/src/bridge/iggy_bridge/offsets.rs   |  141 +-
 gateways/kafka/src/bridge/iggy_bridge/produce.rs   |   33 +-
 gateways/kafka/src/bridge/mod.rs                   |    4 +-
 gateways/kafka/src/protocol/api.rs                 |   57 +-
 gateways/kafka/src/protocol/handlers/fetch.rs      | 2830 +++++++++++++++++++-
 .../kafka/src/protocol/handlers/list_offsets.rs    |  120 +-
 gateways/kafka/src/protocol/handlers/metadata.rs   |   14 +-
 gateways/kafka/src/protocol/handlers/mod.rs        |   82 +-
 gateways/kafka/src/protocol/handlers/produce.rs    |   57 +-
 gateways/kafka/src/protocol/mod.rs                 |    1 +
 gateways/kafka/src/protocol/probe_board.rs         |  468 ++++
 gateways/kafka/src/records.rs                      |  110 +-
 gateways/kafka/src/server.rs                       |   21 +-
 gateways/kafka/tests/common/gateway_process.rs     |  102 +
 gateways/kafka/tests/common/iggy_server.rs         |   86 +-
 gateways/kafka/tests/fetch_real_bridge_tests.rs    |  821 ++++++
 gateways/kafka/tests/kafka_client_e2e_tests.rs     |  211 +-
 gateways/kafka/tests/phase1_e2e_tests.rs           |  341 +++
 licenserc.toml                                     |    1 +
 scripts/ci/skills.sh                               |  104 +-
 web/package-lock.json                              |  383 +--
 web/package.json                                   |   20 +-
 204 files changed, 11320 insertions(+), 2023 deletions(-)
 create mode 120000 .agents/skills/connector-review
 create mode 120000 .agents/skills/connector-runtime
 create mode 120000 .agents/skills/connector-sdk
 create mode 120000 .agents/skills/connector-sink
 create mode 120000 .agents/skills/connector-source
 create mode 120000 .agents/skills/connector-testing
 create mode 120000 .agents/skills/connector-transform
 create mode 120000 .agents/skills/connectors-overview
 create mode 120000 .agents/skills/team-review
 create mode 120000 .agents/skills/team-review-slim
 copy examples/java/gradle.properties => .claude/skills/connector-review/agents/openai.yaml (94%)
 copy examples/java/gradle.properties => .claude/skills/team-review-slim/agents/openai.yaml (94%)
 copy examples/java/gradle.properties => .claude/skills/team-review/agents/openai.yaml (94%)
 create mode 100644 .claude/skills/team-review/references/execution.md
 copy core/integration/tests/connectors/api/connectors/.gitkeep => .pr4372-comments.json (100%)
 create mode 100644 core/integration/tests/sdk/client_lifecycle.rs
 create mode 100644 core/integration/tests/server/personal_access_token_cleaner_vsr.rs
 create mode 100644 foreign/go/internal/command/consumer_group_test.go
 create mode 100644 foreign/go/internal/command/offset_test.go
 create mode 100644 foreign/go/internal/command/partition_test.go
 create mode 100644 gateways/kafka/Dockerfile
 copy core/ai/mcp/.dockerignore => gateways/kafka/Dockerfile.dockerignore (57%)
 create mode 100644 gateways/kafka/docker-compose.yml
 create mode 100644 gateways/kafka/src/protocol/probe_board.rs
 create mode 100644 gateways/kafka/tests/common/gateway_process.rs
 create mode 100644 gateways/kafka/tests/fetch_real_bridge_tests.rs
 create mode 100644 gateways/kafka/tests/phase1_e2e_tests.rs


(iggy) 02/02: Merge branch 'master' into feat/csharp-connection-string

Posted by lz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lukaszzborek pushed a commit to branch feat/csharp-connection-string
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit f79c719310db77c34819731a11c505e4feba391b
Merge: 6b5f6a44f 2d7fddba5
Author: Łukasz Zborek <lu...@gmail.com>
AuthorDate: Sat Oct 3 12:06:04 2026 +0200

    Merge branch 'master' into feat/csharp-connection-string

 .agents/skills/connector-review                    |    1 +
 .agents/skills/connector-runtime                   |    1 +
 .agents/skills/connector-sdk                       |    1 +
 .agents/skills/connector-sink                      |    1 +
 .agents/skills/connector-source                    |    1 +
 .agents/skills/connector-testing                   |    1 +
 .agents/skills/connector-transform                 |    1 +
 .agents/skills/connectors-overview                 |    1 +
 .agents/skills/team-review                         |    1 +
 .agents/skills/team-review-slim                    |    1 +
 .claude/skills/connector-review/SKILL.md           |   35 +-
 .../skills/connector-review/agents/openai.yaml     |   27 +-
 .claude/skills/connector-sink/TEMPLATE.md          |    2 +-
 .claude/skills/team-review-slim/SKILL.md           |   31 +-
 .../skills/team-review-slim/agents/openai.yaml     |   27 +-
 .claude/skills/team-review/SKILL.md                |   29 +-
 .../skills/team-review/agents/openai.yaml          |   27 +-
 .claude/skills/team-review/references/execution.md |   80 +
 .config/nextest.toml                               |    6 +-
 .github/workflows/_common.yml                      |    7 +-
 .pr4372-comments.json                              |    0
 .pre-commit-config.yaml                            |    2 +-
 AGENTS.md                                          |   20 +-
 CONTRIBUTING.md                                    |   22 +
 Cargo.lock                                         |   67 +-
 Cargo.toml                                         |   10 +-
 bdd/go/go.mod                                      |    4 +-
 bdd/go/go.sum                                      |    8 +-
 bdd/python/uv.lock                                 |    2 +-
 core/ai/mcp/Cargo.toml                             |    2 +-
 core/bench/Cargo.toml                              |    2 +-
 core/bench/dashboard/frontend/Cargo.toml           |    2 +-
 core/bench/dashboard/server/Cargo.toml             |    2 +-
 core/bench/report/Cargo.toml                       |    2 +-
 core/binary_protocol/Cargo.toml                    |    2 +-
 core/cli/Cargo.toml                                |    2 +-
 core/common/Cargo.toml                             |    2 +-
 core/common/src/error/iggy_error.rs                |   13 +
 core/common/src/traits/client.rs                   |    7 +-
 core/configs/src/common/validators.rs              |   62 +-
 core/connectors/runtime/Cargo.toml                 |    2 +-
 core/connectors/sdk/Cargo.toml                     |    2 +-
 core/connectors/sinks/clickhouse_sink/Cargo.toml   |    2 +-
 core/connectors/sinks/delta_sink/Cargo.toml        |    2 +-
 core/connectors/sinks/doris_sink/Cargo.toml        |    2 +-
 .../connectors/sinks/elasticsearch_sink/Cargo.toml |    2 +-
 core/connectors/sinks/http_sink/Cargo.toml         |    2 +-
 core/connectors/sinks/iceberg_sink/Cargo.toml      |    2 +-
 core/connectors/sinks/influxdb_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/meilisearch_sink/Cargo.toml  |    2 +-
 core/connectors/sinks/mongodb_sink/Cargo.toml      |    2 +-
 core/connectors/sinks/postgres_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/quickwit_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/rabbitmq_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/redshift_sink/Cargo.toml     |    2 +-
 core/connectors/sinks/s3_sink/Cargo.toml           |    2 +-
 core/connectors/sinks/stdout_sink/Cargo.toml       |    2 +-
 core/connectors/sinks/surrealdb_sink/Cargo.toml    |    2 +-
 .../sources/elasticsearch_source/Cargo.toml        |    2 +-
 core/connectors/sources/http_source/Cargo.toml     |    2 +-
 core/connectors/sources/influxdb_source/Cargo.toml |    2 +-
 core/connectors/sources/postgres_source/Cargo.toml |    2 +-
 core/connectors/sources/random_source/Cargo.toml   |    2 +-
 core/consensus/src/client_table.rs                 |  286 +-
 core/consensus/src/impls.rs                        |  423 ++-
 core/consensus/src/lib.rs                          |    2 +-
 core/consensus/src/observability.rs                |   36 +
 core/integration/src/harness/config/server.rs      |    5 +
 core/integration/src/harness/handle/server.rs      |    3 +
 core/integration/tests/cluster/partition_dedup.rs  |   11 +
 core/integration/tests/sdk/client_lifecycle.rs     |  176 ++
 core/integration/tests/sdk/mod.rs                  |    1 +
 core/integration/tests/server/mod.rs               |    3 +
 .../server/personal_access_token_cleaner_vsr.rs    |   84 +
 .../server/scenarios/log_rotation_scenario.rs      |   90 +
 core/message_bus/src/installer/tcp.rs              |    4 +-
 core/message_bus/src/lib.rs                        |    6 +-
 core/message_bus/tests/duplicate_client_id.rs      |    2 +-
 core/metadata/src/impls/metadata.rs                |  142 +-
 core/partitions/src/iggy_partition.rs              |  187 +-
 core/partitions/src/install_backup.rs              |   42 +-
 core/partitions/src/lib.rs                         |    4 +-
 core/partitions/src/partition_storage.rs           |  284 +-
 core/partitions/src/state_transfer.rs              |   31 +-
 core/sdk/Cargo.toml                                |    2 +-
 core/sdk/src/clients/producer.rs                   |  242 +-
 core/sdk/src/http/http_client.rs                   |   15 +-
 core/sdk/src/quic/quic_client.rs                   |    7 +-
 core/sdk/src/tcp/tcp_client.rs                     |    7 +-
 core/sdk/src/vsr.rs                                |   28 +-
 core/sdk/src/websocket/websocket_client.rs         |   16 +-
 core/server/Cargo.toml                             |    2 +-
 core/server/README.md                              |   62 +
 core/server/config.toml                            |   13 +-
 core/server/src/boot/mod.rs                        |   15 -
 core/server/src/boot/recovery.rs                   |   10 +-
 core/server/src/dispatch/mod.rs                    |    7 +-
 core/server/src/http/session.rs                    |    7 +-
 core/server/src/http/state.rs                      |   43 +-
 core/server/src/http/submit.rs                     |    6 +-
 core/server/src/partition_helpers.rs               |  888 +++++-
 core/server/src/partition_reconciler.rs            |   84 +-
 core/server/src/responses.rs                       |    2 +-
 core/server/src/server_error.rs                    |   26 +
 core/server/src/snapshot.rs                        |   13 +-
 core/server_common/Cargo.toml                      |    1 +
 core/server_common/src/log/logger.rs               |  294 +-
 core/server_common/src/log/mod.rs                  |    2 +-
 core/server_common/src/log/settings.rs             |  124 +
 core/shard/src/builder.rs                          |    1 +
 core/shard/src/coordinator.rs                      |  397 ++-
 core/shard/src/lib.rs                              |   57 +-
 core/simulator/src/lib.rs                          |  316 ++-
 examples/go/go.mod                                 |    2 +-
 examples/go/go.sum                                 |    4 +-
 examples/node/package-lock.json                    |   28 +-
 examples/node/package.json                         |    4 +-
 examples/python/uv.lock                            |    2 +-
 .../VsrRequestOutcomeUnknownException.cs           |    9 +-
 .../Implementations/HttpMessageStream.cs           |    9 +-
 .../Implementations/TcpMessageStream.Vsr.cs        |   13 +-
 foreign/csharp/Iggy_SDK/Iggy_SDK.csproj            |    2 +-
 .../Publishers/BackgroundMessageProcessor.cs       |    5 +-
 foreign/csharp/Iggy_SDK/Vsr/ConsensusSession.cs    |    4 +-
 foreign/csharp/Iggy_SDK/Vsr/VsrError.cs            |    1 +
 .../ClientTests/HttpTopicOptionsTests.cs           |   19 +
 .../Iggy_SDK_Tests/UtilityTests/SendUnitTests.cs   |   24 +
 .../VsrTests/EndpointFailoverTests.cs              |   45 +
 .../VsrTests/VsrProtocolDriftTests.cs              |    3 +-
 foreign/go/client/tcp/tcp_clients_management.go    |    9 +
 foreign/go/contracts/client.go                     |    4 +
 foreign/go/contracts/version.go                    |    2 +-
 foreign/go/errors/errors.yaml                      |    4 +
 foreign/go/errors/errors_gen.go                    |   17 +
 foreign/go/errors/errors_test.go                   |    6 +
 foreign/go/go.mod                                  |    2 +-
 foreign/go/go.sum                                  |    4 +-
 foreign/go/internal/command/consumer_group_test.go |  130 +
 foreign/go/internal/command/offset_test.go         |  120 +
 foreign/go/internal/command/partition_test.go      |   89 +
 foreign/go/internal/command/system.go              |   12 +
 foreign/go/internal/command/system_test.go         |    1 +
 foreign/go/internal/vsr/envelope.go                |    6 +-
 foreign/go/tests/e2e_test.go                       |   38 +-
 .../apache/iggy/client/async/tcp/PollRouter.java   |   32 +-
 .../client/async/tcp/vsr/VsrRequestEncoder.java    |    5 +-
 .../org/apache/iggy/exception/IggyErrorCode.java   |    6 +
 .../AsyncIggyTcpClientTransientFailoverTest.java   |   57 +-
 .../apache/iggy/exception/IggyErrorCodeTest.java   |    1 +
 foreign/node/package-lock.json                     |  325 +--
 foreign/node/package.json                          |    8 +-
 foreign/node/src/wire/error.code.test.ts           |    7 +
 foreign/node/src/wire/error.code.ts                |    1 +
 foreign/node/src/wire/vsr/index.ts                 |    5 +-
 foreign/python/Cargo.toml                          |    4 +-
 foreign/python/apache_iggy.pyi                     |    4 -
 foreign/python/pyproject.toml                      |    2 +-
 foreign/python/src/client.rs                       |    4 -
 foreign/python/tests/test_connectivity.py          |   17 +-
 foreign/python/uv.lock                             |    8 +-
 .../swift/Sources/Iggy/Errors/IggyErrorCode.swift  |    2 +
 foreign/swift/Tests/IggyTests/Fixtures/golden.json |   13 +-
 gateways/kafka/Cargo.toml                          |    2 +
 gateways/kafka/Dockerfile                          |   64 +
 .../kafka/Dockerfile.dockerignore                  |   56 +-
 gateways/kafka/README.md                           |  234 +-
 gateways/kafka/docker-compose.yml                  |  141 +
 gateways/kafka/docs/ACL_MAPPING.md                 |    6 +-
 gateways/kafka/docs/AUTHENTICATION.md              |   10 +-
 gateways/kafka/docs/BRIDGE_MAPPING.md              |   10 +-
 gateways/kafka/docs/CONSUMER_GROUPS.md             |    4 +-
 gateways/kafka/docs/IDEMPOTENCE.md                 |   22 +-
 gateways/kafka/docs/MANUAL_TESTING.md              |   37 +-
 gateways/kafka/docs/SCOPE.md                       |   22 +-
 gateways/kafka/docs/TEST_SUITE.md                  |   23 +-
 gateways/kafka/src/bridge/error.rs                 |   25 +
 gateways/kafka/src/bridge/iggy_bridge/fetch.rs     |  468 +++-
 gateways/kafka/src/bridge/iggy_bridge/mod.rs       |   90 +-
 gateways/kafka/src/bridge/iggy_bridge/offsets.rs   |  141 +-
 gateways/kafka/src/bridge/iggy_bridge/produce.rs   |   33 +-
 gateways/kafka/src/bridge/mod.rs                   |    4 +-
 gateways/kafka/src/protocol/api.rs                 |   57 +-
 gateways/kafka/src/protocol/handlers/fetch.rs      | 2830 +++++++++++++++++++-
 .../kafka/src/protocol/handlers/list_offsets.rs    |  120 +-
 gateways/kafka/src/protocol/handlers/metadata.rs   |   14 +-
 gateways/kafka/src/protocol/handlers/mod.rs        |   82 +-
 gateways/kafka/src/protocol/handlers/produce.rs    |   57 +-
 gateways/kafka/src/protocol/mod.rs                 |    1 +
 gateways/kafka/src/protocol/probe_board.rs         |  468 ++++
 gateways/kafka/src/records.rs                      |  110 +-
 gateways/kafka/src/server.rs                       |   21 +-
 gateways/kafka/tests/common/gateway_process.rs     |  102 +
 gateways/kafka/tests/common/iggy_server.rs         |   86 +-
 gateways/kafka/tests/fetch_real_bridge_tests.rs    |  821 ++++++
 gateways/kafka/tests/kafka_client_e2e_tests.rs     |  211 +-
 gateways/kafka/tests/phase1_e2e_tests.rs           |  341 +++
 licenserc.toml                                     |    1 +
 scripts/ci/skills.sh                               |  104 +-
 web/package-lock.json                              |  383 +--
 web/package.json                                   |   20 +-
 200 files changed, 11315 insertions(+), 2094 deletions(-)


(iggy) 01/02: fix(csharp): adjust connection string retry logic to cap at Int32.MaxValue

Posted by lz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lukaszzborek pushed a commit to branch feat/csharp-connection-string
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit 6b5f6a44ff0dcac4796bb16e5b0f83428564ef22
Author: Łukasz Zborek <lu...@gmail.com>
AuthorDate: Sat Oct 3 12:05:56 2026 +0200

    fix(csharp): adjust connection string retry logic to cap at Int32.MaxValue
---
 foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs     |  2 +-
 foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs           |  7 +------
 .../Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs       | 11 +++++------
 foreign/csharp/README.md                                      |  3 ++-
 4 files changed, 9 insertions(+), 14 deletions(-)

diff --git a/foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs b/foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs
index 4fd341f88..8595574af 100644
--- a/foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs
+++ b/foreign/csharp/Iggy_SDK/Configuration/ConnectionString.cs
@@ -207,7 +207,7 @@ internal static class ConnectionString
 
         // MaxRetries treats 0 as unlimited, so zero retries means reconnection off.
         settings.Enabled = unlimited || retries != 0;
-        settings.MaxRetries = retries <= int.MaxValue ? (int)retries : 0;
+        settings.MaxRetries = (int)Math.Min(retries, int.MaxValue);
     }
 
     private static T ParseDuration<T>(string name, string value, Func<string, T> parse)
diff --git a/foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs b/foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs
index 8580304ff..3933803cd 100644
--- a/foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs
+++ b/foreign/csharp/Iggy_SDK/Utils/IggyDurationParser.cs
@@ -264,20 +264,15 @@ internal static class IggyDurationParser
         {
             ulong numerator = 0;
             ulong denominator = 1;
-            var zeros = true;
             while (Next() is { } c)
             {
                 if (c == '0')
                 {
                     denominator = Mul(denominator, 10);
-                    if (!zeros)
-                    {
-                        numerator = Mul(numerator, 10);
-                    }
+                    numerator = Mul(numerator, 10);
                 }
                 else if (IsDigit(c))
                 {
-                    zeros = false;
                     denominator = Mul(denominator, 10);
                     numerator = Add(Mul(numerator, 10), Digit(c));
                 }
diff --git a/foreign/csharp/Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs b/foreign/csharp/Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs
index 3c179840e..46947ef01 100644
--- a/foreign/csharp/Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs
+++ b/foreign/csharp/Iggy_SDK_Tests/ClientTests/ConnectionStringTests.cs
@@ -154,7 +154,6 @@ public sealed class ConnectionStringTests
     [InlineData("0", "5", true, 5)]
     [InlineData("3", "unlimited", true, 0)]
     [InlineData("3", "0", false, 0)]
-    [InlineData("3", "4294967295", true, 0)]
     public void FromConnectionString_WithRepeatedRetries_UsesTheLastValue(string first, string last, bool enabled,
         int maxRetries)
     {
@@ -166,16 +165,16 @@ public sealed class ConnectionStringTests
     }
 
     [Theory]
-    [InlineData("2147483647", int.MaxValue)]
-    [InlineData("2147483648", 0)]
-    [InlineData("4294967295", 0)]
-    public void FromConnectionString_WithRetriesUpToU32Max_Accepts(string retries, int expected)
+    [InlineData("2147483647")]
+    [InlineData("2147483648")]
+    [InlineData("4294967295")]
+    public void FromConnectionString_WithRetriesAboveInt32Max_CapsAtInt32Max(string retries)
     {
         var config = IggyClientConfigurator.FromConnectionString(
             $"iggy://iggy:secret@localhost:8090?reconnection_retries={retries}");
 
         Assert.True(config.ReconnectionSettings.Enabled);
-        Assert.Equal(expected, config.ReconnectionSettings.MaxRetries);
+        Assert.Equal(int.MaxValue, config.ReconnectionSettings.MaxRetries);
     }
 
     [Theory]
diff --git a/foreign/csharp/README.md b/foreign/csharp/README.md
index 98de470a7..ad93d1159 100644
--- a/foreign/csharp/README.md
+++ b/foreign/csharp/README.md
@@ -183,7 +183,8 @@ sockets with `NoDelay`, so `nodelay=false` does not turn Nagle back on even thou
 Nagle on by default.
 
 `reconnection_retries=0` differs from the Rust SDK. After a lost connection, Rust still makes one reconnect
-attempt, but this client fails the request at once.
+attempt, but this client fails the request at once. It also differs from `ReconnectionSettings.MaxRetries`,
+where `0` means unlimited, so the parser maps `reconnection_retries=0` to `Enabled = false` instead.
 
 Reconnection uses no exponential backoff, and after each reconnect the client waits
 `ReconnectionSettings.WaitAfterReconnect` (1 second by default). Credentials are taken literally: they are