当前位置: 首页 > article >正文

【银河麒麟高级服务器操作系统】服务器异常重启故障分析及处理建议

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

文档中心:https://document.kylinos.cn


服务器环境以及配置

系统环境

物理机/虚拟机/云/容器

物理机

网络环境

外网/私有网络/无网络

私有网络

硬件环境

处理器:

Hygon C86 7390 32-core Processor

内存:

512 GiB

机器型号

New H3C Technologies Co., Ltd. UniServer R4930 G5 H3 PKG/62DB32

整机类型/架构:

x86

BIOS版本:

HXYH031027-U01 08/03/2023

软件环境

具体操作系统版本

银河麒麟高级服务器操作系统

Kylin Linux Advanced Server release V10 (Sword)

内核版本

4.19.90-25.37.v2101.ky10.x86_64

第三方模块

scap(OE)

现象描述

系统异常重启

现象分析

分析vmcore-dmesg.txt,"invalid opcode: 0000 [#1] SMP NOPTI",表明CPU在执行某条指令时遇到了无效的操作码(opcode)而触发异常,导致系统崩溃。invalid opcode表明CPU执行了无法识别的指令,通常这发生在软件问题或硬件失效上。

RIP(指令指针寄存器)显示异常发生在函数"bpf_prog_9500684e63fa4fd7+0x129d/0x3000"中的0x129d偏移处。结合Code段的反汇编代码"<4c> 09 fb 48 c1",可以看出正是这条指令出错。说明invalid opcode(无效的操作码)来自与函数bpf_prog_9500684e63fa4fd7,该函数来自于自定义bpf程序。

[18594507.173491] invalid opcode: 0000 [#1] SMP NOPTI
[18594507.174449] CPU: 77 PID: 718772 Comm: java Kdump: loaded Tainted: G           OE     4.19.90-25.37.v2101.ky10.x86_64 #1
[18594507.175720] Hardware name: New H3C Technologies Co., Ltd. UniServer R4930 G5 H3 PKG/62DB32, BIOS HXYH031027-U01 08/03/2023
[18594507.176994] RIP: 0010:bpf_prog_9500684e63fa4fd7+0x129d/0x3000
[18594507.177646] Code: 16 4c 09 f6 48 c1 e6 10 48 09 d6 4d 0f b6 75 19 49 c1 e6 08 49 0f b6 55 18 49 09 d6 4d 0f b6 7d 1a 49 0f b6 5d 1b 48 c1 e3 08 <4c> 09 fb 48 c1 e3 10 4c 09 f3 48 c1 e3 20 48 09 f3 48 89 de 48 81
[18594507.178993] RSP: 0018:ffffa05fc164fc70 EFLAGS: 00010256
[18594507.179927] RAX: 000000000000000e RBX: 0000000000000000 RCX: 0000000000000000
[18594507.180621] RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000000
[18594507.181361] RBP: ffffa05fc164fe98 R08: 0000000000000000 R09: ffffffffc0d0a0a0
[18594507.182037] R10: 0000000000000001 R11: 0000000000000000 R12: 0000000000000000
[18594507.182711] R13: ffff8c91c3665920 R14: 0000000000000000 R15: 0000000000000000
[18594507.183378] FS:  00007ef74cfff700(0000) GS:ffff8c42ffd40000(0000) knlGS:0000000000000000
[18594507.184049] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[18594507.184717] CR2: 00007f63c9f1d000 CR3: 0000006e3167c000 CR4: 00000000003406e0
[18594507.185387] Call Trace:
[18594507.186070]  ? tcp_recvmsg+0x33d/0xd30
[18594507.186737]  ? inet_recvmsg+0x5b/0xd0
[18594507.187398]  ? sock_read_iter+0x92/0xf0
[18594507.188051]  ? recalibrate_cpu_khz+0x10/0x10
[18594507.188700]  ? ktime_get_with_offset+0x59/0xc0
[18594507.189351]  ? bpf_trace_run2+0x2d/0x50
[18594507.189993]  ? syscall_trace_enter+0x2ad/0x2e0
[18594507.190627]  ? bpf_trace_run2+0x2d/0x50
[18594507.191324]  ? do_syscall_64+0x153/0x1d0
[18594507.191954]  ? entry_SYSCALL_64_after_hwframe+0x44/0xa9
[18594507.192578] Modules linked in: nfsv3 nfs_acl rpcsec_gss_krb5 auth_rpcgss nfsv4 dns_resolver nfs lockd grace fscache cdc_ether usbnet mii iptable_raw xt_CT macvlan scap(OE) ip6table_nat nf_nat_ipv6 ip6_tables xt_set ip_set_hash_ipportnet ip_set_bitmap_port ip_set_hash_ipportip ip_set_hash_ipport ip_set dummy iptable_mangle xt_comment xt_mark xt_conntrack ipt_MASQUERADE nf_conntrack_netlink nfnetlink xt_addrtype iptable_filter iptable_nat nf_nat_ipv4 nf_nat aufs overlay fuse br_netfilter bridge ip_vs_sh ip_vs_wrr ip_vs_rr ip_vs nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 udp_diag tcp_diag inet_diag 8021q garp mrp stp llc bonding rfkill sunrpc amd64_edac_mod edac_mce_amd vfat fat kvm_amd ccp kvm irqbypass ipmi_ssif joydev crct10dif_pclmul ses crc32_pclmul enclosure scsi_transport_sas ghash_clmulni_intel
[18594507.197429]  pcspkr sg i2c_piix4 k10temp ipmi_si ipmi_devintf ipmi_msghandler acpi_cpufreq ip_tables xfs libcrc32c sd_mod ast i2c_algo_bit drm_kms_helper mlx5_core syscopyarea sysfillrect sysimgblt fb_sys_fops ttm crc32c_intel ahci libahci drm mlxfw libata devlink megaraid_sas dm_mirror dm_region_hash dm_log dm_mod

以下是按调用顺序排列的堆栈跟踪分析,堆栈显示异常主要源于与网络相关的系统调用经过BPF程序处理时发生了问题。BPF程序在处理网络套接字数据时,可能因编写错误或与内核版本不匹配而执行了非法指令。

do_syscall_64+0x153/0x1d0
 syscall_trace_enter+0x2ad/0x2e0 用于分析或调试目的
  bpf_trace_run2+0x2d/0x50  涉及执行BPF程序
   ktime_get_with_offset+0x59/0xc0 获取当前时间,可能用作事件时间戳
    recalibrate_cpu_khz+0x10/0x10 通常用于校准CPU频率
     sock_read_iter+0x92/0xf0 套接字读取操作,通过迭代器读入数据
      inet_recvmsg+0x5b/0xd0 处理来自网络通信的消息接收
       tcp_recvmsg+0x33d/0xd30 处理TCP网络通信的消息收取操作
        bpf_prog_9500684e63fa4fd7+0x129d/0x3000 导致非法指令错误的BPF程序

分析结果

堆栈显示异常主要源于与网络相关的系统调用经过BPF程序处理时发生了问题。问题的根源很可能在于BPF规则存在缺陷,生成了非法的指令序列。BPF规则通常由应用程序在用户态定义,然后传入内核执行,不当的BPF规则可能导致内核执行到非法指令。此外CPU硬件故障也可能导致指令码发生跳变。

后续计划与建议

建议针对该BPF程序进行代码审核与测试。


http://www.kler.cn/a/474255.html

相关文章:

  • api开发如何在代码中使用京东商品详情接口的参数?
  • Python中的可变对象与不可变对象;Python中的六大标准数据类型哪些属于可变对象,哪些属于不可变对象
  • 应急响应——Windows / Linux 排查笔记
  • Aviatrix Controller 未授权命令注入漏洞复现(CVE-2024-50603)
  • FastAPI vs Flask 专业对比与选择
  • vue3中el-table实现多表头并表格合并行或列
  • RoBERTa: A Robustly Optimized BERT Pretraining Approach—— 一种鲁棒优化的BERT预训练方法
  • C语言——结构体,位段,枚举和联合
  • failed to resolve sdk 的解决方法
  • 华为设备的监控和管理
  • 基于Spring Boot的车辆违章信息管理系统(LW+源码+讲解)
  • 开源AI智能名片商城小程序在个人品牌建设中的应用与“展温度”策略融合深度探索
  • 【线性代数】通俗理解特征向量与特征值
  • 【Logstash03】企业级日志分析系统ELK之Logstash 过滤 Filter 插件
  • 9 异常
  • PyTorch快速入门教程【小土堆】之完整模型验证套路
  • 网络安全系列 之 协议安全
  • ros2-4.2 用python实现人脸识别
  • 服务器证书不受信任是什么问题?
  • 有关Redis的相关概述
  • Linux(CentOS7)安装JDK和Maven
  • Unity导入特效,混合模式无效问题
  • 使用XMLHttpRequest进行AJAX请求的详解
  • 使用 uniapp 开发微信小程序遇到的坑
  • 毕业项目推荐:基于yolov8/yolov5/yolo11的动物检测识别系统(python+卷积神经网络)
  • Mac M2基于MySQL 8.4.3搭建(伪)主从集群