内容纲要
概要说明
近期发现如下txsql问题,曾在多个项目中出现:
问题现象:
每隔几秒/usr/bin/txsql/tools会生成一个core.xxx的coredump文件。
具体原因比较复杂, 可以参考 http://172.16.1.168:8090/display/TRAN/TxSQL+Todo+List+2019.6
如果放任增长的coredump文件不管可能会造成 /var/lib/docker 目录被coredump文件塞满。最终造成txsql甚至整个集群服务的崩溃。
详细说明
该问题的影响版本涉及到当前发布的所有使用txsql的产品版本。如:
TDH 7.0.1及之前版本
TDH 6.2.2及之前版本
TDH 6.0.2及之前版本
TDH 5.2.4及之前版本
TDH 5.1.6及之前版本
ArgoDB 2.1.3及之前版本
另外部分独立发布的组件:Guardian,Aquila,Manager HA都会使用到txsql,具体版本信息会陆续补充到AIOps文章中。
解决方案
为避免生产事故,针对以上集群先提供一种workaround方案 。
替换txsql启动文件boot.sh
操作步骤参考:
1、docker create transwarp/txsql:transwarp-6.0.2-final
2、docker cp 3642ce5f:/usr/bin/boot.sh boot.sh
3、在 boot.sh 文件中加上 ulimit -c 0
#!/bin/bash
ulimit -c 0
function echoWithTimestamp()
{ local ts=$(date “+%Y%m%d %H:%M:%S”) echo “$ts” “$1” }
4、将 boot.sh 替换镜像的 /usr/bin/boot.sh, 注意可执行权限问题
5、另外需要改对应txsql的metainfo, 在readinessProbe上面加上 ulimit -c 0