Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
da51e29
Backport #100225 to 26.3: Fix use-of-uninitialized-value in StringSea…
robot-clickhouse Mar 31, 2026
6f2d168
Backport #101405 to 26.3: Fix BACKUP FROM SNAPSHOT AST formatting and…
robot-clickhouse Apr 6, 2026
ab73e5c
Update autogenerated version to 26.3.9.8 and contributors
robot-clickhouse Apr 14, 2026
a44e12d
Backport #101761 to 26.3: Fix use-after-free in CPULeaseAllocation wa…
robot-clickhouse Apr 14, 2026
efe9602
Merge pull request #102682 from ClickHouse/backport/26.3/101761
clickhouse-gh[bot] Apr 14, 2026
6e4a266
Merge pull request #101422 from ClickHouse/backport/26.3/100225
thevar1able Apr 14, 2026
96cd9db
Backport #102606 to 26.3: Use `openssl` 3.5.6
robot-clickhouse Apr 15, 2026
ee150cd
Backport #102681 to 26.3: Fix SYSTEM WAIT VIEW hanging forever when t…
robot-clickhouse Apr 15, 2026
63841ff
Backport #102598 to 26.3: Fix `NamedCollection` metric inflation on `…
robot-clickhouse Apr 15, 2026
9fe43ba
Backport #102648 to 26.3: Fix NOT_FOUND_COLUMN_IN_BLOCK with row poli…
robot-clickhouse Apr 15, 2026
9f0be03
Merge pull request #102748 from ClickHouse/backport/26.3/102681
clickhouse-gh[bot] Apr 15, 2026
b6b1208
Merge pull request #102754 from ClickHouse/backport/26.3/102598
clickhouse-gh[bot] Apr 15, 2026
40113af
Backport #99539 to 26.3: Fix segfault in UBSan build when calling JIT…
robot-clickhouse Apr 15, 2026
9ab1359
Merge pull request #102799 from ClickHouse/backport/26.3/102648
clickhouse-gh[bot] Apr 15, 2026
5d2ed2a
Merge pull request #101883 from ClickHouse/backport/26.3/101405
pamarcos Apr 15, 2026
20de3cd
Merge pull request #102731 from ClickHouse/backport/26.3/102606
thevar1able Apr 15, 2026
e2a6aec
Merge pull request #102811 from ClickHouse/backport/26.3/99539
clickhouse-gh[bot] Apr 15, 2026
3482ae1
Backport #102607 to 26.3: Use `xz` 5.8.3
robot-clickhouse Apr 15, 2026
143cf92
Backport #102385 to 26.3: Fix Parquet bloom filter segfault in prefet…
robot-clickhouse Apr 15, 2026
c02a778
Backport #102610 to 26.3: Fix `LOGICAL_ERROR` in `S3Queue` concurrent…
robot-clickhouse Apr 15, 2026
e4f448c
Merge pull request #102841 from ClickHouse/backport/26.3/102385
clickhouse-gh[bot] Apr 15, 2026
e6e36b0
Merge pull request #102851 from ClickHouse/backport/26.3/102610
clickhouse-gh[bot] Apr 15, 2026
c68ffc9
Merge pull request #102835 from ClickHouse/backport/26.3/102607
thevar1able Apr 15, 2026
65a254e
Backport #102759 to 26.3: Apply Poisson sampling correction to collap…
robot-clickhouse Apr 16, 2026
248f74c
Backport #101503 to 26.3: Remove `functions_h3_default_if_invalid` du…
robot-clickhouse Apr 16, 2026
50fd2b5
Merge pull request #102876 from ClickHouse/backport/26.3/102759
antonio2368 Apr 16, 2026
aa9f302
Merge pull request #102879 from ClickHouse/backport/26.3/101503
fm4v Apr 16, 2026
070373b
Backport distroless Docker image variant to 26.3
motsc Apr 17, 2026
9b71aa2
Merge pull request #102923 from ClickHouse/backport/26.3/distroless-d…
clickhouse-gh[bot] Apr 17, 2026
c004ba5
Backport #102913 to 26.3: Fix random crashes in jemalloc due to LTO
robot-clickhouse Apr 17, 2026
7de4c30
Backport #102674 to 26.3: Fix wrong date data type inference in case …
robot-clickhouse Apr 17, 2026
e140c32
Backport #102661 to 26.3: Fix crash in cluster discovery static confi…
robot-clickhouse Apr 17, 2026
b65babe
Backport #101918 to 26.3: Fix using wrong extreams in min-max index c…
robot-clickhouse Apr 17, 2026
51a1281
Backport #102915 to 26.3: Optimize row policy OR-chains to IN in the …
robot-clickhouse Apr 17, 2026
abfd097
Backport #99957 to 26.3: Revert #97114 Move join step row estimation …
robot-clickhouse Apr 19, 2026
d396b79
Merge pull request #103091 from ClickHouse/backport/26.3/99957
fm4v Apr 19, 2026
bb5c3ef
Backport #102918 to 26.3: Fix jemalloc metadata corruption caused by …
robot-clickhouse Apr 20, 2026
8741571
Merge pull request #103125 from ClickHouse/backport/26.3/102918
azat Apr 20, 2026
d553879
Merge pull request #102941 from ClickHouse/backport/26.3/102913
azat Apr 20, 2026
eba72b7
Merge pull request #103024 from ClickHouse/backport/26.3/102915
azat Apr 20, 2026
87b5b59
Update 02995_settings_26_2_1.tsv
evillique Apr 20, 2026
21e8753
Backport #103160 to 26.3: CI: disable automerge for backport branches
robot-clickhouse Apr 20, 2026
30a4a04
Merge pull request #103013 from ClickHouse/backport/26.3/101918
Avogar Apr 20, 2026
c371bff
Merge pull request #102974 from ClickHouse/backport/26.3/102674
Avogar Apr 20, 2026
60c20b6
Backport #103065 to 26.3: Expose per-thread untracked_memory in syste…
robot-clickhouse Apr 20, 2026
b8055af
Backport #102999 to 26.3: Reintroduce ArrowMemoryPool to allow throwi…
robot-clickhouse Apr 20, 2026
85e3e17
Backport #102900 to 26.3: Fix several optimizations after lightweight…
robot-clickhouse Apr 21, 2026
d4a5262
Backport #102961 to 26.3: Use max_insert_threads for plain INSERTs wi…
robot-clickhouse Apr 21, 2026
905bc27
Update 02995_settings_26_2_1.tsv
evillique Apr 21, 2026
8c2aa7a
Merge pull request #103171 from ClickHouse/evillique-patch-3
clickhouse-gh[bot] Apr 21, 2026
1be8454
Merge pull request #103217 from ClickHouse/backport/26.3/102900
CurtizJ Apr 21, 2026
ba2ba5e
Merge pull request #103181 from ClickHouse/backport/26.3/103160
maxknv Apr 21, 2026
6b208d4
Merge pull request #103203 from ClickHouse/backport/26.3/102999
azat Apr 21, 2026
445e2b6
Merge pull request #103200 from ClickHouse/backport/26.3/103065
azat Apr 21, 2026
b18d248
Backport #101036 to 26.3: Fix ColumnReplicated type mismatch crash in…
robot-clickhouse Apr 21, 2026
cdb3a17
Backport #102692 to 26.3: Fix flattened Dynamic type serialization wi…
robot-clickhouse Apr 21, 2026
72ffcc4
Backport #102997 to 26.3: Hide secret key in HMAC SQL function
robot-clickhouse Apr 22, 2026
b104dd0
Merge pull request #103306 from ClickHouse/backport/26.3/102692
Avogar Apr 22, 2026
d3eadf3
Backport #103285 to 26.3: Reduce default HTTP header limits to preven…
robot-clickhouse Apr 22, 2026
b852581
Merge pull request #103281 from ClickHouse/backport/26.3/101036
Avogar Apr 22, 2026
e87b6de
Backport #103284 to 26.3: Cap pre-auth Hello packet strings to 64 KB …
robot-clickhouse Apr 22, 2026
015407a
Merge pull request #103242 from ClickHouse/backport/26.3/102961
CheSema Apr 22, 2026
ec0c96d
Merge pull request #103331 from ClickHouse/backport/26.3/102997
Felixoid Apr 22, 2026
dae0464
Backport #103080 to 26.3: Apply max_network_bandwidth_for_{user,all_u…
robot-clickhouse Apr 22, 2026
e7fcb2b
Backport #103392 to 26.3: Check for malformed flattened Dynamic data …
robot-clickhouse Apr 23, 2026
eadf67b
Apply suggestions from code review
azat Apr 23, 2026
91116b1
Merge pull request #103414 from ClickHouse/backport/26.3/103392
Avogar Apr 23, 2026
b3ea037
Backport #103273 to 26.3: Fix possible crash during statistics calcul…
robot-clickhouse Apr 23, 2026
517ecda
Backport #103052 to 26.3: Fix wrong results in `DISTINCT` with partia…
robot-clickhouse Apr 23, 2026
87e7b68
Merge pull request #103382 from ClickHouse/backport/26.3/103080
azat Apr 23, 2026
b2e4b61
Merge pull request #103452 from ClickHouse/backport/26.3/103052
nihalzp Apr 24, 2026
036b470
Backport #102894 to 26.3: Fix short writes in Poco BufferedStreamBuf:…
robot-clickhouse Apr 24, 2026
3585f0d
Backport #102058 to 26.3: Add histogram metrics for S3 read request d…
robot-clickhouse Apr 24, 2026
38466c5
fix(IO): cast to HistogramMetrics::Value, not double
CheSema Apr 27, 2026
4cc6a30
Merge pull request #103007 from ClickHouse/backport/26.3/102661
kssenii Apr 27, 2026
d545e79
Merge pull request #103497 from ClickHouse/backport/26.3/102894
CheSema Apr 27, 2026
18cee97
fix(IO): cast to HistogramMetrics::Value in ReadBufferFromGetObjectRe…
CheSema Apr 27, 2026
d6236eb
Backport #102711 to 26.3: Fix rabbitmq engine performance issues
robot-clickhouse Apr 27, 2026
b7a0595
Backport #101161 to 26.3: Fix use-after-free in FileSegmentRangeWrite…
robot-clickhouse Apr 27, 2026
50571c9
Fix build: define handshake_timeout_milliseconds server setting
CheSema Apr 27, 2026
05a2028
Add Settings.cpp entries missed by backport bot
CheSema Apr 27, 2026
48fc911
Backport distroless Docker support to 26.3 (#103156)
motsc Apr 27, 2026
2718997
Revert "Backport distroless Docker support to 26.3 (#103156)" (#103575)
motsc Apr 27, 2026
1ca862f
Merge pull request #103505 from ClickHouse/backport/26.3/102058
CheSema Apr 27, 2026
1cf4df2
Merge pull request #103363 from ClickHouse/backport/26.3/103284
CheSema Apr 27, 2026
149e7ca
Merge pull request #103355 from ClickHouse/backport/26.3/103285
CheSema Apr 27, 2026
fbba00d
Backport docker-init binary to 26.3 (#103577)
motsc Apr 27, 2026
af508ed
Backport distroless CI integration to 26.3 (#103578)
motsc Apr 27, 2026
cc6419f
Refresh distroless base image digests to pick up libssl3t64 3.5.5-1~d…
motsc Apr 27, 2026
0dffe28
Merge pull request #103598 from ClickHouse/backport/26.3/distroless-d…
motsc Apr 27, 2026
ffb12e3
Merge pull request #103571 from ClickHouse/backport/26.3/101161
kssenii Apr 28, 2026
01fa08a
Merge pull request #103570 from ClickHouse/backport/26.3/102711
kssenii Apr 28, 2026
fac060e
Backport #103334 to 26.3: Fix Parquet ColumnIndex stats min_value > m…
robot-ch-test-poll4 Apr 28, 2026
d7e1dc8
Backport #100777 to 26.3: Fix: Fix workload IO scheduling bypass in D…
robot-clickhouse Apr 29, 2026
454d8a9
Backport #103552 to 26.3: Fix masking nested credentials in logs
robot-clickhouse Apr 30, 2026
fa4ac6c
Backport #103773 to 26.3: Fix UB while parsing dateTime
robot-clickhouse Apr 30, 2026
82381d3
Merge pull request #103799 from ClickHouse/backport/26.3/103773
alexey-milovidov May 1, 2026
3ef9379
Backport #101990 to 26.3: Fix Parquet metadata cache key collision fo…
robot-clickhouse May 1, 2026
d1c8cdf
Merge pull request #103758 from ClickHouse/backport/26.3/103552
alexey-milovidov May 1, 2026
97bf085
Merge pull request #103831 from ClickHouse/backport/26.3/101990
alexey-milovidov May 1, 2026
3832690
Merge pull request #103722 from ClickHouse/backport/26.3/100777
alexey-milovidov May 1, 2026
4c887ba
Merge pull request #103441 from ClickHouse/backport/26.3/103273
alexey-milovidov May 1, 2026
4bdc499
Backport #103834 to 26.3: Reliable key receiving from a chain of keys…
robot-clickhouse May 1, 2026
8d971bf
Merge pull request #103871 from ClickHouse/backport/26.3/103834
alexey-milovidov May 1, 2026
393efb1
Backport #102689 to 26.3: Fix columns_substreams.txt corruption durin…
robot-clickhouse May 3, 2026
91b5ef3
Backport #103014 to 26.3: Fix `MULTIPLE_EXPRESSIONS_FOR_ALIAS` in `Fu…
robot-clickhouse May 4, 2026
49096b3
Backport #103457 to 26.3: Fix potential out-of-bounds read in the `AL…
robot-clickhouse May 5, 2026
ed461e9
Backport #104047 to 26.3: Bump libarchive form 3.8.6 to 3.8.7
robot-clickhouse May 5, 2026
655bb92
Merge pull request #104108 from ClickHouse/backport/26.3/104047
rschu1ze May 5, 2026
d874c5a
Backport #104002 to 26.3: Tolerate oversized alpha_map on topK String…
robot-clickhouse May 5, 2026
ba3757a
Backport #102921 to 26.3: Disable trivial LIMIT optimization with row…
robot-clickhouse May 5, 2026
ae336ae
Backport #104141 to 26.3: Fix write out of bounds in quantileTiming d…
robot-clickhouse May 6, 2026
0327b5a
Merge pull request #104145 from ClickHouse/backport/26.3/104002
Algunenano May 6, 2026
a6bec34
Fix reference
azat May 6, 2026
56c9cf1
Merge pull request #104193 from ClickHouse/backport/26.3/104141
alexey-milovidov May 6, 2026
2449322
Merge pull request #104150 from ClickHouse/backport/26.3/102921
azat May 6, 2026
cc7b137
Backport #104153 to 26.3: Fix memory leak with materialized CTE
robot-clickhouse May 6, 2026
69dbe59
Merge pull request #104222 from ClickHouse/backport/26.3/104153
alexey-milovidov May 6, 2026
69d6805
Backport #103809 to 26.3: Fix wrong values from JIT-compiled if/multi…
robot-clickhouse May 6, 2026
872ee7e
Merge pull request #104242 from ClickHouse/backport/26.3/103809
alexey-milovidov May 6, 2026
00c7f9e
Merge pull request #104069 from ClickHouse/backport/26.3/103457
alexey-milovidov May 6, 2026
6a6d2d1
Merge pull request #103976 from ClickHouse/backport/26.3/103014
alexey-milovidov May 6, 2026
9e473cf
Merge pull request #103946 from ClickHouse/backport/26.3/102689
alexey-milovidov May 6, 2026
e1c1193
Backport #104063 to 26.3: Bypass index uncompressed cache when its si…
robot-ch-test-poll3 May 7, 2026
202a41d
Merge tag 'v26.3.10.62-lts' into bump/antalya-26.3/26.3.10
zvonand May 7, 2026
4c2521b
fix build
zvonand May 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@
url = https://github.com/ClickHouse/rocksdb
[submodule "contrib/xz"]
path = contrib/xz
url = https://github.com/xz-mirror/xz
url = https://github.com/tukaani-project/xz
[submodule "contrib/abseil-cpp"]
path = contrib/abseil-cpp
url = https://github.com/ClickHouse/abseil-cpp.git
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,12 +136,16 @@ class BasicBufferedBidirectionalStreamBuf : public std::basic_streambuf<ch, tr>
int flushBuffer()
{
int n = int(this->pptr() - this->pbase());
if (writeToDevice(this->pbase(), n) == n)
int offset = 0;
while (offset < n)
{
this->pbump(-n);
return n;
int written = writeToDevice(this->pbase() + offset, n - offset);
if (written <= 0)
return -1;
offset += written;
}
return -1;
this->pbump(-n);
return n;
}

std::streamsize _bufsize;
Expand Down
12 changes: 8 additions & 4 deletions base/poco/Foundation/include/Poco/BufferedStreamBuf.h
Original file line number Diff line number Diff line change
Expand Up @@ -134,12 +134,16 @@ class BasicBufferedStreamBuf : public std::basic_streambuf<ch, tr>
int flushBuffer()
{
int n = int(this->pptr() - this->pbase());
if (writeToDevice(this->pbase(), n) == n)
int offset = 0;
while (offset < n)
{
this->pbump(-n);
return n;
int written = writeToDevice(this->pbase() + offset, n - offset);
if (written <= 0)
return -1;
offset += written;
}
return -1;
this->pbump(-n);
return n;
}

std::streamsize _bufsize;
Expand Down
15 changes: 12 additions & 3 deletions base/poco/Net/src/HTTPChunkedStream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ void HTTPChunkedStreamBuf::close()
if (_mode & std::ios::out && _chunk != std::char_traits<char>::eof())
{
sync();
_session.write("0\r\n\r\n", 5);

if (writeToDevice("", 0) < 0)
throw MessageException("Failed to write terminating chunk");
_chunk = std::char_traits<char>::eof();
}
}
Expand Down Expand Up @@ -167,7 +167,16 @@ int HTTPChunkedStreamBuf::writeToDevice(const char* buffer, std::streamsize leng
_chunkBuffer.append("\r\n", 2);
_chunkBuffer.append(buffer, static_cast<std::string::size_type>(length));
_chunkBuffer.append("\r\n", 2);
_session.write(_chunkBuffer.data(), static_cast<std::streamsize>(_chunkBuffer.size()));

std::streamsize chunkSize = static_cast<std::streamsize>(_chunkBuffer.size());
std::streamsize offset = 0;
while (offset < chunkSize)
{
int written = _session.write(_chunkBuffer.data() + offset, chunkSize - offset);
if (written <= 0)
return -1;
offset += written;
}
return static_cast<int>(length);
}

Expand Down
13 changes: 5 additions & 8 deletions base/poco/Net/src/HTTPFixedLengthStream.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,14 +68,11 @@ int HTTPFixedLengthStreamBuf::readFromDevice(char* buffer, std::streamsize lengt

int HTTPFixedLengthStreamBuf::writeToDevice(const char* buffer, std::streamsize length)
{
int n = 0;
if (_count < _length)
{
if (_count + length > _length)
length = static_cast<std::streamsize>(_length - _count);
n = _session.write(buffer, length);
if (n > 0) _count += n;
}
if (_count + length > _length)
throw MessageException("Write past Content-Length");

int n = _session.write(buffer, length);
if (n > 0) _count += n;
return n;
}

Expand Down
12 changes: 10 additions & 2 deletions base/poco/NetSSL_OpenSSL/src/SecureSocketImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,8 @@ int SecureSocketImpl::sendBytes(const void* buffer, int length, int flags)

rc = handleError(rc);
if (rc == 0) throw SSLConnectionUnexpectedlyClosedException();
if (rc < 0 && _pSocket->getBlocking())
throw Poco::TimeoutException("SSL_write timed out");
}

_pSocket->useSendThrottlerBudget(rc);
Expand Down Expand Up @@ -364,7 +366,10 @@ int SecureSocketImpl::receiveBytes(void* buffer, int length, int flags)
while (mustRetry(rc, remaining_time));
if (rc <= 0)
{
return handleError(rc);
rc = handleError(rc);
if (rc < 0 && _pSocket->getBlocking())
throw Poco::TimeoutException("SSL_read timed out");
return rc;
}

_pSocket->useRecvThrottlerBudget(rc);
Expand Down Expand Up @@ -398,7 +403,10 @@ int SecureSocketImpl::completeHandshake()
while (mustRetry(rc, remaining_time));
if (rc <= 0)
{
return handleError(rc);
rc = handleError(rc);
if (rc < 0 && _pSocket->getBlocking())
throw Poco::TimeoutException("SSL handshake timed out");
return rc;
}
_needHandshake = false;
return rc;
Expand Down
41 changes: 36 additions & 5 deletions ci/jobs/docker_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ def parse_args() -> argparse.Namespace:
)
parser.add_argument("--reports", default=True, help=argparse.SUPPRESS)
parser.add_argument("--push", action="store_true", help=argparse.SUPPRESS)
parser.add_argument("--os", default=["ubuntu", "alpine"], help=argparse.SUPPRESS)
parser.add_argument("--os", default=["ubuntu", "alpine", "distroless"], help=argparse.SUPPRESS)
parser.add_argument(
"--no-ubuntu",
action=DelOS,
Expand All @@ -116,6 +116,13 @@ def parse_args() -> argparse.Namespace:
default=argparse.SUPPRESS,
help="don't build alpine image",
)
parser.add_argument(
"--no-distroless",
action=DelOS,
nargs=0,
default=argparse.SUPPRESS,
help="don't build distroless image",
)
parser.add_argument(
"--allow-build-reuse",
action="store_true",
Expand Down Expand Up @@ -215,10 +222,25 @@ def build_and_push_image(
cmd_args = list(init_args)
urls = []
if direct_urls:
if os == "ubuntu" and "clickhouse-server" in image.name:
urls = [url for url in direct_urls[arch] if ".deb" in url]
# distroless and ubuntu-server use an Ubuntu builder with dpkg, so they
# need .deb packages. alpine and ubuntu-keeper use .tgz packages.
uses_deb = os == "distroless" or (
os == "ubuntu" and "clickhouse-server" in image.name
)
if uses_deb:
urls = [
url
for url in direct_urls[arch]
if ".deb" in url and "-dbg" not in url
]
else:
urls = [url for url in direct_urls[arch] if ".tgz" in url]
# For keeper/alpine tgz builds, only pass the keeper tgz.
# Excluding clickhouse-common-static.tgz avoids a large unnecessary download.
tgz_urls = [url for url in direct_urls[arch] if ".tgz" in url]
if "keeper" in image.name:
urls = [url for url in tgz_urls if "clickhouse-keeper" in url]
else:
urls = tgz_urls
cmd_args.extend(
buildx_args(
repo_urls,
Expand Down Expand Up @@ -386,7 +408,16 @@ def main():
"clickhouse-common-static",
]
elif "clickhouse-keeper" in image_repo:
PACKAGES = ["clickhouse-keeper"]
# Both packages are needed to cover all three keeper image variants:
# distroless: installs from .deb via dpkg; clickhouse-common-static
# provides the clickhouse multi-tool binary (clickhouse-keeper
# is a symlink to it). clickhouse-keeper .deb is not published
# separately, so the common-static .deb is the only source.
# alpine/ubuntu: installs from .tgz; clickhouse-keeper provides the
# standalone keeper binary and its symlinks. The common-static
# .tgz is implicitly excluded because the url filter below
# keeps only urls containing "clickhouse-keeper" in the name.
PACKAGES = ["clickhouse-common-static", "clickhouse-keeper"]
else:
assert False, "BUG"
urls = read_build_urls(build_name)
Expand Down
7 changes: 5 additions & 2 deletions ci/jobs/scripts/docker_server/config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,14 @@
# Get current file directory
currentDir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"

# interate over all directories in current path
clickhouseTests=$( find "$currentDir"/tests/ -maxdepth 1 -name 'clickhouse-*' -type d -exec basename {} \; )
# iterate over all directories in current path
clickhouseTests=$( find "$currentDir"/tests/ -maxdepth 1 -name 'clickhouse-*' -not -name 'clickhouse-distroless-*' -type d -exec basename {} \; )
clickhouseDistrolessTests=$( find "$currentDir"/tests/ -maxdepth 1 -name 'clickhouse-distroless-*' -type d -exec basename {} \; )
keeperTests=$( find "$currentDir"/tests/ -maxdepth 1 -name 'keeper-*' -type d -exec basename {} \; )

imageTests+=(
['clickhouse/clickhouse-server']="${clickhouseTests}"
['clickhouse/clickhouse-server:distroless']="${clickhouseTests} ${clickhouseDistrolessTests}"
['clickhouse/clickhouse-keeper']="${keeperTests}"
['clickhouse/clickhouse-keeper:distroless']="${keeperTests}"
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
CREATE DATABASE IF NOT EXISTS test_db;
CREATE TABLE IF NOT EXISTS test_db.test_table (id UInt32, value UInt32) ENGINE = MergeTree ORDER BY id;
INSERT INTO test_db.test_table VALUES (1, 100), (2, 200);
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/bin/bash
# Verify that clickhouse docker-init executes SQL initdb scripts correctly.
# The distroless image has no shell so initdb scripts must be handled
# by the compiled docker-init entrypoint, not by entrypoint.sh.
set -eo pipefail

dir="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
source "$dir/../lib.sh"

image="$1"

export CLICKHOUSE_USER='init_test_user'
export CLICKHOUSE_PASSWORD='init_test_password'

cid="$(
docker run -d \
-e CLICKHOUSE_USER \
-e CLICKHOUSE_PASSWORD \
-v "$dir/initdb.sql":/docker-entrypoint-initdb.d/initdb.sql:ro \
--name "$(cname)" \
"$image"
)"
trap 'docker rm -vf $cid > /dev/null' EXIT

chCli() {
docker run --rm -i \
--link "$cid":clickhouse \
-e CLICKHOUSE_USER \
-e CLICKHOUSE_PASSWORD \
"$image" \
clickhouse-client \
--host clickhouse \
--user "$CLICKHOUSE_USER" \
--password "$CLICKHOUSE_PASSWORD" \
--query "$*"
}

# shellcheck source=../../../../../tmp/docker-library/official-images/test/retry.sh
. "$TESTS_LIB_DIR/retry.sh" \
--tries "$CLICKHOUSE_TEST_TRIES" \
--sleep "$CLICKHOUSE_TEST_SLEEP" \
chCli SELECT 1

# Verify the initdb script ran and created the table with the expected data
chCli SHOW TABLES IN test_db | grep '^test_table$' >/dev/null
[ "$(chCli 'SELECT SUM(value) FROM test_db.test_table')" = 300 ]
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
#!/bin/bash
# Verify the distroless production image contains no shell.
# This is the key property of a distroless image: /bin/sh, /bin/bash,
# and other shells must be absent to reduce the attack surface.
set -eo pipefail

image="$1"

if docker run --rm --entrypoint /bin/sh "$image" -c "echo bad" 2>/dev/null; then
echo "FAIL: /bin/sh should not exist in the distroless image" >&2
exit 1
fi

if docker run --rm --entrypoint /bin/bash "$image" -c "echo bad" 2>/dev/null; then
echo "FAIL: /bin/bash should not exist in the distroless image" >&2
exit 1
fi
2 changes: 1 addition & 1 deletion ci/workflows/backport_branches.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
enable_job_filtering_by_changes=True,
enable_cache=True,
enable_report=True,
enable_automerge=True,
enable_automerge=False,
enable_cidb=True,
enable_commit_status_on_failure=True,
enable_gh_summary_comment=True,
Expand Down
10 changes: 5 additions & 5 deletions cmake/autogenerated_versions.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

# NOTE: VERSION_REVISION has nothing common with DBMS_TCP_PROTOCOL_VERSION,
# only DBMS_TCP_PROTOCOL_VERSION should be incremented on protocol changes.
SET(VERSION_REVISION 54516)
SET(VERSION_REVISION 54517)
SET(VERSION_MAJOR 26)
SET(VERSION_MINOR 3)
SET(VERSION_PATCH 9)
SET(VERSION_GITHASH f3c6e5a4d27c3997b2a91174752e44acedc51f74)
SET(VERSION_DESCRIBE v26.3.9.20001.altinityantalya)
SET(VERSION_STRING 26.3.9.20001.altinityantalya)
SET(VERSION_PATCH 10)
SET(VERSION_GITHASH 0d82c1998e3b4d54e110dd8a77a64d247c4bff4a)
SET(VERSION_DESCRIBE v26.3.10.20001.altinityantalya)
SET(VERSION_STRING 26.3.10.20001.altinityantalya)
# end of autochange

SET(VERSION_TWEAK 20001)
Expand Down
2 changes: 2 additions & 0 deletions contrib/jemalloc-cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,8 @@ target_compile_definitions(_jemalloc INTERFACE -DJEMALLOC_NO_RENAME)

# Because our coverage callbacks call malloc, and recursive call of malloc could not work.
target_compile_options(_jemalloc PRIVATE ${WITHOUT_COVERAGE_FLAGS_LIST})
# Due to LTO there are some UB in tcache
target_compile_options(_jemalloc PRIVATE -fno-lto -fno-whole-program-vtables)

target_compile_definitions(_jemalloc PRIVATE -DJEMALLOC_PROF=1)

Expand Down
2 changes: 1 addition & 1 deletion contrib/libarchive
Submodule libarchive updated 77 files
+1 −0 CMakeLists.txt
+8 −3 Makefile.am
+2 −0 NEWS
+6 −3 README.md
+3 −0 build/cmake/config.h.in
+1 −1 build/version
+2 −2 configure.ac
+1 −0 contrib/android/Android.mk
+2 −2 contrib/untar.c
+2 −0 cpio/CMakeLists.txt
+11 −4 cpio/cmdline.c
+67 −56 cpio/cpio.c
+0 −2 cpio/cpio.h
+2 −2 libarchive/archive.h
+2 −2 libarchive/archive_check_magic.c
+1 −1 libarchive/archive_entry.h
+3 −1 libarchive/archive_options.c
+2 −2 libarchive/archive_pathmatch.c
+11 −11 libarchive/archive_ppmd8.c
+0 −25 libarchive/archive_ppmd8_private.h
+6 −6 libarchive/archive_read.c
+4 −0 libarchive/archive_read_append_filter.c
+3 −3 libarchive/archive_read_disk_posix.c
+3 −3 libarchive/archive_read_disk_windows.c
+1 −1 libarchive/archive_read_support_filter_grzip.c
+2 −2 libarchive/archive_read_support_filter_lz4.c
+1 −1 libarchive/archive_read_support_filter_lzop.c
+5 −5 libarchive/archive_read_support_format_7zip.c
+15 −5 libarchive/archive_read_support_format_cab.c
+2 −2 libarchive/archive_read_support_format_cpio.c
+17 −9 libarchive/archive_read_support_format_iso9660.c
+2 −2 libarchive/archive_read_support_format_lha.c
+40 −33 libarchive/archive_read_support_format_rar.c
+9 −9 libarchive/archive_read_support_format_rar5.c
+3 −3 libarchive/archive_read_support_format_tar.c
+7 −7 libarchive/archive_read_support_format_xar.c
+11 −11 libarchive/archive_read_support_format_zip.c
+1 −1 libarchive/archive_string.c
+1 −1 libarchive/archive_write.c
+19 −3 libarchive/archive_write_add_filter_b64encode.c
+5 −2 libarchive/archive_write_add_filter_bzip2.c
+9 −3 libarchive/archive_write_add_filter_gzip.c
+15 −6 libarchive/archive_write_add_filter_lrzip.c
+10 −4 libarchive/archive_write_add_filter_lz4.c
+5 −2 libarchive/archive_write_add_filter_lzop.c
+19 −3 libarchive/archive_write_add_filter_uuencode.c
+20 −7 libarchive/archive_write_add_filter_xz.c
+38 −14 libarchive/archive_write_add_filter_zstd.c
+4 −4 libarchive/archive_write_disk_posix.c
+1 −1 libarchive/archive_write_disk_windows.c
+7 −2 libarchive/archive_write_set_format_7zip.c
+2 −2 libarchive/archive_write_set_format_cpio_binary.c
+1 −1 libarchive/archive_write_set_format_cpio_newc.c
+1 −1 libarchive/archive_write_set_format_cpio_odc.c
+9 −9 libarchive/archive_write_set_format_iso9660.c
+1 −1 libarchive/archive_write_set_format_mtree.c
+3 −3 libarchive/archive_write_set_format_pax.c
+4 −2 libarchive/archive_write_set_format_xar.c
+8 −5 libarchive/archive_write_set_format_zip.c
+3 −0 libarchive/test/CMakeLists.txt
+18 −0 libarchive/test/test_archive_pathmatch.c
+45 −0 libarchive/test/test_read_format_cab_lzx_oob.c
+11 −0 libarchive/test/test_read_format_cab_lzx_oob.cab.uu
+41 −0 libarchive/test/test_read_format_cab_skip_malformed.c
+95 −0 libarchive/test/test_read_format_cab_skip_malformed.cab.uu
+104 −0 libarchive/test/test_read_format_iso_zisofs_overflow.c
+1,096 −0 libarchive/test/test_read_format_iso_zisofs_overflow.iso.uu
+34 −0 libarchive/test/test_read_set_format.c
+1 −1 libarchive/test/test_warn_missing_hardlink_target.c
+8 −3 libarchive_fe/lafe_getline.c
+11 −4 libarchive_fe/lafe_getline.h
+10 −10 tar/bsdtar.c
+1 −1 tar/read.c
+4 −4 tar/util.c
+8 −8 tar/write.c
+2 −2 unzip/CMakeLists.txt
+1 −1 unzip/bsdunzip.c
3 changes: 3 additions & 0 deletions contrib/libarchive-cmake/config.h
Original file line number Diff line number Diff line change
Expand Up @@ -1031,6 +1031,9 @@ typedef uint64_t uintmax_t;
/* Define to 1 if you have the <stdint.h> header file. */
#define HAVE_STDINT_H 1

/* Define to 1 if you have the <stdio.h> header file. */
#define HAVE_STDIO_H 1

/* Define to 1 if you have the <stdlib.h> header file. */
#define HAVE_STDLIB_H 1

Expand Down
2 changes: 1 addition & 1 deletion contrib/openssl
Submodule openssl updated 279 files
2 changes: 1 addition & 1 deletion contrib/xz
Submodule xz updated 484 files
Loading
Loading