在上一篇文章中我们介绍了如何将共享库与binary文件打包来解决clickhouse运行时GLIBC不兼容的问题。但是经过我们的实践发现这种方案其实是有副作用的,而这种副作用在生产环境是致命的,会造成clickhouse进程crash。所以本文推翻了上一篇文章中的方案,使用clickhouse自身的机制彻底解决了GLIBC不兼容问题。
共享库与binary文件打包的副作用
test_getaddrinfo.cpp
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <string.h>
#include <stdio.h>
int main()
{
struct addrinfo hints;
struct addrinfo *res;
memset(&hints, 0, sizeof hints);
hints.ai_flags = 1024;
hints.ai_family = 0;
hints.ai_socktype = 1;
hints.ai_protoc