Skip to content

Conversation

@pgj
Copy link
Contributor

@pgj pgj commented Nov 28, 2025

Chase the release of the brand new 3.0.0 version of Clouseau aka. ZIOSE (ZIO "Search Engine") and make it the default onwards. While this is a drop-in replacement for 2.x, note that it is based on completely different foundation, libraries and build system, as well as Java 21 and G1 as the default garbage collector — update the dev/run script to make it work with both 2.x and 3.x in response to that.

This warrants that Clouseau 2.x will keep working from both binary and source, albeit it has now been deprecated.

Thanks @iilyak @jiahuili430 @jaydoane for making this happen!

Testing recommendations

Other than exercising the change in the CI, one could manually verify it. Configure with Clouseau enabled (UNIX-like systems, including macOS) and be sure to have Java 21 on the path:

./configure --with-clouseau

or on Windows:

.\configure.ps1 -WithClouseau

Note that you may have to remove any older local installation of Clouseau before proceeding:

rm -rf clouseau

Run the Mango tests (implies using Clouseau):

make mango-test

Note that there shall be only a single skipped test in this scenario. Anything more than that may signal that Clouseau has not been fully configured.

Ran 389 tests in 40.212s

OK (skipped=1)

Run the Elixir search tests (implies using Clouseau):

make elixir-search

This should all work with Erlang/OTP 26, 27, or later.

To verify if logging is still working, you can take a look at the contents of the dev/logs/clouseau1.log file after Clouseau has been started up alongside CouchDB, e.g.:

dev/run -a adm:pass -n 1 --with-clouseau

Checklist

  • Code is written and works correctly
  • Changes are covered by tests

@pgj pgj mentioned this pull request Nov 28, 2025
2 tasks
pgj added 4 commits November 30, 2025 20:45
Chase the release of the brand new 3.0.0 version of Clouseau aka.
ZIOSE (ZIO "Search Engine") and make it the default onwards.
While this is a drop-in replacement for 2.x, note that it is based
on completely different foundation, libraries and build system, as
well as Java 21 and G1 as the default garbage collector -- update
the `dev/run` script to make it work with both 2.x and 3.x in
response to that.

This warrants that Clouseau 2.x will keep working from both binary
and source, albeit it has now been deprecated.
Even though the build environments implictly configure the Java
location that is specific to Clouseau via environment variables,
it makes sense to make it possible for the developers to redefine
the respective paths ad hoc.  When upgrading to 3.x, it can even
help with rerolling the container images only after the switch and
avoid breaking the CI that may still run with Clouseau 2.x.  Later
this may become equally beneficial if the required Java versions
are different from what other dependencies, e.g. Nouveau assume.
The Erlang cookie shared by the CouchDB and Clouseau nodes goes out
of sync somehow mysteriously which makes the corresponding tests
fail immediately.  Until the exact causes are known, work around
this issue by configuring both sides with the same string (via the
`ERLANG_COOKIE` make variable) and do not rely on other implicit
methods of generating and obtaining the cookie from other sources.
For some reason, the local cluster to run the integration tests
that may require Clouseau (Search) does not always start up
properly which makes the execution hang indefinitely when run in
a Docker container.  Work around the issue by setting a reasonable
time limit (5 minutes) for each of those and combined with the
Jenkins retry, it can help with recovering the build in such
unfortunate scenarios.
@pgj pgj force-pushed the jenkins-clouseau-3.0.0 branch from 2de78d7 to f3e3928 Compare November 30, 2025 19:45
@pgj pgj merged commit ebe62f8 into main Nov 30, 2025
53 checks passed
@pgj pgj deleted the jenkins-clouseau-3.0.0 branch November 30, 2025 22:56
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.

2 participants