jemalloc relies on working MADV_DONTNEED (that fact that after
madvise(MADV_DONTNEED) returns success, after subsequent access to those
pages they will be zeroed).
However qemu does not support this, yet [1], and you can get very tricky
assert if you will run clickhouse-server under qemu:
<jemalloc>: ../contrib/jemalloc/src/extent.c:1195: Failed assertion: "p[i] == 0"
[1]: https://patchwork.kernel.org/patch/10576637/
But after this patch you will get pretty error:
$ qemu-x86_64-static programs/clickhouse
MADV_DONTNEED does not zeroed page. jemalloc will be broken
* master: (279 commits)
Convert to python3 (#15007)
update en and ru docs: add 128/256 types (#15515)
Drop unused code for numeric_limits<int128> in MergeTreeDataSelectExecutor (#15519)
Fix comment
More defaults on defaults
Recursive defaults
Fix bash
Update ActionsVisitor.cpp
Don't add memcpy for sanitizers builds
Fix gRPC build scripts.
Neutrialize thinlto's memcpy libcall gen.
Revert "Add fno-builtin-memcpy"
Throw an error when a single parameter is passed to ReplicatedMergeTree instead of ignoring it
Update SECURITY.md
Update tsan_suppressions.txt
Update ActionsVisitor.cpp
remove unrelated changes
Update SECURITY.md
fixes
Update ActionsVisitor.cpp
...
* master: (224 commits)
Update in.md
Add a test for embedded configs
Allow to run without /proc/self/maps
Update adopters.md
More convenient
Enable embedded configs for AArch64
More results
More handy
More handy
Added a comment
Adjustments
Adjustments
Adjustments
Added new results
Step 1: make adding hardware benchmark results more convenient
Revert "Avoid deadlocks in Log/TinyLog"
Fix MSan report in QueryLog
add some disabled tests from arcadia to skip_list.json
Update skip_list.json
Bump CI. [2]
...
# Conflicts:
# docker/test/testflows/runner/Dockerfile
* master: (375 commits)
Update type-conversion-functions.md
Update maxmap.md
Update maxmap.md
Update maxmap.md
Update single_fixed_string_groupby.xml
Alter remove column properties and TTLs (#14742)
better fixed string group by support
Fix incorrect key condition of fixed strings.
constant output order
more tests for #14646
Maybe fix MSan report in base64
Proper exception message for wrong number of arguments of CAST
Added a test
Fix buffer overflow in "bar" function
Update convertMySQLDataType.cpp
Fix clang-tidy
Remove obsolete code from performance test
Slightly better code
Even more
Even more
...
# Conflicts:
# src/Interpreters/Context.cpp
With '\n...' after the query [1] clickhouse-client prefer data from the
INSERT over from stdin, and produce very tricky message:
Code: 27. DB::Exception: Cannot parse input: expected '\n' before: ' ': (at row 1)
Well for TSV it is ok, but for RowBinary:
Code: 33. DB::Exception: Cannot read all data. Bytes read: 1. Bytes expected: 4.
So improve error message by adding the source of data for INSERT.
[1]: clickhouse-client -q "INSERT INTO data FORMAT TSV\n " <<<2
Add inter-server cluster secret, it is used for Distributed queries
inside cluster, you can configure in the configuration file:
<remote_servers>
<logs>
<shard>
<secret>foobar</secret> <!-- empty -- works as before -->
...
</shard>
</logs>
</remote_servers>
And this will allow clickhouse to make sure that the query was not
faked, and was issued from the node that knows the secret. And since
trust appeared it can use initial_user for query execution, this will
apply correct *_for_user (since with inter-server secret enabled, the
query will be executed from the same user on the shards as on initator,
unlike "default" user w/o it).
v2: Change user to the initial_user for Distributed queries if secret match
v3: Add Protocol::Cluster package
v4: Drop Protocol::Cluster and use plain Protocol::Hello + user marker
v5: Do not use user from Hello for cluster-secure (superfluous)
Add distributed_ddl.pool_size to control maximum parallel to handle
distributed DDL.
Also:
- convert Exception constructors to fmt-like
- use sleepFor* over std::this_thread::sleep_for()