欢迎来到逆袭之路的博客

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

因我而起的生产事故

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

  生产事故

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

   事故原因

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

   问题分析    

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

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

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

  解决问题

   解决方法

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

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

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

  总结

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

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

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

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

 

posted on 2019-01-23 16:01  逆袭之路666  阅读(1490)  评论(8编辑  收藏  举报

导航