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

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

麒麟软件产品专区: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程序进行代码审核与测试。

相关推荐
李心怡-12314 分钟前
Ollama + FastGPT搭建本地私有企业级AI知识库 (Linux)
android·linux·运维·人工智能·docker·李心怡
WeeJot嵌入式17 分钟前
【Linux】gdb调试
linux·运维·服务器
运维&陈同学31 分钟前
【Logstash03】企业级日志分析系统ELK之Logstash 过滤 Filter 插件
大数据·运维·elk·elasticsearch·微服务·云原生·logstash
会飞的爱迪生33 分钟前
nginx反向代理+缓存
运维·nginx·缓存
Anna_Tong1 小时前
阿里云Chat App消息服务——智能化时代的消息交互新选择
安全·阿里云·云计算
有一只柴犬1 小时前
Nginx实现接口复制
运维·nginx·lua
KXue07031 小时前
【Linux 之一 】Linux常用命令汇总
linux·ubuntu·shell
diaya1 小时前
clickhouse 离线包安装(ubuntu)
linux·服务器·网络
练小杰2 小时前
Linux 文件的特殊权限—ACL项目练习
android·linux·运维·服务器·经验分享·学习
AI青年志2 小时前
【服务器】ubuntu20.04安装cuda12.01(使用runfile安装)
linux·运维·服务器