zoukankan      html  css  js  c++  java
  • 线上服务segment fault异常现象之一

            今天运维在线上部署一套较成熟的服务于车载终端导航的http服务后,测试验证时,服务每次接收请求时进程居然闪退,着实惊讶了一把。记录感叹一下,线上问题无大小,但是往往由于一些细微的细节造成的。

    1. 现象

        fastcgi load的http服务,在每次有请求打过来时,都会出现segment fault异常退出,dmesg查看如下:

    [2413269.761926] initSession[22470]: segfault at 67581fe9 ip 00000000080958cf sp 00000000ffee4360 error 6 in initSession[8048000+64000]
    [2413329.775804] initSession[22551]: segfault at 66ca8d09 ip 00000000080958cf sp 00000000ffc78080 error 6 in initSession[8048000+64000]
    [2413389.790086] initSession[22638]: segfault at 664d3d49 ip 00000000080958cf sp 00000000ffd510c0 error 6 in initSession[8048000+64000]
    [2413449.803824] initSession[22735]: segfault at 6665d4b9 ip 00000000080958cf sp 00000000ff85d830 error 6 in initSession[8048000+64000]
    [2413509.817405] initSession[22823]: segfault at 66a51d49 ip 00000000080958cf sp 00000000ff8ca0c0 error 6 in initSession[8048000+64000]
    [2413569.831553] initSession[22907]: segfault at 6808eb09 ip 00000000080958cf sp 00000000ffbf9e80 error 6 in initSession[8048000+64000]
    [2413629.844877] initSession[22991]: segfault at 676ac3d9 ip 00000000080958cf sp 00000000ffb14750 error 6 in initSession[8048000+64000]
    [2413689.858531] initSession[23104]: segfault at 6789f479 ip 00000000080958cf sp 00000000ffbf97f0 error 6 in initSession[8048000+64000]
     

    2. 原因

           由于这个服务又一直处于维护状态,研发也相对生疏了,调查了老久,推测可能由于运维误操作或部署造成的。最后调查core文件,发现应用服务每次有请求时,都会调用了年月日时分秒等参数来记录日志,而每次返回NULL值进行atol等操作,程序异常退出,汗,程序容错健壮性有待加强。而在默认的 tengine/conf/fastcgi_params文件中又缺省这些参数配置,所以应用每次取不到这些日期参数。


    3 解决方法
           在fastcgi_params文件里,追加了如下参数:  

    fastcgi_param YEAR $year;
    fastcgi_param MONTH $month;
    fastcgi_param DAY $day;
    fastcgi_param HOUR $hour;
    fastcgi_param MINUTE $minute;
    fastcgi_param SECOND $second; 
    

      

  • 相关阅读:
    WinForm控件常用设置(转)
    EF Core性能优化(一)
    如何更改已经释放的(released)传输请求(TR)的描述
    在新窗口调用Tcode[ABAP4_CALL_TRANSACTION]
    [代码]如何取得表/结构的列名字(cl_abap_structdescr)
    [代码]创建.ZIP压缩文件[CL_ABAP_ZIP]
    如何在表维护视图(maintenance view)上添加自定义按钮(SM30)
    [代码]基于动态内表的ALV
    物料单位转换函数[MD_CONVERT_MATERIAL_UNIT]
    拆分全路径名得到路径+文件名[STPU1_EXTRACT_FILENAME]
  • 原文地址:https://www.cnblogs.com/gisorange/p/4567330.html
Copyright © 2011-2022 走看看