项目

一般

简介

需求CR #2133

基站的gnbagent成为僵尸进程后需要baseserviers提供兜底解决方案

牛 兵桃大约一年 之前添加. 更新于 12 个月 之前.

状态:
已关闭
优先级:
一般
指派给:
-
类别:
-
开始日期:
2024-09-06
计划完成日期:
% 完成:

0%

预期时间:
问题归属:
YZMM
发现问题版本:
目标解决问题版本:
Rel_2.1.15P
CPU类型:

描述

基站的gnbagent成为僵尸进程后。gnbagent无法自己启动,只有reboot基站可以恢复,需要baseserviers提供兜底解决方案;


文件

实测截图.jpg (117 KB) 实测截图.jpg 孙 浩, 2024-09-21 09:12
baseService (16.1 MB) baseService 孙 浩, 2024-09-21 09:12

历史记录

#1

杨 杨乐 更新于 大约一年 之前

  • 状态新建 变更为 进行中

进展:编码完成,是否合入,待评定

#2

杨 杨乐 更新于 大约一年 之前

  • 状态进行中 变更为 转测试
  • 指派给杨 杨乐 变更为 孙 浩

【问题原因】
该问题为需求单,经测试之前发现有环境的进程gnb_agent变成僵尸进程,不能被杀掉;导致所有后续动作都失效了

【修改方案】
BaseService做了托底方案,当gnb_agent为僵尸进程(Z状态),或者不可被杀的D状态后,超过30s,然后reboot重启操作系统

【回归方法和注意事项】
构造gnb_agent为僵尸,然后执行,超过30s是否会重启

#3

孙 浩 更新于 大约一年 之前

基于2.1.15P_Pre1T4版本,单独替换基站的baseService文件,构造gnb_agent成为僵尸进程后30秒后,基站重启,然后再次启动三层终端可接入可灌包,符合设计方案。
1、构造gnb_agent为僵尸进程的方法:
1> 在shell窗口1,执行./gnb_agent &  (PS:这会启动 gnb_agent 进程并让它在后台运行,)
2> 在shell窗口2,执行ps -ef | grep gnb_agent;会输入如下的信息:
root 52806 42231 19 19:34 pts/8 00:00:00 ./gnb_agent
PID为52806
PPID为42231
3> 在shell窗口2,执行kill -SIGSTOP PPID, (PS:通过 SIGSTOP 暂停父进程,防止它调用 wait() 收集子进程的状态。)
4> 在shell窗口2,执行kill -9 PID
5> 此时gnb_agent就成为僵尸进程,可以通过命令查看:ps aux | grep Z
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND;结果类似如下:
root 53397 2.4 0.0 0 0 pts/8 Z 19:34 0:01 [gnb_agent] <defunct>
2、实测截图如下:

#4

杨 杨乐 更新于 大约一年 之前

  • 指派给杨 杨乐 变更为 孙 浩

【问题原因】
该问题为需求单
【修改方案】
判断gnb_agent是否为僵尸进程,当处于僵尸进程超过30s,则reboot重启基站

【回归方法和注意事项】
方法等同于测试的复现方法

sha1:c01b0b2837ad18958b4db3eb9de8ffc7881bda4c

#5

孙 浩 更新于 12 个月 之前

  • 状态已解决 变更为 已关闭
  • 指派给 已删除 (孙 浩)

2.1.15ppre1T5版本问题合入,问题可关闭。

#6

李 明新 更新于 19 天 之前

  • 关联到 错误 #4234: [3.0产品测试] 军特6.1G整机测试,小区启动失败 已添加
#7

李 明新 更新于 19 天 之前

  • 关联到 已删除 (错误 #4234: [3.0产品测试] 军特6.1G整机测试,小区启动失败)

导出 Atom PDF