Commit Graph
59 Commits
Author SHA1 Message Date
Alexey Milovidov 89c8d136c3 Fix error 2022-05-23 07:20:36 +02:00
Alexey Milovidov cc985d9b92 Fix error 2022-05-23 02:30:33 +02:00
Alexey Milovidov 2f93f11144 Maybe better 2022-05-23 02:03:13 +02:00
Alexey Milovidov 03e3be7b1a Maybe fix error 2022-05-20 02:38:50 +02:00
Alexey Milovidov d0d0807a10 Merge branch 'master' into allow-setuid-inside-clickhouse 2022-05-20 02:37:15 +02:00
Robert Schulze e3cfec5b09 Merge remote-tracking branch 'origin/master' into clangtidies 2022-05-16 10:12:50 +02:00
Alexey MilovidovandGitHub 7ce409da52 Merge branch 'master' into allow-setuid-inside-clickhouse 2022-05-15 04:33:59 +03:00
Azat Khuzhin 40f3dbb448 Ignore harmful env variables in clickhouse binaries (reexec w/o them)
Some environments may really require LD_LIBRARY_PATH (and some other
variables), so rejecting running clickhouse binaries in such envs is a
backward incompatible change.

So instead of rejecting, let's ignore those env variables, i.e. reexec
binaries without them.

Also note, that there is no messages in stderr in case of some of
variables set anymore, since this message may break some scripts.

Refs: #36340
Follow-up for: #36342
2022-05-14 12:08:48 +03:00
Alexey Milovidov 7536e0cd25 Fix MSan 2022-05-11 03:16:10 +02:00
Robert Schulze 1b81bb49b4 Enable clang-tidy modernize-deprecated-headers & hicpp-deprecated-headers
Official docs:

  Some headers from C library were deprecated in C++ and are no longer
  welcome in C++ codebases. Some have no effect in C++. For more details
  refer to the C++ 14 Standard [depr.c.headers] section. This check
  replaces C standard library headers with their C++ alternatives and
  removes redundant ones.
2022-05-09 08:23:33 +02:00
Alexey MilovidovandGitHub c95f22e64d Merge branch 'master' into allow-setuid-inside-clickhouse 2022-05-07 00:21:47 +03:00
alesapinandGitHub 7380a71333 Merge pull request #31833 from ClickHouse/musl-check
Build clickhouse-keeper with Musl
2022-04-22 22:41:16 +02:00
alesapin 44e5c55d19 Fix build 2022-04-19 17:44:28 +02:00
Alexey Milovidovandalesapin 23968142c1 Update main.cpp 2022-04-19 17:44:27 +02:00
Alexey Milovidovandalesapin d6d0e82741 Update main.cpp 2022-04-19 17:44:26 +02:00
Alexey Milovidovandalesapin 86ae0c9763 Warn and exit if harmful environment variables are set 2022-04-19 17:44:26 +02:00
Azat Khuzhin 828d23c933 Add more harmful variables for OSX
Signed-off-by: Azat Khuzhin <[email protected]>
2022-04-18 23:40:09 +03:00
Alexey MilovidovandGitHub 88f98443bd Merge branch 'master' into allow-setuid-inside-clickhouse 2022-04-18 07:06:02 +03:00
Alexey MilovidovandGitHub 0fc61ea445 Update main.cpp 2022-04-18 03:16:30 +03:00
Alexey MilovidovandGitHub e43bdf7580 Update main.cpp 2022-04-17 17:21:20 +03:00
Alexey Milovidov b7fe203fe1 Warn and exit if harmful environment variables are set 2022-04-17 01:56:58 +02:00
Alexey Milovidov 2b67d99193 Allow to drop privileges at startup 2022-04-17 00:26:53 +02:00
Alexey Milovidov 803edc3879 Allow to drop privileges at startup 2022-04-17 00:25:55 +02:00
Alexey Milovidov b7e5a81215 Allow to drop privileges at startup 2022-04-17 00:24:47 +02:00
Alexey Milovidov 83de3bb1de Allow to drop privileges at startup 2022-04-17 00:19:36 +02:00
Alexey Milovidov e704e8d5d7 Allow to drop privileges at startup 2022-04-17 00:09:20 +02:00
Azat Khuzhin 57c027be0e Remove arcadia build support 2021-12-11 21:25:23 +03:00
Nikita Mikhaylov fb24e7181f Better 2021-12-06 18:27:06 +00:00
Nikita Mikhaylov fa22fdc097 Merge branch 'master' of github.com:ClickHouse/ClickHouse into get_fuzz_data 2021-12-06 14:30:49 +00:00
Denis Glazachev e41ed7cc6e Fix GCC compilation in macOS 2021-11-26 02:03:04 +03:00
Alexey Boykov c5cb4e071c Creating only one binary, check compatibility 2021-10-07 21:01:36 +03:00
Alexey Milovidov fe6b7c77c7 Rename "common" to "base" 2021-10-02 10:13:14 +03:00
kssenii f27f519aa2 Fix build and add example 2021-08-28 20:35:51 +00:00
kssenii 073d7fdd5e Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into disk-over-web-server 2021-08-06 19:42:29 +00:00
Alexey Milovidov 2d8475a96a Help with #26424 2021-07-30 12:35:23 +03:00
alesapin 743600a359 Merge branch 'update_buffer_size_in_nuraft' into zookeeper_snapshots 2021-06-21 13:46:22 +03:00
kssenii f33387837e Merge branch 'master' of https://github.com/ClickHouse/ClickHouse into disk-over-web-server 2021-06-18 14:27:48 +00:00
kssenii 7cc6588f96 Tool to put files on server 2021-06-18 14:11:32 +00:00
alesapin 1a6abb4db4 Better 2021-06-17 19:32:50 +03:00
Maksim KitaandMaksim Kita 67e9b85951 Merge ext into common 2021-06-16 23:28:41 +03:00
Azat Khuzhin 8ec874dc33 Add writeRetry helper 2021-06-07 09:38:15 +03:00
alesapin ffb4e1af8f Some copy-paste 2021-05-12 13:39:07 +03:00
Alexey Milovidov 6f481d7512 Add integrity checks for ClickHouse binary 2021-01-07 05:56:57 +03:00
Azat Khuzhin e379b80d45 MADV_DONTNEED check in runtime for qemu (via patching jemalloc)
qemu does not support MADV_DONTNEED, and by not support it simply ignore
it (i.e. return 0 -- no error).

This issue has been "fixed" in #15590, however it just
terminates the process, and completely breaks clickhouse under qemu
(see also #15174).

But there is no need in such strong protection, we can stop using
madvise in jemalloc if MADV_DONTNEED does not work properly.
And this is what #18169 was tried to do (by override madvise), however
this will break sanitizers, at least TSAN and UBSAN.
The problem there is that sanitizers initialization code uses madvise
(and there is no way to turn this off with TSAN_OPTIONS) and overwritten
madvise function will have sanitizers traits (__tsan_func_entry), while
TSAN is not ready for this, and eventually it SIGSEGV.
Interesting thing is that in the recent clang-12, madvise was replaced
with direct syscall [1].

  [1]: https://github.com/llvm/llvm-project/commit/9f8c4039f202c4f8e8b820bce6f05039d53ea005

But it is better to make clickhouse compatible with clang < 12 too, so
instead of override madvise completely, the runtime check was moved into
the jemalloc code [2].

  [2]: https://github.com/ClickHouse-Extras/jemalloc/pull/1
2020-12-19 15:34:12 +03:00
alexey-milovidovandGitHub 674d8d44b9 Update main.cpp 2020-10-05 09:28:52 +03:00
alexey-milovidovandGitHub 8ff92a16ab Update main.cpp 2020-10-05 08:01:08 +03:00
Azat Khuzhin 9e3ff349eb Ensure that there will be no strlen() calls for SSE checks 2020-10-04 17:37:31 +03:00
Azat Khuzhin 2a6874e065 Run MADV_DONTNEED after SSE check to fix 01103_check_cpu_instructions_at_startup 2020-10-04 11:20:29 +03:00
Azat Khuzhin caf3156fb7 Check MADV_DONTNEED (for jemalloc), maybe broken under qemu
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
2020-10-04 11:20:29 +03:00
Azat Khuzhin 9c09050e7c Cleanup server instructions startup checking code 2020-10-04 01:47:44 +03:00