博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简直了!10年难得一见的Tuxedo服务异常
阅读量:2790 次
发布时间:2019-05-13

本文共 1097 字,大约阅读时间需要 3 分钟。

"tuxedo服务在电信金融系统中广泛存在,但在马爸爸互联网飓风的席娟之下,曾经的辉煌已然不在。但作为重量级遗留资产,仍然在困扰着运维的同志们。莫名的异常,经常被搞得彻夜难眠!"

异常背景

最近5G需求上线,版本更新了个cpp,就加了一行代码,收到告警:生产环境某个tuxedo service挂死。当然此cpp在测试环境运行良好。版本回退服务恢复正常。

ulog报错日志:ERROR: Service TSVC not available in group GRP2

原因核查

1.起初摸不着头脑,后来找到异常请求在测试环境模拟了一把,服务竟然挂了但是查看日志,和修改的地方也不挨着,差了几十行呢

2. 没办法,在异常的地方加一行日志输出cout,看看是不是变量值有问题再测测试,竟然抛出异常了,但是服务没有挂死。这才应该是正常的节奏啊!
3. 那就更新生产环境吧,某个晚上我们开始更新版本了。
4. 跑了3-5天,服务又在同一cpp的另一个地方挂掉了
5. 这次是没辙了,三司会审吧,运维和开发,管理的领导都出动了
6. 方案一:把生产的so同步到测试环境,看看是否环境不同,导致编译出的动态库不一样,结果测试环境正常运行。此方案排除
7. 方案二:把同目录的所有cpp重新编译一把,结果还是服务挂死
8. 方案三:有人说可能cpp中有特殊字符,替换下文件格式。
9. 此处有个冷知识
windows的notepad只能区分unicode和ANSI,但实际上从服务器上拿下来的文本文件,可能是GB2312,utf-8,还有bom和无bom的区别。notepad++可以一目了然的看到文本文件的操作系统风格,字符集。
通过对比服务器上的其他cpp,发现其他cpp都是Unix style的,和Windows style的主要区别是换行符。字符集看起来都是gb2312。
在Unix服务器上Windows换行符会自动转换为^M,意为回车加换行\r\n,Unix的换行符只有\r
10. 现在只能试试了,通过ue,把cpp从Windows style转换为Unix style。文件确实变小了些。
11. 又是某个晚上,我们更新了生产版本,服务竟然好了。真是难得一见啊!

感慨世事弄人,来人躲开,最好无需来人搞tuxedo了,太重!

回溯版本,发现在历史的某个版本里,该cpp悄悄的有Unix格式变为了Windows格式,而且此后一年也有过更新,竟然没有报错。很不幸,我踩了这个雷,把它触发了。有点像武汉遇上新冠病毒的场景。病毒依然存在,只是和被我们逮住了!

这种问题简直了!希望相关人少走弯路!

转载地址:http://bolmd.baihongyu.com/

你可能感兴趣的文章
《程序员的数学思维修炼》看书笔记。
查看>>
英语看书笔记1
查看>>
《图解网络硬件》学习笔记。
查看>>
《网络是怎样连接的》看书笔记。
查看>>
python学习笔记。
查看>>
python学习笔记2
查看>>
HCNA
查看>>
python学习笔记pdf版
查看>>
linux操作系统基础学习笔记
查看>>
python基础-day03
查看>>
python基础-day06
查看>>
python基础day40
查看>>
前端基础-day46
查看>>
python基础-day56
查看>>
前端基础-day57
查看>>
数据库基础-day61
查看>>
面试题24:二叉搜索树的后序遍历序列
查看>>
面试题9:斐波拉契数列及其变种
查看>>
面试题10:二进制中1的个数
查看>>
面试题11:数值的整数次方
查看>>