Skip to content

Commit 35cce03

Browse files
committedSep 17, 2022
Remove dlopen
1 parent 31ebd34 commit 35cce03

21 files changed

+7
-41
lines changed
 

‎base/base/phdr_cache.h

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* As a drawback, this only works if no dynamic object unloading happens after this point.
99
* This function is thread-safe. You should call it to update cache after loading new shared libraries.
1010
* Otherwise exception handling from dlopened libraries won't work (will call std::terminate immediately).
11+
* NOTE: dlopen is forbidden in our code.
1112
*
1213
* NOTE: It is disabled with Thread Sanitizer because TSan can only use original "dl_iterate_phdr" function.
1314
*/
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
extern int mainEntryClickHouseBenchmark(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseBenchmark(argc_, argv_); }

‎programs/client/clickhouse-client.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseClient(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseClient(argc_, argv_); }
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseCompressor(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseCompressor(argc_, argv_); }

‎programs/copier/clickhouse-copier.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseClusterCopier(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseClusterCopier(argc_, argv_); }

‎programs/disks/clickhouse-disks.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseDisks(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseDisks(argc_, argv_); }
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseExtractFromConfig(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseExtractFromConfig(argc_, argv_); }

‎programs/format/clickhouse-format.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseFormat(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseFormat(argc_, argv_); }
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseGitImport(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseGitImport(argc_, argv_); }
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseKeeperConverter(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseKeeperConverter(argc_, argv_); }

‎programs/library-bridge/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ set (CLICKHOUSE_LIBRARY_BRIDGE_SOURCES
99
LibraryBridge.cpp
1010
LibraryBridgeHandlerFactory.cpp
1111
LibraryBridgeHandlers.cpp
12+
SharedLibrary.cpp
1213
library-bridge.cpp
1314
)
1415

‎programs/library-bridge/CatBoostLibraryHandler.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,13 @@
77
#include <Columns/ColumnVector.h>
88
#include <Columns/ColumnsNumber.h>
99
#include <Columns/IColumn.h>
10-
#include <Common/SharedLibrary.h>
1110
#include <base/defines.h>
11+
#include "SharedLibrary.h"
1212

1313
#include <chrono>
1414
#include <mutex>
1515

16+
1617
namespace DB
1718
{
1819

‎programs/library-bridge/ExternalDictionaryLibraryHandler.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#pragma once
22

3-
#include <Common/SharedLibrary.h>
3+
#include "SharedLibrary.h"
44
#include <Common/logger_useful.h>
55
#include "ExternalDictionaryLibraryUtils.h"
66

‎src/Common/SharedLibrary.cpp ‎programs/library-bridge/SharedLibrary.cpp

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#include "SharedLibrary.h"
22
#include <string>
3-
#include <boost/core/noncopyable.hpp>
43
#include <base/phdr_cache.h>
5-
#include "Exception.h"
4+
#include <Common/Exception.h>
65

76

87
namespace DB
File renamed without changes.

‎programs/local/clickhouse-local.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseLocal(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseLocal(argc_, argv_); }

‎programs/main.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -422,6 +422,7 @@ int main(int argc_, char ** argv_)
422422
/// PHDR cache is required for query profiler to work reliably
423423
/// It also speed up exception handling, but exceptions from dynamically loaded libraries (dlopen)
424424
/// will work only after additional call of this function.
425+
/// Note: we forbid dlopen in our code.
425426
updatePHDRCache();
426427

427428
#ifndef DISABLE_HARMFUL_ENV_VAR_CHECK
Original file line numberDiff line numberDiff line change
@@ -1,3 +1 @@
11
int mainEntryClickHouseObfuscator(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseObfuscator(argc_, argv_); }
3-

‎programs/server/clickhouse-server.cpp

-23
Original file line numberDiff line numberDiff line change
@@ -1,24 +1 @@
1-
#include <new>
2-
3-
#include <base/phdr_cache.h>
4-
5-
61
int mainEntryClickHouseServer(int argc, char ** argv);
7-
8-
/**
9-
* This is the entry-point for the split build server. The initialization
10-
* is copied from single-binary entry point in main.cpp.
11-
*/
12-
int main(int argc_, char ** argv_)
13-
{
14-
/// Reset new handler to default (that throws std::bad_alloc)
15-
/// It is needed because LLVM library clobbers it.
16-
std::set_new_handler(nullptr);
17-
18-
/// PHDR cache is required for query profiler to work reliably
19-
/// It also speed up exception handling, but exceptions from dynamically loaded libraries (dlopen)
20-
/// will work only after additional call of this function.
21-
updatePHDRCache();
22-
23-
return mainEntryClickHouseServer(argc_, argv_);
24-
}
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseStaticFilesDiskUploader(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseStaticFilesDiskUploader(argc_, argv_); }

‎programs/su/clickhouse-su.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
int mainEntryClickHouseSU(int argc, char ** argv);
2-
int main(int argc_, char ** argv_) { return mainEntryClickHouseSU(argc_, argv_); }

0 commit comments

Comments
 (0)
Please sign in to comment.