Skip to content

Fixed discovery#263

Draft
rekby wants to merge 2 commits into
mainfrom
YDBAPPTEAM-1100-stable-discovery
Draft

Fixed discovery#263
rekby wants to merge 2 commits into
mainfrom
YDBAPPTEAM-1100-stable-discovery

Conversation

@rekby
Copy link
Copy Markdown
Member

@rekby rekby commented May 29, 2026

  • New Internal\Discovery that always targets the original bootstrap endpoint
    and recreates the gRPC channel with force_new on retries, so c-core
    re-resolves DNS and recovers from bootstrap IP changes.
  • New config keys: discoveryTimeoutMs (5000), discoveryAttemptTimeoutMs (1000),
    discoveryInitialTimeoutMs (PHP_INT_MAX).
  • Default grpc.lb_policy_name = round_robin in Ydb::grpcOpts() (user can
    override via grpc.opts.grpc.lb_policy_name).
  • Fixed array_search cluster-endpoint check in Ydb::discover() (returning key
    0 was treated as "not found"); replaced with strict in_array.
  • Unit tests in tests/Internal/DiscoveryTest.php.

Pull request type

Please check the type of change your PR introduces:

  • Bugfix
  • Feature
  • Code style update (formatting, renaming)
  • Refactoring (no functional changes, no api changes)
  • Build related changes
  • Documentation content changes
  • Other (please describe):

What is the current behavior?

Issue Number: N/A

What is the new behavior?

Other information

rekby added 2 commits May 29, 2026 23:21
- New Internal\Discovery that always targets the original bootstrap endpoint
  and recreates the gRPC channel with force_new on retries, so c-core
  re-resolves DNS and recovers from bootstrap IP changes.
- New config keys: discoveryTimeoutMs (5000), discoveryAttemptTimeoutMs (1000),
  discoveryInitialTimeoutMs (PHP_INT_MAX).
- Default grpc.lb_policy_name = round_robin in Ydb::grpcOpts() (user can
  override via grpc.opts.grpc.lb_policy_name).
- Fixed array_search cluster-endpoint check in Ydb::discover() (returning key
  0 was treated as "not found"); replaced with strict in_array.
- Unit tests in tests/Internal/DiscoveryTest.php.
The advisory (CVE-2026-6409, DoS via malicious messages) affects every
google/protobuf <4.33.6, i.e. the whole 3.x line we currently depend on
via "~3.15.8". Composer 2.7+ refuses to install such packages by default,
which blocks CI.

Adding "config.policy.advisories.ignore-id" so install proceeds. The
proper fix (bumping google/protobuf to a non-vulnerable major) is being
done separately in #260 and will land in the next release; this ignore
should be removed at that point.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant