mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-12-01 20:12:02 +00:00
remove abandonable_lock part 2
This commit is contained in:
parent
a1c028f20c
commit
acbad99b24
@ -481,6 +481,7 @@ else
|
|||||||
-e "The set of parts restored in place of" \
|
-e "The set of parts restored in place of" \
|
||||||
-e "(ReplicatedMergeTreeAttachThread): Initialization failed. Error" \
|
-e "(ReplicatedMergeTreeAttachThread): Initialization failed. Error" \
|
||||||
-e "Code: 269. DB::Exception: Destination table is myself" \
|
-e "Code: 269. DB::Exception: Destination table is myself" \
|
||||||
|
-e "Coordination::Exception: Connection loss" \
|
||||||
/var/log/clickhouse-server/clickhouse-server.backward.clean.log | zgrep -Fa "<Error>" > /test_output/bc_check_error_messages.txt \
|
/var/log/clickhouse-server/clickhouse-server.backward.clean.log | zgrep -Fa "<Error>" > /test_output/bc_check_error_messages.txt \
|
||||||
&& echo -e 'Backward compatibility check: Error message in clickhouse-server.log (see bc_check_error_messages.txt)\tFAIL' >> /test_output/test_results.tsv \
|
&& echo -e 'Backward compatibility check: Error message in clickhouse-server.log (see bc_check_error_messages.txt)\tFAIL' >> /test_output/test_results.tsv \
|
||||||
|| echo -e 'Backward compatibility check: No Error messages in clickhouse-server.log\tOK' >> /test_output/test_results.tsv
|
|| echo -e 'Backward compatibility check: No Error messages in clickhouse-server.log\tOK' >> /test_output/test_results.tsv
|
||||||
|
@ -1972,54 +1972,24 @@ ReplicatedMergeTreeMergePredicate::ReplicatedMergeTreeMergePredicate(
|
|||||||
auto quorum_status_future = zookeeper->asyncTryGet(fs::path(queue.zookeeper_path) / "quorum" / "status");
|
auto quorum_status_future = zookeeper->asyncTryGet(fs::path(queue.zookeeper_path) / "quorum" / "status");
|
||||||
|
|
||||||
/// Load current inserts
|
/// Load current inserts
|
||||||
std::unordered_set<String> lock_holder_paths;
|
Strings partitions = zookeeper->getChildren(fs::path(queue.zookeeper_path) / "block_numbers");
|
||||||
for (const String & entry : zookeeper->getChildren(fs::path(queue.zookeeper_path) / "temp"))
|
std::vector<std::string> paths;
|
||||||
|
paths.reserve(partitions.size());
|
||||||
|
for (const String & partition : partitions)
|
||||||
|
paths.push_back(fs::path(queue.zookeeper_path) / "block_numbers" / partition);
|
||||||
|
|
||||||
|
auto locks_children = zookeeper->getChildren(paths);
|
||||||
|
|
||||||
|
for (size_t i = 0; i < partitions.size(); ++i)
|
||||||
{
|
{
|
||||||
if (startsWith(entry, "abandonable_lock-"))
|
Strings partition_block_numbers = locks_children[i].names;
|
||||||
lock_holder_paths.insert(fs::path(queue.zookeeper_path) / "temp" / entry);
|
for (const String & entry : partition_block_numbers)
|
||||||
}
|
|
||||||
|
|
||||||
if (!lock_holder_paths.empty())
|
|
||||||
{
|
|
||||||
Strings partitions = zookeeper->getChildren(fs::path(queue.zookeeper_path) / "block_numbers");
|
|
||||||
std::vector<std::string> paths;
|
|
||||||
paths.reserve(partitions.size());
|
|
||||||
for (const String & partition : partitions)
|
|
||||||
paths.push_back(fs::path(queue.zookeeper_path) / "block_numbers" / partition);
|
|
||||||
|
|
||||||
auto locks_children = zookeeper->getChildren(paths);
|
|
||||||
|
|
||||||
struct BlockInfoInZooKeeper
|
|
||||||
{
|
{
|
||||||
String partition;
|
if (!startsWith(entry, "block-"))
|
||||||
Int64 number;
|
continue;
|
||||||
String zk_path;
|
Int64 block_number = parse<Int64>(entry.substr(strlen("block-")));
|
||||||
std::future<Coordination::GetResponse> contents_future;
|
String zk_path = fs::path(queue.zookeeper_path) / "block_numbers" / partitions[i] / entry;
|
||||||
};
|
committing_blocks[partitions[i]].insert(block_number);
|
||||||
|
|
||||||
std::vector<BlockInfoInZooKeeper> block_infos;
|
|
||||||
for (size_t i = 0; i < partitions.size(); ++i)
|
|
||||||
{
|
|
||||||
Strings partition_block_numbers = locks_children[i].names;
|
|
||||||
for (const String & entry : partition_block_numbers)
|
|
||||||
{
|
|
||||||
/// TODO: cache block numbers that are abandoned.
|
|
||||||
/// We won't need to check them on the next iteration.
|
|
||||||
if (startsWith(entry, "block-"))
|
|
||||||
{
|
|
||||||
Int64 block_number = parse<Int64>(entry.substr(strlen("block-")));
|
|
||||||
String zk_path = fs::path(queue.zookeeper_path) / "block_numbers" / partitions[i] / entry;
|
|
||||||
block_infos.emplace_back(
|
|
||||||
BlockInfoInZooKeeper{partitions[i], block_number, zk_path, zookeeper->asyncTryGet(zk_path)});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (auto & block : block_infos)
|
|
||||||
{
|
|
||||||
Coordination::GetResponse resp = block.contents_future.get();
|
|
||||||
if (resp.error == Coordination::Error::ZOK && lock_holder_paths.contains(resp.data))
|
|
||||||
committing_blocks[block.partition].insert(block.number);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,37 +5,35 @@ log
|
|||||||
::1 Request 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 \N \N \N 0 0 0 0
|
::1 Request 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 \N \N \N 0 0 0 0
|
||||||
::1 Response 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 ZOK \N \N /test/01158/default/rmt/log/log-0000000000 0 0 0 0
|
::1 Response 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 ZOK \N \N /test/01158/default/rmt/log/log-0000000000 0 0 0 0
|
||||||
parts
|
parts
|
||||||
Request 0 Multi 0 0 \N 5 0 \N \N \N 0 0 0 0
|
Request 0 Multi 0 0 \N 4 0 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 \N \N \N 0 0 0 0
|
||||||
Request 0 Remove /test/01158/default/rmt/block_numbers/all/block-0000000000 0 0 -1 0 2 \N \N \N 0 0 0 0
|
Request 0 Remove /test/01158/default/rmt/block_numbers/all/block-0000000000 0 0 -1 0 2 \N \N \N 0 0 0 0
|
||||||
Request 0 Remove /test/01158/default/rmt/temp/abandonable_lock-0000000000 0 0 -1 0 3 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 3 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 4 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 4 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 5 \N \N \N 0 0 0 0
|
Response 0 Multi 0 0 \N 4 0 ZOK \N \N 0 0 0 0
|
||||||
Response 0 Multi 0 0 \N 5 0 ZOK \N \N 0 0 0 0
|
|
||||||
Response 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 ZOK \N \N /test/01158/default/rmt/log/log-0000000000 0 0 0 0
|
Response 0 Create /test/01158/default/rmt/log/log- 0 1 \N 0 1 ZOK \N \N /test/01158/default/rmt/log/log-0000000000 0 0 0 0
|
||||||
Response 0 Remove /test/01158/default/rmt/block_numbers/all/block-0000000000 0 0 -1 0 2 ZOK \N \N 0 0 0 0
|
Response 0 Remove /test/01158/default/rmt/block_numbers/all/block-0000000000 0 0 -1 0 2 ZOK \N \N 0 0 0 0
|
||||||
Response 0 Remove /test/01158/default/rmt/temp/abandonable_lock-0000000000 0 0 -1 0 3 ZOK \N \N 0 0 0 0
|
Response 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 3 ZOK \N \N /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 0 0
|
||||||
Response 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 4 ZOK \N \N /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 0 0
|
Response 0 Create /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 4 ZOK \N \N /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 0 0
|
||||||
Response 0 Create /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 5 ZOK \N \N /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 0 0
|
|
||||||
Request 0 Exists /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 0 \N \N \N 0 0 0 0
|
Request 0 Exists /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 0 \N \N \N 0 0 0 0
|
||||||
Response 0 Exists /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 0 ZOK \N \N 0 0 96 0
|
Response 0 Exists /test/01158/default/rmt/replicas/1/parts/all_0_0_0 0 0 \N 0 0 ZOK \N \N 0 0 96 0
|
||||||
blocks
|
blocks
|
||||||
Request 0 Multi 0 0 \N 3 0 \N \N \N 0 0 0 0
|
Request 0 Multi 0 0 \N 3 0 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 \N \N \N 0 0 0 0
|
||||||
Request 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 \N \N \N 0 0 0 0
|
Request 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/temp/abandonable_lock- 1 1 \N 0 3 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/block_numbers/all/block- 1 1 \N 0 3 \N \N \N 0 0 0 0
|
||||||
Response 0 Multi 0 0 \N 3 0 ZOK \N \N 0 0 0 0
|
Response 0 Multi 0 0 \N 3 0 ZOK \N \N 0 0 0 0
|
||||||
Response 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 ZOK \N \N /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 0 0
|
Response 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 ZOK \N \N /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 0 0
|
||||||
Response 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 ZOK \N \N 0 0 0 0
|
Response 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 ZOK \N \N 0 0 0 0
|
||||||
Response 0 Create /test/01158/default/rmt/temp/abandonable_lock- 1 1 \N 0 3 ZOK \N \N /test/01158/default/rmt/temp/abandonable_lock-0000000000 0 0 0 0
|
Response 0 Create /test/01158/default/rmt/block_numbers/all/block- 1 1 \N 0 3 ZOK \N \N /test/01158/default/rmt/block_numbers/all/block-0000000000 0 0 0 0
|
||||||
Request 0 Multi 0 0 \N 3 0 \N \N \N 0 0 0 0
|
Request 0 Multi 0 0 \N 3 0 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 \N \N \N 0 0 0 0
|
||||||
Request 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 \N \N \N 0 0 0 0
|
Request 0 Remove /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 \N \N \N 0 0 0 0
|
||||||
Request 0 Create /test/01158/default/rmt/temp/abandonable_lock- 1 1 \N 0 3 \N \N \N 0 0 0 0
|
Request 0 Create /test/01158/default/rmt/block_numbers/all/block- 1 1 \N 0 3 \N \N \N 0 0 0 0
|
||||||
Response 0 Multi 0 0 \N 3 0 ZNODEEXISTS \N \N 0 0 0 0
|
Response 0 Multi 0 0 \N 3 0 ZNODEEXISTS \N \N 0 0 0 0
|
||||||
Response 0 Error /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 ZNODEEXISTS \N \N 0 0 0 0
|
Response 0 Error /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 1 ZNODEEXISTS \N \N 0 0 0 0
|
||||||
Response 0 Error /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 ZRUNTIMEINCONSISTENCY \N \N 0 0 0 0
|
Response 0 Error /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 -1 0 2 ZRUNTIMEINCONSISTENCY \N \N 0 0 0 0
|
||||||
Response 0 Error /test/01158/default/rmt/temp/abandonable_lock- 1 1 \N 0 3 ZRUNTIMEINCONSISTENCY \N \N 0 0 0 0
|
Response 0 Error /test/01158/default/rmt/block_numbers/all/block- 1 1 \N 0 3 ZRUNTIMEINCONSISTENCY \N \N 0 0 0 0
|
||||||
Request 0 Get /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 0 \N \N \N 0 0 0 0
|
Request 0 Get /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 0 \N \N \N 0 0 0 0
|
||||||
Response 0 Get /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 0 ZOK \N \N 0 0 9 0
|
Response 0 Get /test/01158/default/rmt/blocks/all_6308706741995381342_2495791770474910886 0 0 \N 0 0 ZOK \N \N 0 0 9 0
|
||||||
duration_ms
|
duration_ms
|
||||||
|
Loading…
Reference in New Issue
Block a user