【标题】(请简要描述下实现的内容)
修复在启动阶段内存不足时,elog打印函数内部core的问题
【实现内容】:
实现elog打印函数在异常时直接退出的功能
【根因分析】:
在knl_session_init之前的内存不足时,u_sess并未初始化,而elog内部有未判空直接使用的地方,引起空指针异常。
【实现方案】:
elog应该在knl_session_init初始化后才能正常使用;在u_sess未正确初始化前,直接退出应用程序即可。
【关联需求或issue】:
#I6GMBX:【异常测试】当GaussDB启动申请不到内存时,打印ereport(ERROR时会导致coredump的问题
【开发自验报告】:

  1. 请附上自验结果(内容或者截图):
    通用在特定的时间让DynamicHash中的内存申请返回空,以触发ereport接口调用,可以看到程序按照预期按错误码3退出。
    输入图片说明
  2. 是否可以添加fastcheck测试用例,如是,请补充fastcheck用例
  3. 是否涉及资料修改,如是,在docs仓库补充资料
  4. 是否考虑升级场景(系统表修改、日志持久化以及修改执行态数据格式)
    不涉及
  5. 是否考虑在线扩容等扩展场景
    不涉及
  6. 是否考虑异常场景/并发场景/前向兼容/性能场景
    不涉及
  7. 是否对其他模块产生影响

    【其他说明】: