In addition to the setup process, Go client assumes the cluster was
not created [1] while C++ and Python clients don't care if it's
created because it checks if the cluster exists before.

[1] 
https://github.com/apache/pulsar-client-go/blob/1fe9b624ca673e3a647780b7c6c4b2567089285a/scripts/pulsar-test-service-start.sh#L55

Thanks,
Yunze Xu

On Tue, Dec 13, 2022 at 7:40 PM Yunze Xu <y...@streamnative.io> wrote:
>
> Hi all,
>
> I found a breaking change introduced from #15186 [1] that changed the
> behavior of Pulsar standalone.
>
> Before #15186, it used Pulsar's built-in admin client to create tenant
> (public) and namespace (public/default).  After #15186, it created the
> metadata nodes directly to the metadata store.
>
> It brought a breaking change for the case when other languages client
> set up the standalone with authentication enabled.
> - Before #15186, if the built-in admin was not configured with
> authentication, the namespace would fail to be created.
> - After #15186, the tenant and namespace would still be created successfully.
>
> #17864 [2] and #18837 [3] fixed the regression partialy by creating
> the namespace via the built-in admin client, though the original
> motivation is to fix the policies change. However, the regression
> still existed because the tenant is still created by creating a
> metadata node directly.
>
> I checked some clients of other languages.
>
> When setting up the standalone for unit tests, C++ client [4], Python
> client [5], Go client [6] all assume the tenant and namespace were not
> created. So it created the tenant and namespace via `pulsar-admin`.
>
> I checked the Node client as well, since it seems not to enable the
> authentication for tests, there is no problem for that.
>
> Since the 2.11.0 is not released yet, I will push a PR to restore the
> original behavior. Does anyone else has different opinions?
>
> [1] https://github.com/apache/pulsar/pull/15186
> [2] https://github.com/apache/pulsar/pull/17864
> [3] https://github.com/apache/pulsar/pull/18837
> [4] 
> https://github.com/apache/pulsar-client-cpp/blob/cd0dcb1a66b50c74cf2312955086e3dca023e886/build-support/start-test-service-inside-container.sh#L57-L59
> [5] 
> https://github.com/apache/pulsar-client-python/blob/724012b1019a7f7aad4cff4629c203e318d90dd5/build-support/start-test-service-inside-container.sh#L60-L62
> [6] 
> https://github.com/apache/pulsar-client-go/blob/1fe9b624ca673e3a647780b7c6c4b2567089285a/scripts/pulsar-test-service-start.sh#L63-L64
>
> Thanks,
> Yunze

Reply via email to