avogar
722e0ea214
Fix clickhouse-test
2022-03-05 16:46:14 +00:00
mergify[bot]
c90d24e10b
Merge branch 'master' into random-settings
2022-03-03 13:07:12 +00:00
avogar
d25d83580a
Fix tests
2022-03-02 16:33:21 +00:00
vdimir
fc5e941f79
Add option to clickhouse-test to skip aarch64 build
2022-03-02 14:18:24 +00:00
avogar
dbb29dd394
Fix tests
2022-02-28 12:17:44 +00:00
avogar
90603ae549
Randomize just first batch of settings
2022-02-18 12:22:06 +00:00
avogar
48d036d3f9
Fix next batch of tests
2022-02-17 11:10:38 +00:00
Kruglov Pavel
33e4c703a1
Merge branch 'master' into random-settings
2022-02-16 13:38:15 +03:00
avogar
be5efc33d4
Fix more settings, add random settings for .sh tests
2022-02-16 10:35:46 +00:00
avogar
880780c7a8
Fix some tests
2022-02-11 17:15:56 +03:00
Kruglov Pavel
33c3b2d856
Better message
2022-02-08 18:38:41 +03:00
alesapin
18f08ed932
Revert "Revert "Add func tests run with s3""
2022-02-01 10:20:06 +03:00
alexey-milovidov
cbfcd45be3
Revert "Add func tests run with s3"
2022-02-01 05:46:13 +03:00
alesapin
b6828f1b4a
Supress some tests for S3
2022-01-31 19:09:25 +03:00
avogar
4bd6cd0b80
Add more settings, print settings if tests fails, add random settings to CLICKHOUSE_URL_PARAMS
2022-01-28 16:46:00 +03:00
Kruglov Pavel
1cdf49efed
More random settings
...
Co-authored-by: tavplubix <tavplubix@gmail.com>
2022-01-28 15:26:55 +03:00
avogar
4a005579cc
Randomize some settings in functional tests
2022-01-28 14:26:50 +03:00
vdimir
e5613fce3c
Support USE_* build flags in tests' tags
2022-01-19 12:21:51 +00:00
Azat Khuzhin
b3f1951c15
clickhouse-test: avoid failing with UNKNOWN status in some cases
...
Like in:
- CREATE/DROP DATABASE failure
- Connection refused failure
Fixes : #32502
2021-12-12 18:48:54 +03:00
alexey-milovidov
8fdd7f329e
Merge pull request #32533 from azat/clickhouse-test-log-comment
...
clickhouse-test: use basename of the test for *.sh tests
2021-12-11 02:53:57 +03:00
Azat Khuzhin
2045a4f245
clickhouse-test: use basename of the test for *.sh tests
2021-12-10 21:45:29 +03:00
alesapin
a6e55b00e3
Revert "Revert "Split long tests into multiple checks""
2021-12-10 18:39:02 +03:00
alesapin
dcbba460c1
Revert "Split long tests into multiple checks"
2021-12-10 18:38:42 +03:00
alesapin
8f8f65e6e0
Fix clickhouse test
2021-12-10 13:30:12 +03:00
alesapin
4c1babee05
Split long functional tests to multiple checks
2021-12-10 12:07:24 +03:00
Azat Khuzhin
d68d01988e
clickhouse-test: apply --client-option in get_stacktraces_from_clickhouse()
2021-12-06 09:02:56 +03:00
Azat Khuzhin
9276384977
clickhouse-test: do not use random generator with shared state
...
Recently (#32094 ) test database had been overlapped, and random prefix
for database had been increased from 6 to 8.
But actually 6 bytes for random prefix should be enough (with existing
alphabet (0-9a-z) it is 36**6=2'176'782'336), and the real reason of
this overlap is that random generator by default uses shared state [1]:
The functions supplied by this module are actually bound methods of
a hidden instance of the random.Random class. You can instantiate your
own instances of Random to get generators that don’t share state.
[1]: https://docs.python.org/3/library/random.html
I've played a little bit with random in python, and using default random
generator it generates non-unique strings pretty fast, just in a few
runs, but using SystemRandom (that uses /dev/urandom) it takes ~1 minute.
Test:
```sh
$ while /tmp/test.py | LANG=c sort -S5G | LANG=c uniq -d | tee /dev/stderr | wc -l | fgrep -q -x -c 0; do :; done
```
```python
#!/usr/bin/env python3
import multiprocessing
import string
import random
def random_str(length=6):
alphabet = string.ascii_lowercase + string.digits
return ''.join(random.SystemRandom().choice(alphabet) for _ in range(length))
def worker(_):
print(random_str())
with multiprocessing.Pool(processes=2) as pool:
pool.map(worker, range(0, int(10e3)))
```
So let's switch to SystemRandom and use 6-byte prefix.
2021-12-03 01:29:23 +03:00
Azat Khuzhin
cc8ebff212
Increase length of random database in clickhouse-test
...
In [1] there was one overlap with 6-byte prefix:
$ pigz -cd clickhouse-server2.log.gz | fgrep test_8a50uz | fgrep 'CREATE DATABASE' | fgrep comment | cut -d' ' -f7-
<Debug> executeQuery: (from 0.0.0.0:0, user: ) (comment: 01018_insert_multiple_blocks_with_defaults.sh) /* ddl_entry=query-0000001951 */ CREATE DATABASE test_8a50uz UUID 'bb71f2ea-5ed3-466d-bb71-f2ea5ed3266d' ENGINE = Replicated('/test/clickhouse/db/test_8a50uz', '{shard}', '{replica}')
<Debug> executeQuery: (from 0.0.0.0:0, user: ) (comment: 00098_k_union_all.sql) /* ddl_entry=query-0000003157 */ CREATE DATABASE test_8a50uz UUID '09cc030b-a4c1-4192-89cc-030ba4c1e192' ENGINE = Replicated('/test/clickhouse/db/test_8a50uz', '{shard}', '{replica}')
<Error> executeQuery: Code: 82. DB::Exception: Database test_8a50uz already exists. (DATABASE_ALREADY_EXISTS) (version 21.12.1.8932) (from 0.0.0.0:0) (comment: 00098_k_union_all.sql) (in query: /* ddl_entry=query-0000003157 */ CREATE DATABASE test_8a50uz UUID '09cc030b-a4c1-4192-89cc-030ba4c1e192' ENGINE = Replicated('/test/clickhouse/db/test_8a50uz', '{shard}', '{replica}')), Stack trace (when copying this message, always include the lines below):
[1]: https://clickhouse-test-reports.s3.yandex.net/32019/927b9cb1c6470b6d7cd86b4c3fd2078ff43b57df/functional_stateless_tests_(release,_databasereplicated).html#fail1
2021-12-01 22:39:42 +03:00
Alexey Milovidov
d604cf5573
Remove the infamous "unbundled" build
2021-11-21 13:58:26 +03:00
Alexander Tokmakov
d095cfe4c1
disable check for zk session uptime by default
2021-10-29 14:45:09 +03:00
Azat Khuzhin
e3074cdd5a
clickhouse-test: increase delay for initial SELECT 1 check
...
CI report [1]:
<details>
2021-10-24 04:43:13 Server is not responding. Cannot execute 'SELECT 1' query. If you are using split build, you have to specify -c option.
2021-10-24 04:43:13 Cannot get server pid with pidof -s clickhouse-server, got : Command 'pidof -s clickhouse-server' returned non-zero exit status 1.
2021-10-24 04:43:13 Thread 1 (Thread 0x7f401edd7340 (LWP 370)):
2021-10-24 04:43:13 0 0x0000000009f9a807 in __sanitizer::StackDepotBase<>::Put(__sanitizer::StackTrace, bool*) ()
2021-10-24 04:43:13 1 0x0000000009f9a6f7 in __sanitizer::StackDepotPut(__sanitizer::StackTrace) ()
2021-10-24 04:43:13 2 0x0000000009f2b0e7 in __msan::MsanDeallocate(__sanitizer::StackTrace*, void*) ()
2021-10-24 04:43:13 3 0x0000000009fa77df in operator delete(void*, unsigned long) ()
2021-10-24 04:43:13 4 0x000000004185ffc2 in std::__1::__libcpp_operator_delete<void*, unsigned long> () at ../contrib/libcxx/include/new:245
2021-10-24 04:43:13 5 std::__1::__do_deallocate_handle_size<>(void*, unsigned long) () at ../contrib/libcxx/include/new:271
2021-10-24 04:43:13 6 std::__1::__libcpp_deallocate () at ../contrib/libcxx/include/new:285
2021-10-24 04:43:13 7 std::__1::allocator<char>::deallocate () at ../contrib/libcxx/include/memory:849
2021-10-24 04:43:13 8 std::__1::allocator_traits<std::__1::allocator<char> >::deallocate () at ../contrib/libcxx/include/__memory/allocator_traits.h:476
2021-10-24 04:43:13 9 std::__1::basic_string<>::~basic_string (this=0x70400000efe8) at ../contrib/libcxx/include/string:2219
2021-10-24 04:43:13 10 Poco::XML::ContextLocator::~ContextLocator (this=0x70400000efc0) at ../contrib/poco/XML/src/ParserEngine.cpp:53
2021-10-24 04:43:13 11 0x000000004186010d in Poco::XML::ContextLocator::~ContextLocator (this=0x70400000efc0) at ../contrib/poco/XML/src/ParserEngine.cpp:52
2021-10-24 04:43:13 12 0x000000004184af75 in Poco::XML::ParserEngine::popContext (this=<optimized out>) at ../contrib/poco/XML/src/ParserEngine.cpp:599
2021-10-24 04:43:13 13 Poco::XML::ParserEngine::parse (this=<optimized out>, pInputSource=0x706000003720) at ../contrib/poco/XML/src/ParserEngine.cpp:234
2021-10-24 04:43:13 14 0x000000004184880e in Poco::XML::SAXParser::parse (this=<optimized out>, systemId=...) at ../contrib/poco/XML/src/SAXParser.cpp:201
2021-10-24 04:43:13 15 0x00000000417f3eeb in Poco::XML::DOMBuilder::parse (this=<optimized out>, uri=...) at ../contrib/poco/XML/src/DOMBuilder.cpp:69
2021-10-24 04:43:13 16 0x00000000417f2946 in Poco::XML::DOMParser::parse (this=<optimized out>, uri=...) at ../contrib/poco/XML/src/DOMParser.cpp:102
2021-10-24 04:43:13 17 0x000000003741dd6c in DB::ConfigProcessor::processConfig (this=this@entry=0x7fff89847130, has_zk_includes=has_zk_includes@entry=0x7fff898470f7, zk_node_cache=zk_node_cache@entry=0x0, zk_changed_event=...) at ../src/Common/Config/ConfigProcessor.cpp:570
2021-10-24 04:43:13 18 0x0000000037427bb7 in DB::ConfigProcessor::loadConfig (this=<optimized out>, allow_zk_includes=true) at ../src/Common/Config/ConfigProcessor.cpp:657
2021-10-24 04:43:13 19 0x000000003743fb76 in DB::ConfigReloader::reloadIfNewer (this=this@entry=0x712000002700, force=true, throw_on_error=true, fallback_to_preprocessed=true, initial_loading=true) at ../src/Common/Config/ConfigReloader.cpp:96
2021-10-24 04:43:13 20 0x000000003743d85e in DB::ConfigReloader::ConfigReloader() () at ../src/Common/Config/ConfigReloader.cpp:33
2021-10-24 04:43:13 21 0x0000000009fd3efb in std::__1::make_unique<>() (__args=<optimized out>, __args=<optimized out>, __args=<optimized out>, __args=<optimized out>, __args=<optimized out>, __args=<optimized out>, __args=<optimized out>) at ../contrib/libcxx/include/memory:2068
2021-10-24 04:43:13 22 DB::Server::main (this=<optimized out>) at ../programs/server/Server.cpp:803
2021-10-24 04:43:13 23 0x000000004175c5f9 in Poco::Util::Application::run (this=<optimized out>) at ../contrib/poco/Util/src/Application.cpp:334
2021-10-24 04:43:13 24 0x0000000009fb5d7f in DB::Server::run (this=<optimized out>) at ../programs/server/Server.cpp:405
</details>
[1]: https://clickhouse-test-reports.s3.yandex.net/30611/5ff6c5536558821824d5fdf25a75729e5b82060d/functional_stateless_tests_(memory).html#fail1
2021-10-24 19:04:36 +03:00
Azat Khuzhin
09b782a52e
Increase default wait of the server start in clickhouse-test
...
Set --server-check-retries to 90 (and this is ~45 seconds), since right
now sometimes it is not enough [1].
[1]: https://clickhouse-test-reports.s3.yandex.net/30191/0e34a9d550cfe6924fe575871f36c44dd44acdaa/functional_stateless_tests_(memory).html#fail1
And the reason I guess is clickhouse-test had been rewritten to
http.client in #30065 , and since now it does not need to execute
clickhouse-client binary, which in debug/sanitizers builds can take also
sometime.
That said that with clickhouse-client for hung check it was not 15
seconds, but more (each clickhouse-client requires 0.6sec with
sanitizers for simple SELECT 1, while w/o 0.1second, also too much
should be optimized)
2021-10-18 10:46:02 +03:00
Azat Khuzhin
612a21cc97
clickhouse-test: do not propagate CLICKHOUSE_PORT_HTTP to clickhouse-client
2021-10-16 17:59:56 +03:00
Azat Khuzhin
c6e61e9497
clickhouse-test: use splitlines() over split('\n')
2021-10-16 17:59:56 +03:00
Azat Khuzhin
3102d24872
Fix --hung-check in clickhouse-test
...
JSONEachRow cannot be parsed with a simple json.loads(), instead it
should be passed to json.loads() line by line.
Fixes : #30065
2021-10-16 17:59:56 +03:00
Azat Khuzhin
e5bc573250
clickhouse-test: fix hung check in stress test by using system database
2021-10-13 00:19:16 +03:00
Azat Khuzhin
8d7798fa2e
clickhouse-test: do not guard CREATE DATABASE with try/catch
...
Since it will not configure testcase args and fail eventually, and later
we have a try/catch anyway, this should be enough.
2021-10-12 22:39:43 +03:00
Azat Khuzhin
40d210367f
clickhouse-test: fix catching of timeouts
2021-10-12 22:33:41 +03:00
Azat Khuzhin
427c428a27
clickhouse-test: process some options regardless --client
2021-10-12 22:30:34 +03:00
Azat Khuzhin
8dc8674298
clickhouse-test: process --client-option
2021-10-12 22:30:16 +03:00
Azat Khuzhin
fe90c979b5
clickhouse-test: fix redirect to stderr
...
Before #29856 `CREATE DATABASE` overwrites it.
Reported-by: @amosbird
2021-10-12 22:18:39 +03:00
Azat Khuzhin
50b95bd89d
clickhouse-test: passthrough log_comment for DROP DATABASE too
2021-10-12 21:09:48 +03:00
Azat Khuzhin
e2e62ce273
clickhouse-test: replace clickhouse-driver with http interface (via http.client)
...
Cons of clickhouse-driver:
- it is one more extra dependency
- it does not have correct timeouts (only for socket operations, and
this is not the same, so we need to set timeout by ourself)
- it is one more thing which can break (@alesapin)
2021-10-12 21:08:33 +03:00
alesapin
3ae960e04b
Review fixes
2021-10-11 16:40:12 +03:00
alesapin
59a78830f9
Better timeouts in clickhouse-test
2021-10-11 14:46:01 +03:00
Azat Khuzhin
42ca2b4bb2
clickhouse-test: remove not existing options for pylint
...
https://clickhouse-test-reports.s3.yandex.net/29856/e2d6698244d43979b3fe2478dfdcd8dc3a91a0fd/style_check/test_run.txt.out.log
2021-10-09 01:43:00 +03:00
Azat Khuzhin
5d6da023bb
clickhouse-test: fix hung check under stress tests
...
https://clickhouse-test-reports.s3.yandex.net/29856/e2d6698244d43979b3fe2478dfdcd8dc3a91a0fd/stress_test_(address).html#fail1
2021-10-09 01:42:08 +03:00
Azat Khuzhin
e2d6698244
clickhouse-test: do not use persistent connection for simplicity (due to threads)
2021-10-08 00:09:37 +03:00
Azat Khuzhin
df129d7efc
Rewrite clickhouse-test to use python clickhouse_driver
...
Pros:
- Using native protocol over executing binaries is always better
- `clickhouse-client` in debug build takes almost a second to execute simple `SELECT 1`
and `clickhouse-test` requires ~5 queries at start (determine some
flags, zk, alive, create database)
Notes:
- `FORMAT Vertical` had been replaced with printing of `pandas.DataFrame`
And after this patch tiny tests work with the speed of the test, and
does not requires +-5 seconds of bootstrapping.
2021-10-08 00:09:37 +03:00
Azat Khuzhin
9dd0fca1ed
Suppress some existed warnings in clickhouse-test (will be fixed separately)
2021-10-08 00:09:37 +03:00