欢迎来到逆袭之路的博客

三从境界:昨夜西风凋碧树,独上高楼,望尽天涯路。 衣带渐宽终不悔,为伊消得人憔悴。 众里寻他千百度,蓦然回首,那人却在灯火阑珊处。人生

因我而起的生产事故

  首先,祝大家新年快乐!应该陆陆续续开始踏上了回家的征程吧!

  生产事故

   产品上线一段时间之后,技术支持反馈客户现场一个进程总是挂掉或者不干活!最开始不紧不慢的查找问题,后来老大很生气说:生产事故很严重,你们居然不重视!成立了一个应急小组,专门解决此问题,其中包括我!

   事故原因

    经过2、3天没日没夜的艰苦奋斗,终于找到进程挂掉的原因,问题因我而起。大约去年8月,做一个项目,与大数据对接,把数据推给它,然在加上了推送部分的代码,最开始那个模块是没有日志的,然后给加上了日志打印,当时也没考虑那么多,多线程环境,那个函数是线程不安全的,然后高并发环境,会造成进程挂掉!

   问题分析    

   高并发环境下,主要涉及两方面问题:

1、一个线程关闭了一个文件,另一个线程以为文件还是打开的,继续往文件里写数据,这样会导致进程挂掉(函数对线程是否安全!)

2、多线程环境共享全局变量,会造成数据混乱;alarm函数产生的SIGALRM信号,无法估算时间,此处理不严谨(最好不要在线程中用信号)。

  解决问题

   解决方法

  1. 在进程最开始打印日志,或不打印日志
  2. 移动代码位置,在正确位置修改代码

   加班到11点,把这部分代码重新修改了!

   之后,老大找我谈话:一个优秀程序员必须经历各种问题和bug,才能成长;还有以后修改问题,要谨慎!并没有很严厉的批评,但心里还是很难受!有人说过:如果跟着一个好老大,就好好地干几年!

  总结

   从小就不怎么犯错,犯过一个错,会很内疚!可能这个问题会伴随整个职业生涯,督促自己成长!

   1、谨慎!不管对公司或其它怎么样?但一定要对自己写的每一行代码负责;要多去思考为啥之前没有日志?所以要谨慎!公司并没有奖惩措施,努力工作也没什么奖励,犯错也不会狠狠批评或扣工资之类的,不知道这样是好是坏?

   2、谦虚学习!还有很多东西要学习!一定要谦虚学习!之前犯错可能会选择逃避,但这次很勇敢发邮件承认错误说明原因!

    最后,希望对大家能有帮助,大家加油!

 

posted on   逆袭之路666  阅读(1506)  评论(8编辑  收藏  举报

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

目录导航