Rebuild for clang 18.1.3, that contains a workaround [1] for sanitizers
issue [2]:
$ git tag --contains c2a57034eff048cd36c563c8e0051db3a70991b3 | tail -1
llvmorg-18.1.3
[1]: c2a57034ef
[2]: https://github.com/ClickHouse/ClickHouse/issues/64086
Since right now version is not enough:
$ docker run --rm -it clickhouse/test-util llvm-nm-18 --version
llvm-nm, compatible with GNU nm
Ubuntu LLVM version 18.1.2
Optimized build.
But I don't see any fix for TSan, only MSan, but let's try.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
In #61011 the whole toolchain installation had been removed from the
base image to reduce image sizes, and this is a good thing indeed.
However it also breaks the symbolizer for sanitizers, which makes
stacktraces unreadable, so let's fix this by getting back llvm package,
this should be OK, since it's size is not gigabytes, but only 48MiB (at
least for llvm-14):
# dpkg -L llvm-14| xargs file | grep -v directory | cut -d: -f1 | xargs du -sch | grep total
48M total
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
After image update it prints the following warning:
/ClickHouse/tests/queries/0_stateless/01558_ttest_scipy.python:5: DeprecationWarning:
Pyarrow will become a required dependency of pandas in the next major release of pandas (pandas 3.0),
(to allow more performant data types, such as the Arrow string type, and better interoperability with other libraries)
but was not found to be installed on your system.
If this would cause problems for you,
please provide us feedback at https://github.com/pandas-dev/pandas/issues/54466
Pyarrow can be added as well, but according to the comment in the issue
it bloats the image size 170%, so let's simply downgrade it for now and
see how that issue will be resolved (or the warning could be suppressed
of course).
And pin other dependencies as well to avoid further failures.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
libunwind is reentrant and signal safe, and works faster then then
gcc_eh (plus it has some custom patches for problems that have been
found during it's usage in ClickHouse).
gcc_eh may be missing in the system (if gcc was not installed), and
even if it exists clickhouse uses -nodefaultlibs, so some care should be
made to make it work.
Also this library is tiny and there shouln't be any problem to require
it always (there is already tendency to require some contrib libraries,
i.e. poco).
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>