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

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

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

相关推荐
大树8811 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠11 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质11 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush411 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52012 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz12 小时前
Maven依赖冲突
java·服务器·maven
DaLi Yao12 小时前
【无标题】
人工智能·安全
Inhand陈工13 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn8613 小时前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
网络研究院13 小时前
2026年网络安全
网络·安全·法律·法规·趋势·发展