mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-26 01:22:04 +00:00
zkutil: explained a test. [#METR-10202]
This commit is contained in:
parent
052b2bd83b
commit
ad3954a28a
15
libs/libzkutil/src/tests/nozk.sh
Executable file
15
libs/libzkutil/src/tests/nozk.sh
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Добавляет в файрвол правила, не пропускающие пакеты до серверов ZooKeeper.
|
||||||
|
# Используется для тестирования поведения программ при потере соединения с ZooKeeper.
|
||||||
|
# yeszk.sh производит обратные изменения.
|
||||||
|
|
||||||
|
# Чтобы посмотреть, какие правила сейчас есть, используйте sudo iptables -L и sudo ip6tables -L
|
||||||
|
|
||||||
|
sudo iptables -A OUTPUT -d example1 -j DROP
|
||||||
|
sudo iptables -A OUTPUT -d example2 -j DROP
|
||||||
|
sudo iptables -A OUTPUT -d example3 -j DROP
|
||||||
|
sudo ip6tables -A OUTPUT -d example1 -j DROP
|
||||||
|
sudo ip6tables -A OUTPUT -d example2 -j DROP
|
||||||
|
sudo ip6tables -A OUTPUT -d example3 -j DROP
|
||||||
|
|
6
libs/libzkutil/src/tests/yeszk.sh
Executable file
6
libs/libzkutil/src/tests/yeszk.sh
Executable file
@ -0,0 +1,6 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Выполняет действия, обратные nozk.sh
|
||||||
|
|
||||||
|
cat nozk.sh | sed 's/-A/-D/g' | bash
|
||||||
|
|
@ -2,6 +2,10 @@
|
|||||||
|
|
||||||
namespace zk = org::apache::zookeeper;
|
namespace zk = org::apache::zookeeper;
|
||||||
|
|
||||||
|
/** Проверяет, правда ли, что вызовы в zkcpp при просроченной сессии блокируются навсегда.
|
||||||
|
* Разорвать сессию можно, например, так: `./nozk.sh && sleep 6s && ./yeszk.sh`
|
||||||
|
*/
|
||||||
|
|
||||||
void stateChanged(zk::WatchEvent::type event, zk::SessionState::type state, const std::string & path)
|
void stateChanged(zk::WatchEvent::type event, zk::SessionState::type state, const std::string & path)
|
||||||
{
|
{
|
||||||
std::cout << "state changed; event: " << zk::WatchEvent::toString(event) << ", state: " << zk::SessionState::toString(state)
|
std::cout << "state changed; event: " << zk::WatchEvent::toString(event) << ", state: " << zk::SessionState::toString(state)
|
||||||
@ -29,7 +33,7 @@ int main()
|
|||||||
std::cin >> unused;
|
std::cin >> unused;
|
||||||
|
|
||||||
children.clear();
|
children.clear();
|
||||||
std::cout << "will getChildren" << std::endl;
|
std::cout << "will getChildren (this call will block forever, which seems to be zkcpp issue)" << std::endl;
|
||||||
ret = zookeeper.getChildren("/", nullptr, children, stat);
|
ret = zookeeper.getChildren("/", nullptr, children, stat);
|
||||||
|
|
||||||
std::cout << "getChildren returned " << zk::ReturnCode::toString(ret) << std::endl;
|
std::cout << "getChildren returned " << zk::ReturnCode::toString(ret) << std::endl;
|
||||||
|
Loading…
Reference in New Issue
Block a user