mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 07:01:59 +00:00
Add a trap
This commit is contained in:
parent
515972f459
commit
15e5fc96a1
@ -14,6 +14,7 @@
|
||||
#include <cstdlib>
|
||||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
#include <dlfcn.h>
|
||||
|
||||
|
||||
namespace DB
|
||||
@ -25,6 +26,7 @@ namespace ErrorCodes
|
||||
extern const int ILLEGAL_TYPE_OF_ARGUMENT;
|
||||
extern const int BAD_ARGUMENTS;
|
||||
extern const int CANNOT_ALLOCATE_MEMORY;
|
||||
extern const int CANNOT_DLOPEN;
|
||||
}
|
||||
|
||||
|
||||
@ -136,7 +138,7 @@ public:
|
||||
}
|
||||
else if (mode == "access context")
|
||||
{
|
||||
(void)context.getCurrentQueryId();
|
||||
(void)context->getCurrentQueryId();
|
||||
}
|
||||
else if (mode == "stack overflow")
|
||||
{
|
||||
@ -166,6 +168,12 @@ public:
|
||||
maps.push_back(map);
|
||||
}
|
||||
}
|
||||
else if (mode == "dlopen")
|
||||
{
|
||||
void * handle = dlopen("libc.so.6", RTLD_NOW);
|
||||
if (!handle)
|
||||
throw Exception(ErrorCodes::CANNOT_DLOPEN, "Cannot dlopen: ({})", dlerror()); // NOLINT(concurrency-mt-unsafe) // MT-Safe on Linux, see man dlerror
|
||||
}
|
||||
else
|
||||
throw Exception("Unknown trap mode", ErrorCodes::BAD_ARGUMENTS);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user