ssh配置踩坑
昨晚又整ssh配置整了半天,记不清楚是第几次踩坑了,还是需要整理一下问题的处理思路
docker配置
我是在docker上操作的,首先在https://hub.docker.com/search?q=gcc5&type=image找到想要的镜像,然后拉镜像运行(https://github.com/dongyubin/DockerHub看下可用的代理)
1 | ~ docker pull proxy.vvvv.ee/conanio/gcc5 |
随后登陆安装ssh基础依赖
昨晚又整ssh配置整了半天,记不清楚是第几次踩坑了,还是需要整理一下问题的处理思路
我是在docker上操作的,首先在https://hub.docker.com/search?q=gcc5&type=image找到想要的镜像,然后拉镜像运行(https://github.com/dongyubin/DockerHub看下可用的代理)
1 | ~ docker pull proxy.vvvv.ee/conanio/gcc5 |
随后登陆安装ssh基础依赖
最近框架接json schema的需求,因此对其进行了调研
star最多的两个库https://github.com/pboettch/json-schema-validator和https://github.com/danielaparker/jsoncons(已完成)
json-schema-validator | jsoncons | |
---|---|---|
规范支持 | Draft 7 | Draft 7,Draft 2019-09,Draft 2020-12 |
字符串格式检查器 | 没有预设,都要自己实现 | 支持date,email,tcp等常见的数十种 |
外部依赖 | C++11起,依赖github.com/nlohmann/json |
C++20起 |
更新频率 | 253 commits,7 months ago | 12335 commits,yesterday |
总体而言,jsoncons会更好(规范支持全面,功能多,更新频率高),但是接入难度更高(依赖C++20,框架要兼容C++11的钉子户用户)
json-schema-validator基本功能都有,凑活够用,所以还是先接入json-schema-validator,对其进行源码分析
当前的一致性哈希存在四个bug,分别进行分析
以这个版本https://git.huya.com/server_arch/taf/-/blob/924950284557f183bd025ed758dc2e878ae36938/src/libservant/EndpointManager.cpp#L2448为例
我新增了部分日志,总体流程的关键代码在getConHashProxyForNormal
他的输入是hashCode(也就是prx->taf_consistent_hash(hashCode)
传入的),输出是本次负载均衡选出的节点指针
1 | AdapterProxyPtr EndpointManager::getConHashProxyForNormal(int64_t hashCode) |
在Serverless平台的研发过程中,意外在python的import问题上踩坑了
大概还是对python的包管理基本原理不够了解,首先对python的包管理机制做一个总结,然后分析这一次踩坑的问题
Python 中 import 有四种常见语法形式:
本文整理一下遇到的编译问题,最常见的就是编译时缺符号,重定义
但是一般来说cmake生成的make语句会隐藏实际的gcc语句,如果手写的makefile,也有可能是目标规则没配置正确
查看实际的gcc语句
特殊命令
VERBOSE = 1或者V=1,主要看makefile怎么写的,一般都能用
通用的
make -n
实际上是只输出make试图运行的指令
查看目标规则情况
make -d
将打印 Make 为每个目标尝试的所有规则(包括内置规则)
最近业务报障,使用taf框架编译成动态库,从3.4.5.8-notrace版本换成3.4.6.0-notcmalloc版本后
dlopen打开动态库报错cannot allocate memory in static TLS block,业务认为是不带tcmalloc导致的
我的最终结论是taf框架的动态库编译强制开启了静态TLS,这个线程私有变量区是存在上限的,trace代码有超大的线程私有变量,导致dlopen失败
总结了一下何时会开启静态TLS,并且如何解决
截止25年1月12日,打算使用dlmopen来装载serverless平台第三方动态库的计划,在挣扎了2周后正式宣布破产
总的来说dlmopen虽然已经有几十年历史了,但是在当前还是非常不成熟的,有很多细节问题没有解决
想用上dlmopen,需要深入理解glibc的实现原理,和patches的可能bug斗智斗勇,这个投入产出比很低
serverless平台的设计原理属于机密,略过不提