因我而起的生产事故

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

  生产事故

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

   事故缘由

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

   问题分析    

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

一、一个线程关闭了一个文件,另外一个线程觉得文件仍是打开的,继续往文件里写数据,这样会致使进程挂掉(函数对线程是否安全!)函数

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

  解决问题

   解决方法

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

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

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

  总结

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

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

   二、谦虚学习!还有不少东西要学习!必定要谦虚学习!以前犯错可能会选择逃避,但此次很勇敢发邮件认可错误说明缘由!

    最后,但愿对你们能有帮助,你们加油!