Rust requires internet connection, so let's detect if it works, and if
not, suggest building with -DENABLE_RUST=OFF, here is an example of the
output in case of error:
$ docker run --network=none ...
-- Copy skim to /root/rust/skim
CMake Error at rust/CMakeLists.txt:112 (message):
Rust (/rust/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo)
support is not available (likely there is no internet connectivity):
Updating git repository `https://github.com/azat-rust/tuikit.git`
warning: spurious network error (3 tries remaining): failed to resolve
address for github.com: Temporary failure in name resolution; class=Net
(12)
warning: spurious network error (2 tries remaining): failed to resolve
address for github.com: Temporary failure in name resolution; class=Net
(12)
warning: spurious network error (1 tries remaining): failed to resolve
address for github.com: Temporary failure in name resolution; class=Net
(12)
error: failed to load source for dependency `tuikit`
Caused by:
Unable to update https://github.com/azat-rust/tuikit.git?rev=e1994c0e03ff02c49cf1471f0cc3cbf185ce0104
Caused by:
failed to clone into: /rust/cargo/git/db/tuikit-c3ca927b4dbcf00d
Caused by:
network failure seems to have happened
if a proxy or similar is necessary `net.git-fetch-with-cli` may help here
https://doc.rust-lang.org/cargo/reference/config.html#netgit-fetch-with-cli
Caused by:
failed to resolve address for github.com: Temporary failure in name resolution; class=Net (12)
You can disable Rust support with -DENABLE_RUST=OFF
Call Stack (most recent call first):
rust/CMakeLists.txt:129 (add_rust_subdirectory)
-- Configuring incomplete, errors occurred!
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
* hackish change to check how CI reacts
* remove unnecessary renameTo
* introduce separate metho
* remove unused arg
* rename meth od
* add simple test
* add current database
* set mutations sync
* Update tests/queries/0_stateless/03013_test_part_level_is_reset_attach_from_disk_mt.sql
---------
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com>
Co-authored-by: János Benjamin Antal <benjamin.antal@clickhouse.com>
That was the changes that looks OK for the initial patchset version, but
not now, after all review comments.
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
v2: replace without s3_plain disk
v3: add check for DistributedConnectionReadOnlyReplica
v4: set insert_keeper_max_retries=0
v5: do not set insert_keeper_max_retries=0
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
Now, since there is connection probing, the error changed from
UNKNOWN_TABLE to ALL_CONNECTION_TRIES_FAILED, though I'm not sure that
this good...
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>
Sometimes replica may be readonly for a long time, and this will make
some INSERT queries fail, but it does not make sense to INSERT into
readonly replica, so let's ignore them.
But note, that this will require to extend TableStatus (not extend, but
introduce new version), that will have is_readonly field.
Also before background INSERT into Distributed does not uses
getManyChecked() which means that they do not request TableStatus
packet, while now they would, though this is minor (just a note).
v2: Add a note about max_replica_delay_for_distributed_queries for INSERT
v3: Skip read-only replicas for async INSERT into Distributed
v4: Remove extra @insert parameter for ConnectionPool*::get*
It make sense only when the table name had passed --
ConnectionPoolWithFailover::getManyChecked()
v5: rebase on top LoggerPtr
v6: rebase
v7: rebase
v8: move TryResult::is_readonly into the end
Signed-off-by: Azat Khuzhin <a.khuzhin@semrush.com>